summaryrefslogtreecommitdiff
path: root/src/systems/controlinput.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-02-28 12:40:52 +0100
committertroido <troido@protonmail.com>2020-02-28 12:40:52 +0100
commit40e4e9e7a7e2c59a5659d8d4bd2ecfafed967299 (patch)
treefa2c2bb9b293781a871ca64915b5c0149e36fd6c /src/systems/controlinput.rs
parent481e03e04b055cebaf230b3a3cdce3446418c68c (diff)
added cooldowns for moving and fighting
Diffstat (limited to 'src/systems/controlinput.rs')
-rw-r--r--src/systems/controlinput.rs14
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();
}
}