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/room.rs | 4 ++-- src/systems/makefloor.rs | 41 ----------------------------------------- src/systems/mod.rs | 2 +- src/systems/registernew.rs | 37 +++++++++++++++++++++++++++++++++++++ src/systems/view.rs | 12 +++--------- 5 files changed, 43 insertions(+), 53 deletions(-) delete mode 100644 src/systems/makefloor.rs create mode 100644 src/systems/registernew.rs (limited to 'src') diff --git a/src/room.rs b/src/room.rs index c179f61..30c420a 100644 --- a/src/room.rs +++ b/src/room.rs @@ -20,7 +20,7 @@ use super::resources::{ }; use super::systems::{ moving::Move, - makefloor::MakeFloor, + registernew::RegisterNew, controlinput::ControlInput, view::View, remove::Remove, @@ -45,7 +45,7 @@ impl <'a, 'b>Room<'a, 'b> { let mut dispatcher = DispatcherBuilder::new() .with(ControlInput, "controlinput", &[]) - .with(MakeFloor::default(), "makefloor", &[]) + .with(RegisterNew::default(), "makefloor", &[]) .with(Move, "move", &["makefloor", "controlinput"]) .with(View::default(), "view", &["move"]) .with(Create, "create", &["view", "controlinput"]) diff --git a/src/systems/makefloor.rs b/src/systems/makefloor.rs deleted file mode 100644 index 689fcec..0000000 --- a/src/systems/makefloor.rs +++ /dev/null @@ -1,41 +0,0 @@ - -use std::collections::HashSet; - -use specs::{ - ReadStorage, - Write, - Entities, - System, - Join -}; - -use crate::components::{ - Position, - New, - Moved, - Removed -}; - -use crate::resources::{ - Ground -}; - - -#[derive(Default)] -pub struct MakeFloor; -impl <'a> System<'a> for MakeFloor { - type SystemData = ( - Entities<'a>, - Write<'a, Ground>, - ReadStorage<'a, Position>, - ReadStorage<'a, New>, - ReadStorage<'a, Moved>, - ReadStorage<'a, Removed> - ); - fn run(&mut self, (entities, mut ground, positions, new, moved, removed): Self::SystemData) { - for (ent, pos, _new) in (&entities, &positions, &new).join() { - ground.cells.entry(pos.pos).or_insert(HashSet::new()).insert(ent); - } - } -} - diff --git a/src/systems/mod.rs b/src/systems/mod.rs index a4dd473..60fd106 100644 --- a/src/systems/mod.rs +++ b/src/systems/mod.rs @@ -1,7 +1,7 @@ // pub mod clearcontrols; pub mod controlinput; -pub mod makefloor; +pub mod registernew; pub mod moving; pub mod view; pub mod remove; 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); + } + } +} + diff --git a/src/systems/view.rs b/src/systems/view.rs index 79078f4..6c0b1f8 100644 --- a/src/systems/view.rs +++ b/src/systems/view.rs @@ -2,13 +2,7 @@ use std::collections::{HashMap, HashSet}; use specs::{ - BitSet, - storage::ComponentEvent, - ReaderId, - World, - SystemData, ReadStorage, - WriteStorage, Read, Write, System, @@ -32,14 +26,14 @@ impl <'a> System<'a> for View { ReadStorage<'a, Position>, ReadStorage<'a, Visible>, Read<'a, Size>, - WriteStorage<'a, Player>, + ReadStorage<'a, Player>, Write<'a, Output>, ReadStorage<'a, New>, ReadStorage<'a, Moved>, ReadStorage<'a, Removed>, Read<'a, Ground> ); - fn run(&mut self, (entities, positions, visible, size, mut players, mut output, new, moved, removed, ground): Self::SystemData) { + fn run(&mut self, (entities, positions, visible, size, players, mut output, new, moved, removed, ground): Self::SystemData) { let mut changed = HashSet::new(); for (pos, _new) in (&positions, &new).join() { @@ -64,7 +58,7 @@ impl <'a> System<'a> for View { output.output.clear(); - for (ent, mut player, pos) in (&entities, &mut players, &positions).join() { + for (ent, player, pos) in (&entities, &players, &positions).join() { let mut updates: Vec = Vec::new(); if new.get(ent).is_some() { let (values, mapping) = draw_room(&ground.cells, (size.width, size.height), &visible); -- cgit