-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUsableItemManager.pde
88 lines (66 loc) · 2.12 KB
/
UsableItemManager.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
class UsableItemManager {
HashMap<String, UsableItem> usablesMap = new HashMap<String, UsableItem>();
void enableUsableItem(String itemName, ArrayList<Object> codeObjs) {
if (usablesMap.containsKey(itemName)) {
UsableItem usable = usablesMap.get(itemName);
if (usable instanceof NotesUsableItem) {
for (int i = 0; i < codeObjs.size(); i++) {
((NotesUsableItem)usable).addPage(codeObjs.get(i));
}
} else if (usable instanceof FlashLightUsableItem) {
}
usable.setEnabled(!usable.enabled);
} else {
createItem(itemName, true, codeObjs);
}
}
//Instanciate the object of the item
void createItem(String itemName, boolean activate, ArrayList<Object> codeObjs) {
UsableItem usable = null;
switch (itemName) {
case "notes_item":
NotesUsableItem notes = (NotesUsableItem)usablesMap.getOrDefault(itemName, null);
if (notes == null) {
notes = new NotesUsableItem();
}
for (int i = 0; i < codeObjs.size(); i++) {
notes.addPage(codeObjs.get(i));
}
if (activate)
notes.setEnabled(!notes.enabled);
usable = notes;
break;
case "batteries_item":
invManager.tryInstallBatteries();
break;
case "flashlight_batteries_item":
FlashLightUsableItem flash = new FlashLightUsableItem();
usable = flash;
break;
default:
}
if (usable != null)
usablesMap.put(itemName, usable);
}
void step(float delta) {
boolean disableSceneMousePressed = false;
for (Map.Entry item : usablesMap.entrySet()) {
UsableItem usable = (UsableItem)item.getValue();
if (usable.enabled) {
if (usable.allowSceneMousePressed == false) {
disableSceneMousePressed = true;
}
usable.step(delta);
}
stateHandler.currentState.stateAllowMousePressed = !disableSceneMousePressed;
}
}
void handleMousePressed() {
for (Map.Entry item : usablesMap.entrySet()) {
UsableItem usable = (UsableItem)item.getValue();
if (usable.enabled) {
usable.handleMousePressed();
}
}
}
}