diff options
| author | troido <troido@protonmail.com> | 2020-09-26 14:58:30 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-09-26 14:58:30 +0200 |
| commit | 9e69a2d3004e83a74cb876ae6c6fbdfb6ed167fb (patch) | |
| tree | f7384d11d41495caa627a320a488996fc89e5a97 /src/systems/deduplicate.rs | |
| parent | 9b7e3d14b3f35163199ed704ae35544fa658931e (diff) | |
remove deduplicate
Diffstat (limited to 'src/systems/deduplicate.rs')
| -rw-r--r-- | src/systems/deduplicate.rs | 57 |
1 files changed, 0 insertions, 57 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; - } - } -} - |
