2023-12-02 16:37:42 +00:00
|
|
|
extends Node3D
|
|
|
|
|
|
2024-10-01 23:30:03 +00:00
|
|
|
@export_file(".tscn") var youth_room_path: String
|
|
|
|
|
@export_file(".tscn") var voluntary_room: String
|
|
|
|
|
@export_file(".tscn") var study_room: String
|
|
|
|
|
|
|
|
|
|
@onready var loading_player: AnimationPlayer = %MenuAnimationPlayer
|
|
|
|
|
|
|
|
|
|
var last_progress_state: float = 0
|
|
|
|
|
var current_loaded_room: Node3D
|
|
|
|
|
var currently_loading_room: String = "":
|
|
|
|
|
set(path):
|
|
|
|
|
if path != "":
|
|
|
|
|
ResourceLoader.load_threaded_request(path, "PackedScene")
|
|
|
|
|
currently_loading_room = path
|
|
|
|
|
last_progress_state
|
|
|
|
|
loading_player.queue("loading")
|
|
|
|
|
else:
|
|
|
|
|
loading_player.queue("loading_done")
|
|
|
|
|
|
2023-12-02 16:37:42 +00:00
|
|
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
|
|
|
func _ready():
|
2024-10-01 23:30:03 +00:00
|
|
|
currently_loading_room = youth_room_path
|
|
|
|
|
|
|
|
|
|
func _process(delta: float) -> void:
|
|
|
|
|
if currently_loading_room != "":
|
|
|
|
|
var progress:Array
|
|
|
|
|
if ResourceLoader.load_threaded_get_status(youth_room_path, progress) == 3:
|
|
|
|
|
current_loaded_room = ResourceLoader.load_threaded_get(youth_room_path).instantiate()
|
|
|
|
|
add_child(current_loaded_room)
|
|
|
|
|
move_child(current_loaded_room, 0)
|
|
|
|
|
currently_loading_room = ""
|
|
|
|
|
elif last_progress_state != progress[0]:
|
|
|
|
|
loading_player.seek(progress[0])
|
|
|
|
|
last_progress_state = progress[0]
|
2023-12-02 16:37:42 +00:00
|
|
|
|
|
|
|
|
func debug_youth():
|
2024-09-15 09:30:31 +00:00
|
|
|
get_child(1).hide()
|
|
|
|
|
get_child(2).hide()
|
|
|
|
|
get_child(3).hide()
|
|
|
|
|
get_child(0).get_ready()
|
|
|
|
|
get_child(0).start()
|