class_name RootScene extends Node3D @export var overworld:Node3D = null @export var initial:Node3D = null func _enter_tree() -> void: SCENE.sceneChanged.connect(onSceneChange) SCENE.setScene(SceneSingleton.SceneType.INITIAL) func _exit_tree() -> void: push_error("RootScene should not be removed from the scene tree. This is a bug.") func onSceneChange(newScene:SceneSingleton.SceneType) -> void: remove_child(overworld) remove_child(initial) overworld.visible = false initial.visible = false match newScene: SceneSingleton.SceneType.INITIAL: add_child(initial) initial.visible = true SceneSingleton.SceneType.OVERWORLD: add_child(overworld) overworld.visible = true SceneSingleton.SceneType.UNSET: pass _: pass