From a2abd188f762659c5e7595079d2925bc2869b455 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 7 Feb 2026 07:49:30 -0500 Subject: Clientside RTE shuffle --- apworld/client/player.gd | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'apworld/client/player.gd') diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 5fac9fd..95c05d7 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd @@ -13,6 +13,8 @@ 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) + var map_data = gamedata.objects.get_maps()[map_id] compass = global.get_node("Compass") compass.visible = ap.show_compass @@ -26,8 +28,33 @@ func _ready(): ap.update_job_well_done_sign() + # Set up the RTE trigger, if there is one. + if map_data.has_rte_trigger_pos(): + var oneShotListener_prefab = preload("res://objects/nodes/listeners/oneShotListener.tscn") + var triggerArea_prefab = preload("res://objects/nodes/triggerArea.tscn") + var unlockSetterListener_prefab = preload( + "res://objects/nodes/listeners/unlockSetterListener.tscn" + ) + + var triggerArea = triggerArea_prefab.instantiate() + triggerArea.name = "rte_triggerArea" + triggerArea.position = gamedata.vec3d_to_vector3(map_data.get_rte_trigger_pos()) + triggerArea.scale = gamedata.vec3d_to_vector3(map_data.get_rte_trigger_scale()) + get_parent().add_child.call_deferred(triggerArea) + + var osl = oneShotListener_prefab.instantiate() + osl.name = "rte_osl" + osl.senders.append(NodePath("/root/scene/rte_triggerArea")) + get_parent().add_child.call_deferred(osl) + + var usl = unlockSetterListener_prefab.instantiate() + usl.name = "rte_usl" + usl.key = "rte_%s" % global.map + usl.value = "unlocked" + usl.senders.append(NodePath("/root/scene/rte_osl")) + get_parent().add_child.call_deferred(usl) + # Set up door locations. - 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 -- cgit 1.4.1