//! 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_systems(Update, (event_trigger, event_listener, sound_player)) .run(); } #[derive(Event)] struct MyEvent { pub message: String, } #[derive(Event, 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, TimerMode::Repeating), } } } // sends MyEvent and PlaySound every second fn event_trigger( time: Res