diff --git a/src/game_plugin/mod.rs b/src/game_plugin/mod.rs new file mode 100644 index 0000000..d33447f --- /dev/null +++ b/src/game_plugin/mod.rs @@ -0,0 +1,67 @@ + +use bevy::prelude::*; + +pub struct GamePlugin; + +impl Plugin for GamePlugin +{ + 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