frame-of-mind/src/base-environments/youth_room/room_handle.gd

50 lines
932 B
GDScript3
Raw Normal View History

extends Node3D
# Referencing the current State of the Scene.
enum Modes {
2024-09-15 09:30:31 +00:00
FREEZE,
WALKING,
COLLECTING,
LISTENING,
SORTING
}
signal freeze
signal unfreeze
signal ini_room
signal resume_room
var current_mode: int = Modes.FREEZE:
2024-09-15 09:30:31 +00:00
set(new_mode):
if not current_mode == new_mode:
current_mode = _update_scene(new_mode)
func start():
2024-09-15 09:30:31 +00:00
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
emit_signal("ini_room")
current_mode = Modes.WALKING
func _update_scene(new_mode) -> int:
2024-09-15 09:30:31 +00:00
if current_mode == Modes.FREEZE:
emit_signal("freeze")
elif new_mode == Modes.FREEZE:
emit_signal("freeze")
2024-09-15 09:30:31 +00:00
return new_mode
2023-07-19 20:43:00 +00:00
2023-12-02 16:37:42 +00:00
func is_self(node: Node) -> bool:
2024-09-15 09:30:31 +00:00
return self == node
2023-12-02 16:37:42 +00:00
2023-07-19 20:43:00 +00:00
func get_ready():
2024-09-15 09:30:31 +00:00
self.show()
$sfx/distant_rain.play()
$"sfx/rain on window".play()
await get_tree().create_timer(0.1).timeout
$logic/UI/board.hide()
2023-12-02 16:37:42 +00:00
func _ready():
2024-09-15 09:30:31 +00:00
if get_parent() == get_tree().root:
get_ready()
start()