use bevy::prelude::*; pub struct HelloPlugin; impl Plugin for HelloPlugin { fn build(&self, app: &mut App) { app.insert_resource(GreetTimer(Timer::from_seconds(2.0, TimerMode::Repeating))) .add_systems(Startup, add_people) .add_systems(Update, (hello_world, (update_people, greet_people).chain())); } } #[derive(Resource)] struct GreetTimer(Timer); #[derive(Component)] struct Person; #[derive(Component)] struct Name(String); fn add_people(mut commands: Commands) { commands.spawn((Person, Name("Elaina Proctor".to_string()))); commands.spawn((Person, Name("Renzo Hume".to_string()))); commands.spawn((Person, Name("Zayna Nieves".to_string()))); } // Just reading the timer in this one since greet_people already ticks it // We could use ().chain() to force hello_world to happen after greet_people // so the print out is always on the same frame. fn hello_world(timer: ResMut,) { if timer.0.finished() { println!("hello world!"); } } fn greet_people(time: Res