From 6fd6d493cd16b41bf88742ff6f4b7635ec3fa67c Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 28 Aug 2025 14:25:50 -0400 Subject: Client is starting to work! --- client/Archipelago/player.gd | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 client/Archipelago/player.gd (limited to 'client/Archipelago/player.gd') diff --git a/client/Archipelago/player.gd b/client/Archipelago/player.gd new file mode 100644 index 0000000..a84548a --- /dev/null +++ b/client/Archipelago/player.gd @@ -0,0 +1,42 @@ +extends "res://scripts/nodes/player.gd" + + +func _ready(): + var ap = global.get_node("Archipelago") + var gamedata = global.get_node("Gamedata") + + var map_id = gamedata.map_id_by_name.get(global.map) + for door in gamedata.objects.get_doors(): + if door.get_map_id() != map_id: + continue + + if not door.has_ap_id(): + continue + + if door.get_type() == gamedata.SCRIPT_proto.DoorType.ITEM_ONLY: + continue + + var locationListener = ap.SCRIPT_locationListener.new() + locationListener.location_id = door.get_ap_id() + locationListener.name = "locationListener_%d" % door.get_ap_id() + + for panel_ref in door.get_panels(): + # TODO: specific answers + var panel_data = gamedata.objects.get_panels()[panel_ref.get_panel()] + locationListener.senders.append(NodePath("/root/scene/" + panel_data.get_path())) + + get_parent().add_child.call_deferred(locationListener) + + for letter in gamedata.objects.get_letters(): + var room = gamedata.objects.get_rooms()[letter.get_room_id()] + if room.get_map_id() != map_id: + continue + + var locationListener = ap.SCRIPT_locationListener.new() + locationListener.location_id = letter.get_ap_id() + locationListener.name = "locationListener_%d" % letter.get_ap_id() + locationListener.senders.append(NodePath("/root/scene/" + letter.get_path())) + + get_parent().add_child.call_deferred(locationListener) + + super._ready() -- cgit 1.4.1