diff options
Diffstat (limited to 'ecs/examples')
-rw-r--r-- | ecs/examples/event_loop.rs | 37 | ||||
-rw-r--r-- | ecs/examples/extension.rs | 13 | ||||
-rw-r--r-- | ecs/examples/multiple_queries.rs | 6 | ||||
-rw-r--r-- | ecs/examples/optional_component.rs | 11 | ||||
-rw-r--r-- | ecs/examples/relationship.rs | 6 | ||||
-rw-r--r-- | ecs/examples/simple.rs | 6 | ||||
-rw-r--r-- | ecs/examples/with_local.rs | 18 | ||||
-rw-r--r-- | ecs/examples/with_sole.rs | 26 |
8 files changed, 49 insertions, 74 deletions
diff --git a/ecs/examples/event_loop.rs b/ecs/examples/event_loop.rs index 8d8d84f..c9f7757 100644 --- a/ecs/examples/event_loop.rs +++ b/ecs/examples/event_loop.rs @@ -1,6 +1,7 @@ use ecs::actions::Actions; -use ecs::event::Event; -use ecs::{Component, Query, World}; +use ecs::phase::{Phase, UPDATE as UPDATE_PHASE}; +use ecs::relationship::{ChildOf, Relationship}; +use ecs::{static_entity, Component, Query, World}; #[derive(Component)] struct Wool @@ -64,28 +65,28 @@ fn age(query: Query<(Health, Name)>, mut actions: Actions) } } -#[derive(Debug)] -struct EventA; +static_entity!( + SHEER_PHASE, + (Phase, <Relationship<ChildOf, Phase>>::new(*UPDATE_PHASE)) +); -impl Event for EventA {} +static_entity!( + FEED_PHASE, + (Phase, <Relationship<ChildOf, Phase>>::new(*SHEER_PHASE)) +); -#[derive(Debug)] -struct EventB; - -impl Event for EventB {} - -#[derive(Debug)] -struct EventC; - -impl Event for EventC {} +static_entity!( + AGE_PHASE, + (Phase, <Relationship<ChildOf, Phase>>::new(*FEED_PHASE)) +); fn main() { let mut world = World::new(); - world.register_system(EventA, sheer); - world.register_system(EventB, feed); - world.register_system(EventC, age); + world.register_system(*SHEER_PHASE, sheer); + world.register_system(*FEED_PHASE, feed); + world.register_system(*AGE_PHASE, age); world.create_entity(( Wool { remaining: 30 }, @@ -93,5 +94,5 @@ fn main() Name { name: "Bessy" }, )); - world.event_loop::<(EventA, EventB, EventC)>(); + world.start_loop(); } diff --git a/ecs/examples/extension.rs b/ecs/examples/extension.rs index 2022b05..ddde32c 100644 --- a/ecs/examples/extension.rs +++ b/ecs/examples/extension.rs @@ -1,6 +1,6 @@ use ecs::actions::Actions; -use ecs::event::Event; use ecs::extension::{Collector as ExtensionCollector, Extension}; +use ecs::phase::UPDATE as UPDATE_PHASE; use ecs::{Component, Query, World}; #[derive(Debug, Component)] @@ -19,11 +19,6 @@ enum EvilnessLevel Medium, } -#[derive(Debug)] -struct Update; - -impl Event for Update {} - fn spawn_enemies( spawner_query: Query<(EnemySpawnSource, Position)>, enemies_query: Query<(EvilnessLevel,)>, @@ -57,7 +52,7 @@ impl Extension for EnemySpawningExtension { fn collect(self, mut collector: ExtensionCollector<'_>) { - collector.add_system(Update, spawn_enemies); + collector.add_system(*UPDATE_PHASE, spawn_enemies); collector.add_entity((Position { x: 187, y: 30 }, EnemySpawnSource)); } @@ -70,8 +65,6 @@ fn main() world.add_extension(EnemySpawningExtension); for _ in 0..7 { - world.emit(Update); - - world.perform_queued_actions(); + world.step(); } } diff --git a/ecs/examples/multiple_queries.rs b/ecs/examples/multiple_queries.rs index 2736bce..1ae9d19 100644 --- a/ecs/examples/multiple_queries.rs +++ b/ecs/examples/multiple_queries.rs @@ -1,6 +1,6 @@ use std::fmt::Display; -use ecs::event::start::Start as StartEvent; +use ecs::phase::START as START_PHASE; use ecs::{Component, Query, World}; #[derive(Component)] @@ -61,7 +61,7 @@ fn main() { let mut world = World::new(); - world.register_system(StartEvent, do_attacks); + world.register_system(*START_PHASE, do_attacks); world.create_entity(( Health { health: 100 }, @@ -81,5 +81,5 @@ fn main() world.create_entity((AttackStrength::Strong,)); world.create_entity((AttackStrength::Weak,)); - world.emit(StartEvent); + world.step(); } diff --git a/ecs/examples/optional_component.rs b/ecs/examples/optional_component.rs index e47bf2e..bcc0c54 100644 --- a/ecs/examples/optional_component.rs +++ b/ecs/examples/optional_component.rs @@ -1,4 +1,4 @@ -use ecs::event::Event; +use ecs::phase::UPDATE as UPDATE_PHASE; use ecs::{Component, Query, World}; #[derive(Debug, Component)] @@ -48,16 +48,11 @@ fn pet_cats(query: Query<(CatName, PettingCapacity, Option<Aggressivity>)>) } } -#[derive(Debug)] -struct PettingTime; - -impl Event for PettingTime {} - fn main() { let mut world = World::new(); - world.register_system(PettingTime, pet_cats); + world.register_system(*UPDATE_PHASE, pet_cats); world.create_entity(( CatName { name: "Jasper".to_string() }, @@ -82,5 +77,5 @@ fn main() Aggressivity::Low, )); - world.emit(PettingTime); + world.step(); } diff --git a/ecs/examples/relationship.rs b/ecs/examples/relationship.rs index e8fb327..1b3d1de 100644 --- a/ecs/examples/relationship.rs +++ b/ecs/examples/relationship.rs @@ -1,4 +1,4 @@ -use ecs::event::start::Start as StartEvent; +use ecs::phase::START as START_PHASE; use ecs::relationship::Relationship; use ecs::{Component, Query, World}; @@ -34,7 +34,7 @@ fn main() { let mut world = World::new(); - world.register_system(StartEvent, print_player_stats); + world.register_system(*START_PHASE, print_player_stats); let sword_uid = world.create_entity((Sword { attack_strength: 17 },)); @@ -44,5 +44,5 @@ fn main() Relationship::<Holding, Sword>::new(sword_uid), )); - world.emit(StartEvent); + world.step(); } diff --git a/ecs/examples/simple.rs b/ecs/examples/simple.rs index 4057c84..6429035 100644 --- a/ecs/examples/simple.rs +++ b/ecs/examples/simple.rs @@ -1,4 +1,4 @@ -use ecs::event::start::Start as StartEvent; +use ecs::phase::START as START_PHASE; use ecs::{Component, Query, World}; #[derive(Component)] @@ -24,7 +24,7 @@ fn main() { let mut world = World::new(); - world.register_system(StartEvent, say_hello); + world.register_system(*START_PHASE, say_hello); world.create_entity(( SomeData { num: 987_654 }, @@ -38,5 +38,5 @@ fn main() Greeting { greeting: "Good evening".to_string() }, )); - world.emit(StartEvent); + world.step(); } diff --git a/ecs/examples/with_local.rs b/ecs/examples/with_local.rs index 5890b90..0872dfc 100644 --- a/ecs/examples/with_local.rs +++ b/ecs/examples/with_local.rs @@ -1,5 +1,5 @@ use ecs::component::local::Local; -use ecs::event::Event; +use ecs::phase::UPDATE as UPDATE_PHASE; use ecs::system::{Into, System}; use ecs::{Component, Query, World}; @@ -42,24 +42,19 @@ fn say_whats_up(query: Query<(SomeData, Name)>, mut state: Local<SayHelloState>) } } -#[derive(Debug)] -struct Update; - -impl Event for Update {} - fn main() { let mut world = World::new(); world.register_system( - Update, + *UPDATE_PHASE, say_hello .into_system() .initialize((SayHelloState { cnt: 0 },)), ); world.register_system( - Update, + *UPDATE_PHASE, say_whats_up .into_system() .initialize((SayHelloState { cnt: 0 },)), @@ -69,9 +64,6 @@ fn main() world.create_entity((SomeData { num: 345 },)); - world.emit(Update); - - println!("Haha"); - - world.emit(Update); + world.step(); + world.step(); } diff --git a/ecs/examples/with_sole.rs b/ecs/examples/with_sole.rs index a387bea..47aa0b3 100644 --- a/ecs/examples/with_sole.rs +++ b/ecs/examples/with_sole.rs @@ -1,6 +1,7 @@ -use ecs::event::Event; +use ecs::phase::{Phase, UPDATE as UPDATE_PHASE}; +use ecs::relationship::{ChildOf, Relationship}; use ecs::sole::Single; -use ecs::{Component, Query, Sole, World}; +use ecs::{static_entity, Component, Query, Sole, World}; #[derive(Component)] struct Ammo @@ -30,22 +31,17 @@ fn print_total_ammo_count(ammo_counter: Single<AmmoCounter>) assert_eq!(ammo_counter.counter, 19); } -#[derive(Debug)] -struct EventA; - -impl Event for EventA {} - -#[derive(Debug)] -struct EventB; - -impl Event for EventB {} +static_entity!( + PRINT_AMMO_COUNT_PHASE, + (Phase, <Relationship<ChildOf, Phase>>::new(*UPDATE_PHASE)) +); fn main() { let mut world = World::new(); - world.register_system(EventA, count_ammo); - world.register_system(EventB, print_total_ammo_count); + 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 },)); @@ -53,7 +49,5 @@ fn main() world.add_sole(AmmoCounter::default()).unwrap(); - world.emit(EventA); - - world.emit(EventB); + world.step(); } |