From 059b4b96cc589b2b8951048ed57bf2e909596566 Mon Sep 17 00:00:00 2001 From: Tiger Jove Date: Thu, 22 Jan 2026 16:06:11 +0100 Subject: [PATCH] refactor: named the get_ready and start_room functions _async so it's clearer how they work differently --- .../transition/code/subway_sequence.gd | 7 ++++-- .../volunteer_room/volunteer_room.gd | 14 +++++------ .../youth_room/youth_room.gd | 16 ++++++------- src/dev-util/room.gd | 23 +++++++++---------- src/dev-util/room_with_board.gd | 5 ++-- 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/src/base-environments/transition/code/subway_sequence.gd b/src/base-environments/transition/code/subway_sequence.gd index 3a2dde2..15d3d80 100644 --- a/src/base-environments/transition/code/subway_sequence.gd +++ b/src/base-environments/transition/code/subway_sequence.gd @@ -3,13 +3,16 @@ class_name SubwaySequence @export var all_stations: Dictionary[Station.id, Station] @export var all_lines: Dictionary[TrainLine.id, TrainLine] + func _ready() -> void: id = State.rooms.TRANSITION super._ready() +func get_ready_async() -> void: + await super.get_ready_async() -func start_room(): - await super.start_room() +func start_room_async(): + await super.start_room_async() Scenes.player_enable.emit(true) diff --git a/src/base-environments/volunteer_room/volunteer_room.gd b/src/base-environments/volunteer_room/volunteer_room.gd index b334962..b72dc75 100644 --- a/src/base-environments/volunteer_room/volunteer_room.gd +++ b/src/base-environments/volunteer_room/volunteer_room.gd @@ -5,8 +5,9 @@ func _ready() -> void: super._ready() # UwU, superclass _ready is not called by Godot automatically... prints("volunteer_room.gd", "_ready()", self) -func get_ready() -> void: - await super.get_ready() + +func get_ready_async() -> void: + await super.get_ready_async() %TherapyVoluntaryInteractable.visible = not save_game.subway_burnout %TherapyUniInteractable.visible = save_game.subway_burnout @@ -17,16 +18,15 @@ func get_ready() -> void: ) -func start_room(): - await super.start_room() - %UI.show() - - %PlayerController.process_mode = Node.PROCESS_MODE_INHERIT +func start_room_async(): + await super.start_room_async() # Give player control immediately, then open + %PlayerController.process_mode = Node.PROCESS_MODE_INHERIT Scenes.player_enable.emit(true) await Main.curtain.open() + func prepare_transition(): pass diff --git a/src/base-environments/youth_room/youth_room.gd b/src/base-environments/youth_room/youth_room.gd index bd94793..d6a397c 100644 --- a/src/base-environments/youth_room/youth_room.gd +++ b/src/base-environments/youth_room/youth_room.gd @@ -5,11 +5,15 @@ func _ready() -> void: super._ready() # UwU, superclass _ready is not called by Godot automatically... prints("youth_room.gd", "_ready()", self) -func start_room(): - await super.start_room() - %UI.show() +func get_ready() -> void: + await super.get_ready_async() + prints("youth_room.gd", "get_ready()", self) + await Main.curtain.open() + +func start_room_async(): + await super.start_room_async() await Main.curtain.open() # To start breathing etc. @@ -33,12 +37,6 @@ func _play_intro_scene() -> void: await intro.interact() -func get_ready() -> void: - await super.get_ready() - prints("youth_room.gd", "get_ready()", self) - - ui.hide()# Not sure? - func pull_save_state(save: SaveGame) -> void: super.pull_save_state(save) prints("youth_room.gd", "pull_save_state()", self) diff --git a/src/dev-util/room.gd b/src/dev-util/room.gd index e3579f1..b782c39 100644 --- a/src/dev-util/room.gd +++ b/src/dev-util/room.gd @@ -33,29 +33,28 @@ func _ready() -> void: _debug_mode() - - -func get_ready(): +func get_ready_async(): prints("----------", "GET_READY", self.name, "--------------") pull_save_state(save_game) save_game.seen.append(name) +func start_room_async(): + prints("----------", "START_ROOM", self.name, "--------------") + await get_tree().process_frame # so this registers as a coroutine in IDE + + func play() -> String: - for i in range(20): - await get_tree().process_frame - await get_ready() - await start_room() + for i in range(20): await get_tree().process_frame #HACK - can probably be removed + + await get_ready_async() + await start_room_async() + var next_room : StringName = await proceed prints("----------", "PROCEEDING", next_room, "--------------") return next_room -func start_room(): - prints("----------", "START_ROOM", self.name, "--------------") - await get_tree().process_frame # so this registers as a coroutine in IDE - - func pull_save_state(save: SaveGame) -> void: # Override this function to load the state of the chapter from State.save_game restore_player_from_save(save) diff --git a/src/dev-util/room_with_board.gd b/src/dev-util/room_with_board.gd index a888422..8253c06 100644 --- a/src/dev-util/room_with_board.gd +++ b/src/dev-util/room_with_board.gd @@ -11,9 +11,8 @@ func _ready() -> void: prints("room_with_board.gd", "_ready()", self, owner) - -func get_ready(): - super.get_ready() +func get_ready_async(): + super.get_ready_async() prints("room_with_board.gd", "get_ready()", self) assert(card_board, str(self) + " has no CardBoard")