diff options
Diffstat (limited to 'src/systems')
| -rw-r--r-- | src/systems/deduplicate.rs | 57 | ||||
| -rw-r--r-- | src/systems/mod.rs | 2 |
2 files changed, 0 insertions, 59 deletions
diff --git a/src/systems/deduplicate.rs b/src/systems/deduplicate.rs deleted file mode 100644 index e9fb88a..0000000 --- a/src/systems/deduplicate.rs +++ /dev/null @@ -1,57 +0,0 @@ - -use std::collections::HashSet; - -use specs::{ - Read, - WriteStorage, - ReadStorage, - Entities, - Entity, - System, - Join -}; - -use crate::{ - components::{Dedup, Removed, New, Position}, - resources::Ground -}; - - -pub struct Deduplicate; -impl <'a> System<'a> for Deduplicate { - type SystemData = ( - Entities<'a>, - WriteStorage<'a, Dedup>, - WriteStorage<'a, Removed>, - ReadStorage<'a, New>, - ReadStorage<'a, Position>, - Read<'a, Ground> - ); - fn run(&mut self, (entities, mut dedups, mut removeds, news, positions, ground): Self::SystemData) { - for (entity, dedup, position, _) in (&entities, &dedups, &positions, &news).join() { - let others: Vec<(Entity, &Dedup)> = ground.cells - .get(&position.pos) - .unwrap_or(&HashSet::new()) - .iter() - .filter_map(|e| Some((*e, dedups.get(*e)?))) - .collect(); - for (e, d) in others { - if dedup.id == d.id { - if dedup.priority > d.priority { - removeds.insert(e, Removed).unwrap(); - } else if dedup.priority < d.priority { - removeds.insert(entity, Removed).unwrap(); - } else if entity > e { - removeds.insert(e, Removed).unwrap(); - } else if entity < e { - removeds.insert(entity, Removed).unwrap(); - } - } - } - } - for (dedup, _) in (&mut dedups, &news).join() { - dedup.priority += 1; - } - } -} - diff --git a/src/systems/mod.rs b/src/systems/mod.rs index 7f93bb9..e0ae2e8 100644 --- a/src/systems/mod.rs +++ b/src/systems/mod.rs @@ -21,7 +21,6 @@ mod droploot; mod timeout; mod clear; mod building; -mod deduplicate; mod spawntrigger; mod replace; @@ -48,7 +47,6 @@ pub use self::{ timeout::Timeout, clear::Clear, building::Building, - deduplicate::Deduplicate, spawntrigger::SpawnTrigger, replace::Replace, }; |
