summaryrefslogtreecommitdiff
path: root/src/systems/controlinput.rs
diff options
context:
space:
mode:
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();
}
}