use bevy::prelude::*; /// This example creates a new event, a system that triggers the event once per second, /// and a system that prints a message whenever the event is received. fn main() { App::new() .add_plugins(DefaultPlugins) .add_event::() .add_event::() .init_resource::() .add_system(event_trigger) .add_system(event_listener) .add_system(sound_player) .run(); } struct MyEvent { pub message: String, } #[derive(Default)] struct PlaySound; struct EventTriggerState { event_timer: Timer, } impl Default for EventTriggerState { fn default() -> Self { EventTriggerState { event_timer: Timer::from_seconds(1.0, true), } } } // sends MyEvent and PlaySound every second fn event_trigger( time: Res