-
Notifications
You must be signed in to change notification settings - Fork 0
/
InputManager.pde
46 lines (37 loc) · 1.17 KB
/
InputManager.pde
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class InputManager {
HashMap<Integer,String> inputMappings;
HashSet inputsActive;
InputManager() {
this.inputMappings = new HashMap<Integer,String>();
this.inputsActive = new HashSet();
this.inputMappings.put(KeyEvent.VK_W, "moveup");
this.inputMappings.put(KeyEvent.VK_S, "movedown");
this.inputMappings.put(KeyEvent.VK_A, "moveleft");
this.inputMappings.put(KeyEvent.VK_D, "moveright");
this.inputMappings.put(KeyEvent.VK_R, "restart");
this.inputMappings.put(KeyEvent.VK_SHIFT, "debug");
}
boolean getIsActive(String inputName) {
return this.inputsActive.contains(inputName);
}
String getInputForKey(int keyCode) {
return this.inputMappings.get(keyCode);
}
void OnKeyPressed() {
String inputName = this.getInputForKey(keyCode);
if (inputName == null || this.getIsActive(inputName)) return;
this.inputsActive.add(inputName);
entities.OnInputStart(inputName);
}
void OnKeyReleased() {
String inputName = this.getInputForKey(keyCode);
if (inputName == null || !this.getIsActive(inputName)) return;
this.inputsActive.remove(inputName);
entities.OnInputEnd(inputName);
}
void OnTick() {
if (!focused) {
this.inputsActive.clear();
}
}
}