use bevy::prelude::*;
use std::{thread, time::Duration};
#[derive(Event)]
struct MyEvent(i32);
fn main() {
use bevy_channel_trigger::ChannelTriggerApp;
let mut app = App::new();
app.add_plugins(MinimalPlugins);
let sender = app.add_channel_trigger::<MyEvent>();
thread::spawn(move || {
let mut counter = 1;
loop {
sender.send(MyEvent(counter));
thread::sleep(Duration::from_secs(1));
counter += 1;
}
});
app.add_observer(on_event);
app.run();
}
fn on_event(trigger: On<MyEvent>) {
let event = trigger.event();
println!("trigger with: {}", event.0);
}