use ecs::event::start::Start as StartEvent; use ecs::relationship::Relationship; use ecs::{Component, Query, World}; #[derive(Component)] struct Sword { attack_strength: u32, } #[derive(Component)] struct Player; #[derive(Component)] struct Health { health: u32, } struct Holding; fn print_player_stats(player_query: Query<(Player, Health, Relationship)>) { for (_, health, sword_relationship) in &player_query { println!("Player health: {}", health.health); if let Some(sword) = sword_relationship.get() { println!("Player sword attack strength: {}", sword.attack_strength); } } } fn main() { let mut world = World::new(); world.register_system(StartEvent, print_player_stats); let sword_uid = world.create_entity((Sword { attack_strength: 17 },)); world.create_entity(( Player, Health { health: 180 }, Relationship::::new(&world, sword_uid), )); world.prepare(); world.emit(StartEvent); }