2023-03-13 12:15:43 +00:00
|
|
|
extends Node3D
|
|
|
|
|
|
2023-03-26 22:29:25 +00:00
|
|
|
# Referencing the current State of the Scene.
|
|
|
|
|
enum Modes {
|
|
|
|
|
FREEZE,
|
|
|
|
|
WALKING,
|
|
|
|
|
COLLECTING,
|
|
|
|
|
LISTENING,
|
|
|
|
|
SORTING
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
signal freeze
|
|
|
|
|
signal unfreeze
|
2023-07-13 14:16:42 +00:00
|
|
|
signal ini_room
|
|
|
|
|
signal resume_room
|
2023-03-26 22:29:25 +00:00
|
|
|
|
|
|
|
|
var current_mode: int = Modes.FREEZE:
|
|
|
|
|
set(new_mode):
|
|
|
|
|
if not current_mode == new_mode:
|
|
|
|
|
current_mode = _update_scene(new_mode)
|
2023-03-13 12:15:43 +00:00
|
|
|
|
|
|
|
|
func start():
|
2023-07-13 14:16:42 +00:00
|
|
|
emit_signal("ini_room")
|
2023-03-26 22:29:25 +00:00
|
|
|
current_mode = Modes.WALKING
|
|
|
|
|
|
|
|
|
|
func _update_scene(new_mode) -> int:
|
|
|
|
|
if current_mode == Modes.FREEZE:
|
|
|
|
|
emit_signal("freeze")
|
|
|
|
|
elif new_mode == Modes.FREEZE:
|
|
|
|
|
emit_signal("freeze")
|
2023-04-22 13:11:10 +00:00
|
|
|
|
2023-03-26 22:29:25 +00:00
|
|
|
return new_mode
|
2023-07-19 20:43:00 +00:00
|
|
|
|
|
|
|
|
func get_ready():
|
|
|
|
|
self.show()
|
|
|
|
|
$sfx/distant_rain.play()
|
|
|
|
|
$"sfx/rain on window".play()
|
|
|
|
|
await get_tree().create_timer(0.1).timeout
|
|
|
|
|
$logic/UI/board.hide()
|