diff options
Diffstat (limited to 'apworld/client/player.gd')
| -rw-r--r-- | apworld/client/player.gd | 29 |
1 files changed, 28 insertions, 1 deletions
| 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(): | |||
| 13 | 13 | ||
| 14 | var ap = global.get_node("Archipelago") | 14 | var ap = global.get_node("Archipelago") |
| 15 | var gamedata = global.get_node("Gamedata") | 15 | var gamedata = global.get_node("Gamedata") |
| 16 | var map_id = gamedata.map_id_by_name.get(global.map) | ||
| 17 | var map_data = gamedata.objects.get_maps()[map_id] | ||
| 16 | 18 | ||
| 17 | compass = global.get_node("Compass") | 19 | compass = global.get_node("Compass") |
| 18 | compass.visible = ap.show_compass | 20 | compass.visible = ap.show_compass |
| @@ -26,8 +28,33 @@ func _ready(): | |||
| 26 | 28 | ||
| 27 | ap.update_job_well_done_sign() | 29 | ap.update_job_well_done_sign() |
| 28 | 30 | ||
| 31 | # Set up the RTE trigger, if there is one. | ||
| 32 | if map_data.has_rte_trigger_pos(): | ||
| 33 | var oneShotListener_prefab = preload("res://objects/nodes/listeners/oneShotListener.tscn") | ||
| 34 | var triggerArea_prefab = preload("res://objects/nodes/triggerArea.tscn") | ||
| 35 | var unlockSetterListener_prefab = preload( | ||
| 36 | "res://objects/nodes/listeners/unlockSetterListener.tscn" | ||
| 37 | ) | ||
| 38 | |||
| 39 | var triggerArea = triggerArea_prefab.instantiate() | ||
| 40 | triggerArea.name = "rte_triggerArea" | ||
| 41 | triggerArea.position = gamedata.vec3d_to_vector3(map_data.get_rte_trigger_pos()) | ||
| 42 | triggerArea.scale = gamedata.vec3d_to_vector3(map_data.get_rte_trigger_scale()) | ||
| 43 | get_parent().add_child.call_deferred(triggerArea) | ||
| 44 | |||
| 45 | var osl = oneShotListener_prefab.instantiate() | ||
| 46 | osl.name = "rte_osl" | ||
| 47 | osl.senders.append(NodePath("/root/scene/rte_triggerArea")) | ||
| 48 | get_parent().add_child.call_deferred(osl) | ||
| 49 | |||
| 50 | var usl = unlockSetterListener_prefab.instantiate() | ||
| 51 | usl.name = "rte_usl" | ||
| 52 | usl.key = "rte_%s" % global.map | ||
| 53 | usl.value = "unlocked" | ||
| 54 | usl.senders.append(NodePath("/root/scene/rte_osl")) | ||
| 55 | get_parent().add_child.call_deferred(usl) | ||
| 56 | |||
| 29 | # Set up door locations. | 57 | # Set up door locations. |
| 30 | var map_id = gamedata.map_id_by_name.get(global.map) | ||
| 31 | for door in gamedata.objects.get_doors(): | 58 | for door in gamedata.objects.get_doors(): |
| 32 | if door.get_map_id() != map_id: | 59 | if door.get_map_id() != map_id: |
| 33 | continue | 60 | continue |
