summaryrefslogtreecommitdiff
path: root/src/systems/clearcontrols.rs
blob: ec2bb68bcc23bcb01ad331f1b7e512b9d24f1ea8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

use specs::{
	WriteStorage,
	Entities,
	System,
	Join
};

use super::super::components::Controller;

pub struct ClearControllers;
impl <'a> System<'a> for ClearControllers {
	type SystemData = (Entities<'a>, WriteStorage<'a, Controller>);
	fn run(&mut self, (entities, mut controllers): Self::SystemData) {
		let mut ents = Vec::new();
		for (ent, _controller) in (&*entities, &controllers).join() {
			ents.push(ent);
		}
		for ent in ents {
			controllers.remove(ent);
		}
	}
}