diff options
| author | troido <troido@protonmail.com> | 2020-02-28 12:40:52 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-28 12:40:52 +0100 |
| commit | 40e4e9e7a7e2c59a5659d8d4bd2ecfafed967299 (patch) | |
| tree | fa2c2bb9b293781a871ca64915b5c0149e36fd6c /src/systems/controlinput.rs | |
| parent | 481e03e04b055cebaf230b3a3cdce3446418c68c (diff) | |
added cooldowns for moving and fighting
Diffstat (limited to 'src/systems/controlinput.rs')
| -rw-r--r-- | src/systems/controlinput.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/systems/controlinput.rs b/src/systems/controlinput.rs index 71373f5..17bc40f 100644 --- a/src/systems/controlinput.rs +++ b/src/systems/controlinput.rs @@ -8,7 +8,7 @@ use specs::{ Join }; -use crate::components::{Controller, Player}; +use crate::components::{Controller, Player, ControlCooldown}; use crate::resources::{Input}; @@ -18,17 +18,17 @@ impl <'a> System<'a> for ControlInput { Entities<'a>, Write<'a, Input>, WriteStorage<'a, Controller>, - ReadStorage<'a, Player> + ReadStorage<'a, Player>, + ReadStorage<'a, ControlCooldown> ); - fn run(&mut self, (entities, mut input, mut controllers, players): Self::SystemData) { + fn run(&mut self, (entities, mut input, mut controllers, players, cooldowns): Self::SystemData) { controllers.clear(); - for (player, entity) in (&players, &entities).join() { - if let Some(control) = input.actions.get(&player.id){ - let _ = controllers.insert(entity, Controller(control.clone())); + for (player, entity, ()) in (&players, &entities, !&cooldowns).join() { + if let Some(control) = input.actions.remove(&player.id){ + let _ = controllers.insert(entity, Controller{control: control}); } } - input.actions.clear(); } } |
