diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/Archipelago/animationListener.gd | 38 | ||||
-rw-r--r-- | client/Archipelago/manager.gd | 10 | ||||
-rw-r--r-- | client/Archipelago/painting.gd | 16 | ||||
-rw-r--r-- | client/Archipelago/saver.gd | 5 | ||||
-rw-r--r-- | client/Archipelago/settings_screen.gd | 7 | ||||
-rw-r--r-- | client/Archipelago/teleportListener.gd | 38 |
6 files changed, 101 insertions, 13 deletions
diff --git a/client/Archipelago/animationListener.gd b/client/Archipelago/animationListener.gd new file mode 100644 index 0000000..f1fb5fb --- /dev/null +++ b/client/Archipelago/animationListener.gd | |||
@@ -0,0 +1,38 @@ | |||
1 | extends "res://scripts/nodes/listeners/animationListener.gd" | ||
2 | |||
3 | var item_id | ||
4 | |||
5 | |||
6 | func _ready(): | ||
7 | var node_path = String( | ||
8 | get_tree().get_root().get_node("scene").get_path_to(self).get_concatenated_names() | ||
9 | ) | ||
10 | |||
11 | print("node: %s" % node_path) | ||
12 | |||
13 | var gamedata = global.get_node("Gamedata") | ||
14 | var door_id = gamedata.get_door_for_map_node_path(global.map, node_path) | ||
15 | if door_id != null: | ||
16 | print("door_id: %d" % door_id) | ||
17 | |||
18 | var ap = global.get_node("Archipelago") | ||
19 | item_id = ap.get_item_id_for_door(door_id) | ||
20 | |||
21 | if item_id != null: | ||
22 | self.senders = [] | ||
23 | self.senderGroup = [] | ||
24 | self.nested = false | ||
25 | self.complete_at = 0 | ||
26 | self.max_length = 0 | ||
27 | self.excludeSenders = [] | ||
28 | |||
29 | call_deferred("_readier") | ||
30 | |||
31 | super._ready() | ||
32 | |||
33 | |||
34 | func _readier(): | ||
35 | var ap = global.get_node("Archipelago") | ||
36 | |||
37 | if ap.has_item(item_id): | ||
38 | handleTriggered() | ||
diff --git a/client/Archipelago/manager.gd b/client/Archipelago/manager.gd index 99cb47b..d950cd6 100644 --- a/client/Archipelago/manager.gd +++ b/client/Archipelago/manager.gd | |||
@@ -90,11 +90,11 @@ func _process_item(item, index, from, flags): | |||
90 | var rnode = scene.get_node_or_null(receiver) | 90 | var rnode = scene.get_node_or_null(receiver) |
91 | if rnode != null: | 91 | if rnode != null: |
92 | rnode.handleTriggered() | 92 | rnode.handleTriggered() |
93 | for painting_id in gamedata.objects.get_doors()[door_id].get_move_paintings(): | 93 | #for painting_id in gamedata.objects.get_doors()[door_id].get_move_paintings(): |
94 | var painting = gamedata.objects.get_paintings()[painting_id] | 94 | # var painting = gamedata.objects.get_paintings()[painting_id] |
95 | var pnode = scene.get_node_or_null(painting.get_path() + "/teleportListener") | 95 | # var pnode = scene.get_node_or_null(painting.get_path() + "/teleportListener") |
96 | if pnode != null: | 96 | # if pnode != null: |
97 | pnode.handleTriggered() | 97 | # pnode.handleTriggered() |
98 | 98 | ||
99 | # Show a message about the item if it's new. | 99 | # Show a message about the item if it's new. |
100 | if index != null and index > _last_new_item: | 100 | if index != null and index > _last_new_item: |
diff --git a/client/Archipelago/painting.gd b/client/Archipelago/painting.gd index 17baeb5..6b3de0b 100644 --- a/client/Archipelago/painting.gd +++ b/client/Archipelago/painting.gd | |||
@@ -15,17 +15,17 @@ func _ready(): | |||
15 | if door_id != null: | 15 | if door_id != null: |
16 | print("door_id: %d" % door_id) | 16 | print("door_id: %d" % door_id) |
17 | 17 | ||
18 | self.senders = [] | ||
19 | self.senderGroup = [] | ||
20 | self.nested = false | ||
21 | self.complete_at = 0 | ||
22 | self.max_length = 0 | ||
23 | self.excludeSenders = [] | ||
24 | |||
25 | var ap = global.get_node("Archipelago") | 18 | var ap = global.get_node("Archipelago") |
26 | item_id = ap.get_item_id_for_door(door_id) | 19 | item_id = ap.get_item_id_for_door(door_id) |
27 | 20 | ||
28 | if item_id != null: | 21 | if item_id != null: |
22 | self.senders = [] | ||
23 | self.senderGroup = [] | ||
24 | self.nested = false | ||
25 | self.complete_at = 0 | ||
26 | self.max_length = 0 | ||
27 | self.excludeSenders = [] | ||
28 | |||
29 | call_deferred("_readier") | 29 | call_deferred("_readier") |
30 | 30 | ||
31 | super._ready() | 31 | super._ready() |
@@ -35,4 +35,4 @@ func _readier(): | |||
35 | var ap = global.get_node("Archipelago") | 35 | var ap = global.get_node("Archipelago") |
36 | 36 | ||
37 | if ap.has_item(item_id): | 37 | if ap.has_item(item_id): |
38 | $teleportListener.handleTriggered() | 38 | handleTriggered() |
diff --git a/client/Archipelago/saver.gd b/client/Archipelago/saver.gd new file mode 100644 index 0000000..7e788a8 --- /dev/null +++ b/client/Archipelago/saver.gd | |||
@@ -0,0 +1,5 @@ | |||
1 | extends "res://scripts/nodes/saver.gd" | ||
2 | |||
3 | |||
4 | func levelLoaded(): | ||
5 | reload.call_deferred() | ||
diff --git a/client/Archipelago/settings_screen.gd b/client/Archipelago/settings_screen.gd index a675f8e..5a4a76d 100644 --- a/client/Archipelago/settings_screen.gd +++ b/client/Archipelago/settings_screen.gd | |||
@@ -36,9 +36,12 @@ func _ready(): | |||
36 | global.add_child(ap_instance) | 36 | global.add_child(ap_instance) |
37 | 37 | ||
38 | # Let's also inject any scripts we need to inject now. | 38 | # Let's also inject any scripts we need to inject now. |
39 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/animationListener.gd")) | ||
39 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/door.gd")) | 40 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/door.gd")) |
40 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting.gd")) | 41 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/painting.gd")) |
41 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) | 42 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) |
43 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/saver.gd")) | ||
44 | installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleportListener.gd")) | ||
42 | 45 | ||
43 | var proto_script = load("user://maps/Archipelago/generated/proto.gd") | 46 | var proto_script = load("user://maps/Archipelago/generated/proto.gd") |
44 | var gamedata_script = load("user://maps/Archipelago/gamedata.gd") | 47 | var gamedata_script = load("user://maps/Archipelago/gamedata.gd") |
@@ -138,8 +141,12 @@ func connectionSuccessful(): | |||
138 | unlocks.loadData() | 141 | unlocks.loadData() |
139 | unlocks.unlockKey("capslock", 1) | 142 | unlocks.unlockKey("capslock", 1) |
140 | 143 | ||
144 | clearResourceCache("res://objects/meshes/gridDoor.tscn") | ||
141 | clearResourceCache("res://objects/nodes/door.tscn") | 145 | clearResourceCache("res://objects/nodes/door.tscn") |
146 | clearResourceCache("res://objects/nodes/listeners/animationListener.tscn") | ||
147 | clearResourceCache("res://objects/nodes/listeners/teleportListener.tscn") | ||
142 | clearResourceCache("res://objects/nodes/player.tscn") | 148 | clearResourceCache("res://objects/nodes/player.tscn") |
149 | clearResourceCache("res://objects/nodes/saver.tscn") | ||
143 | 150 | ||
144 | var paintings_dir = DirAccess.open("res://objects/meshes/paintings") | 151 | var paintings_dir = DirAccess.open("res://objects/meshes/paintings") |
145 | if paintings_dir: | 152 | if paintings_dir: |
diff --git a/client/Archipelago/teleportListener.gd b/client/Archipelago/teleportListener.gd new file mode 100644 index 0000000..4bb08c9 --- /dev/null +++ b/client/Archipelago/teleportListener.gd | |||
@@ -0,0 +1,38 @@ | |||
1 | extends "res://scripts/nodes/listeners/teleportListener.gd" | ||
2 | |||
3 | var item_id | ||
4 | |||
5 | |||
6 | func _ready(): | ||
7 | var node_path = String( | ||
8 | get_tree().get_root().get_node("scene").get_path_to(self).get_concatenated_names() | ||
9 | ) | ||
10 | |||
11 | print("node: %s" % node_path) | ||
12 | |||
13 | var gamedata = global.get_node("Gamedata") | ||
14 | var door_id = gamedata.get_door_for_map_node_path(global.map, node_path) | ||
15 | if door_id != null: | ||
16 | print("door_id: %d" % door_id) | ||
17 | |||
18 | var ap = global.get_node("Archipelago") | ||
19 | item_id = ap.get_item_id_for_door(door_id) | ||
20 | |||
21 | if item_id != null: | ||
22 | self.senders = [] | ||
23 | self.senderGroup = [] | ||
24 | self.nested = false | ||
25 | self.complete_at = 0 | ||
26 | self.max_length = 0 | ||
27 | self.excludeSenders = [] | ||
28 | |||
29 | call_deferred("_readier") | ||
30 | |||
31 | super._ready() | ||
32 | |||
33 | |||
34 | func _readier(): | ||
35 | var ap = global.get_node("Archipelago") | ||
36 | |||
37 | if ap.has_item(item_id): | ||
38 | handleTriggered() | ||