From 8022e8998290b067b8aa0cb9cba8ba410826bdab Mon Sep 17 00:00:00 2001 From: HampusM Date: Thu, 21 May 2026 17:55:20 +0200 Subject: chore: rename ecs* crates to engine-ecs* --- engine-ecs/examples/with_local.rs | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 engine-ecs/examples/with_local.rs (limited to 'engine-ecs/examples/with_local.rs') diff --git a/engine-ecs/examples/with_local.rs b/engine-ecs/examples/with_local.rs new file mode 100644 index 0000000..2c04f26 --- /dev/null +++ b/engine-ecs/examples/with_local.rs @@ -0,0 +1,70 @@ +use engine_ecs::component::local::Local; +use engine_ecs::phase::UPDATE as UPDATE_PHASE; +use engine_ecs::system::initializable::Initializable; +use engine_ecs::system::Into; +use engine_ecs::{Component, Query, World}; + +#[derive(Component)] +struct SomeData +{ + num: u64, +} + +#[derive(Component)] +struct Name +{ + name: String, +} + +#[derive(Component)] +struct SayHelloState +{ + cnt: usize, +} + +fn say_hello(query: Query<(&SomeData,)>, mut state: Local) +{ + for (data,) in &query { + println!("Hello there. Count {}: {}", state.cnt, data.num); + + state.cnt += 1; + } +} + +fn say_whats_up(query: Query<(&SomeData, &Name)>, mut state: Local) +{ + for (data, name) in &query { + println!( + "Whats up, {}. Number is {}. Count {}", + name.name, data.num, state.cnt + ); + + state.cnt += 1; + } +} + +fn main() +{ + let mut world = World::new(); + + world.register_system( + *UPDATE_PHASE, + say_hello + .into_system() + .initialize((SayHelloState { cnt: 0 },)), + ); + + world.register_system( + *UPDATE_PHASE, + say_whats_up + .into_system() + .initialize((SayHelloState { cnt: 0 },)), + ); + + world.create_entity((SomeData { num: 987_654 }, Name { name: "Bob".to_string() })); + + world.create_entity((SomeData { num: 345 },)); + + world.step(); + world.step(); +} -- cgit v1.2.3-18-g5258