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() | ||
