diff options
Diffstat (limited to 'engine-ecs/examples/simple.rs')
| -rw-r--r-- | engine-ecs/examples/simple.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/engine-ecs/examples/simple.rs b/engine-ecs/examples/simple.rs new file mode 100644 index 0000000..e03c003 --- /dev/null +++ b/engine-ecs/examples/simple.rs @@ -0,0 +1,42 @@ +use engine_ecs::phase::START as START_PHASE; +use engine_ecs::{Component, Query, World}; + +#[derive(Component)] +struct SomeData +{ + num: u64, +} + +#[derive(Component)] +struct Greeting +{ + greeting: String, +} + +fn say_hello(query: Query<(&SomeData, &Greeting)>) +{ + for (data, greeting) in &query { + println!("{}: {}", greeting.greeting, data.num); + } +} + +fn main() +{ + let mut world = World::new(); + + world.register_system(*START_PHASE, say_hello); + + world.create_entity(( + SomeData { num: 987_654 }, + Greeting { + greeting: "Good afternoon".to_string(), + }, + )); + + world.create_entity(( + SomeData { num: 345 }, + Greeting { greeting: "Good evening".to_string() }, + )); + + world.step(); +} |
