summaryrefslogtreecommitdiff
path: root/ecs/examples/component_events.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ecs/examples/component_events.rs')
-rw-r--r--ecs/examples/component_events.rs64
1 files changed, 0 insertions, 64 deletions
diff --git a/ecs/examples/component_events.rs b/ecs/examples/component_events.rs
deleted file mode 100644
index 06e7fab..0000000
--- a/ecs/examples/component_events.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-use ecs::actions::Actions;
-use ecs::component::Component;
-use ecs::event::component::{Changed, EventMatchExt, Removed};
-use ecs::pair::Pair;
-use ecs::phase::UPDATE;
-use ecs::system::observer::Observe;
-use ecs::{Component, Query, World};
-
-#[derive(Debug, Component)]
-struct CheeseCrumbs
-{
- cnt: usize,
-}
-
-#[derive(Debug, Component)]
-struct Cheese
-{
- name: &'static str,
-}
-
-fn eat_cheese(query: Query<(&Cheese, &mut CheeseCrumbs)>, mut actions: Actions)
-{
- for (cheese_ent_id, (_, mut cheese_crumbs)) in query.iter_with_euids() {
- println!("Eating cheese!");
-
- cheese_crumbs.cnt += 40;
- cheese_crumbs.set_changed();
-
- actions.remove_components(cheese_ent_id, [Cheese::id()]);
- }
-}
-
-fn on_cheese_removed(observe: Observe<Pair<Removed, Cheese>>)
-{
- for evt_match in &observe {
- let cheese = evt_match.get_ent_target_comp();
-
- println!("{} cheese was eaten", cheese.name);
- }
-}
-
-fn on_cheese_crumbs_changed(observe: Observe<Pair<Changed, CheeseCrumbs>>)
-{
- for evt_match in &observe {
- let cheese_crumbs = evt_match.get_ent_target_comp();
-
- println!("Cheese crumbs count changed to {}", cheese_crumbs.cnt);
- }
-}
-
-fn main()
-{
- let mut world = World::new();
-
- world.register_system(*UPDATE, eat_cheese);
- world.register_observer(on_cheese_removed);
- world.register_observer(on_cheese_crumbs_changed);
-
- world.create_entity((Cheese { name: "Brie" }, CheeseCrumbs { cnt: 0 }));
- world.create_entity((Cheese { name: "Parmesan" }, CheeseCrumbs { cnt: 0 }));
- world.create_entity((Cheese { name: "Gouda" }, CheeseCrumbs { cnt: 0 }));
-
- world.step();
-}