summaryrefslogtreecommitdiff
path: root/ecs/examples/with_sole.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ecs/examples/with_sole.rs')
-rw-r--r--ecs/examples/with_sole.rs61
1 files changed, 0 insertions, 61 deletions
diff --git a/ecs/examples/with_sole.rs b/ecs/examples/with_sole.rs
deleted file mode 100644
index 7e89b0a..0000000
--- a/ecs/examples/with_sole.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-use ecs::pair::{ChildOf, Pair};
-use ecs::phase::{Phase, UPDATE as UPDATE_PHASE};
-use ecs::sole::Single;
-use ecs::{declare_entity, Component, Query, Sole, World};
-
-#[derive(Component)]
-struct Ammo
-{
- ammo_left: u32,
-}
-
-#[derive(Sole, Default)]
-struct AmmoCounter
-{
- counter: u32,
-}
-
-fn count_ammo(query: Query<(&Ammo,)>, mut ammo_counter: Single<AmmoCounter>)
-{
- for (ammo,) in &query {
- println!("Found {} ammo", ammo.ammo_left);
-
- ammo_counter.counter += ammo.ammo_left;
- }
-}
-
-fn print_total_ammo_count(ammo_counter: Single<AmmoCounter>)
-{
- println!("Total ammo count: {}", ammo_counter.counter);
-
- assert_eq!(ammo_counter.counter, 19);
-}
-
-declare_entity!(
- PRINT_AMMO_COUNT_PHASE,
- (
- Phase,
- Pair::builder()
- .relation::<ChildOf>()
- .target_id(*UPDATE_PHASE)
- .build()
- )
-);
-
-fn main()
-{
- let mut world = World::new();
-
- world.create_declared_entity(&PRINT_AMMO_COUNT_PHASE);
-
- world.register_system(*UPDATE_PHASE, count_ammo);
- world.register_system(*PRINT_AMMO_COUNT_PHASE, print_total_ammo_count);
-
- world.create_entity((Ammo { ammo_left: 4 },));
- world.create_entity((Ammo { ammo_left: 7 },));
- world.create_entity((Ammo { ammo_left: 8 },));
-
- world.add_sole(AmmoCounter::default()).unwrap();
-
- world.step();
-}