From d46bff6850237064cbfa90a54b4aca22170bbaf7 Mon Sep 17 00:00:00 2001 From: troido Date: Sun, 9 Feb 2020 00:49:57 +0100 Subject: cleanup/rename makefloor to registernew --- src/systems/registernew.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/systems/registernew.rs (limited to 'src/systems/registernew.rs') diff --git a/src/systems/registernew.rs b/src/systems/registernew.rs new file mode 100644 index 0000000..c6b18fa --- /dev/null +++ b/src/systems/registernew.rs @@ -0,0 +1,37 @@ + +use std::collections::HashSet; + +use specs::{ + ReadStorage, + Write, + Entities, + System, + Join +}; + +use crate::components::{ + Position, + New +}; + +use crate::resources::{ + Ground +}; + + +#[derive(Default)] +pub struct RegisterNew; +impl <'a> System<'a> for RegisterNew { + type SystemData = ( + Entities<'a>, + Write<'a, Ground>, + ReadStorage<'a, Position>, + ReadStorage<'a, New>, + ); + fn run(&mut self, (entities, mut ground, positions, new): Self::SystemData) { + for (ent, pos, _new) in (&entities, &positions, &new).join() { + ground.cells.entry(pos.pos).or_insert(HashSet::new()).insert(ent); + } + } +} + -- cgit