//! 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. use bevy::prelude::*; 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; #[derive(Resource)] 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