diff options
| author | troido <troido@protonmail.com> | 2020-04-04 23:48:07 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-04-04 23:48:07 +0200 |
| commit | 068f98cec100772defce8ba966e5b917558b191c (patch) | |
| tree | 80124cf89852dbedec9322258af36167cc99277b /src/systems/registernew.rs | |
| parent | 2cc5b468cfd4c28bf1ad17ef1b3600c3d42f8b83 (diff) | |
draw the room after new entities have been added
Diffstat (limited to 'src/systems/registernew.rs')
| -rw-r--r-- | src/systems/registernew.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/systems/registernew.rs b/src/systems/registernew.rs index c53309f..0091296 100644 --- a/src/systems/registernew.rs +++ b/src/systems/registernew.rs @@ -1,5 +1,4 @@ -use std::collections::HashSet; use specs::{ ReadStorage, @@ -11,26 +10,32 @@ use specs::{ use crate::components::{ Position, - New + New, + Player }; use crate::resources::{ - Ground + Ground, + Players }; -#[derive(Default)] pub struct RegisterNew; impl <'a> System<'a> for RegisterNew { type SystemData = ( Entities<'a>, + ReadStorage<'a, New>, Write<'a, Ground>, ReadStorage<'a, Position>, - ReadStorage<'a, New>, + Write<'a, Players>, + ReadStorage<'a, Player> ); - fn run(&mut self, (entities, mut ground, positions, new): Self::SystemData) { + fn run(&mut self, (entities, new, mut ground, positions, mut player_list, players): Self::SystemData) { for (ent, pos, _new) in (&entities, &positions, &new).join() { - ground.cells.entry(pos.pos).or_insert_with(HashSet::new).insert(ent); + ground.insert(pos.pos, ent); + } + for (ent, player, _new) in (&entities, &players, &new).join(){ + player_list.entities.insert(player.id.clone(), ent); } } } |
