From 16b96de507b81bf64aea74db7ce202dfdfbe16c2 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Fri, 9 Jan 2026 13:12:32 -0600 Subject: [PATCH] prog on scenes --- scene/RootScene.gd | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/scene/RootScene.gd b/scene/RootScene.gd index 74fa49f..9ae54d3 100644 --- a/scene/RootScene.gd +++ b/scene/RootScene.gd @@ -12,23 +12,41 @@ func _enter_tree() -> void: func _exit_tree() -> void: push_error("RootScene should not be removed from the scene tree. This is a bug.") +func removeAndHide(node:Node3D) -> void: + if node && node.get_parent() == self: + remove_child(node) + node.visible = false + +func addAndShow(node:Node3D) -> void: + if node: + add_child(node) + node.visible = true + func onSceneChange(newScene:SceneSingleton.SceneType) -> void: - print("overworld", overworld) - if overworld && overworld.get_parent() == self: - remove_child(overworld) - remove_child(initial) - - overworld.visible = false - initial.visible = false - match newScene: SceneSingleton.SceneType.INITIAL: - add_child(initial) - initial.visible = true + removeAndHide(overworld) + removeAndHide(battle) + removeAndHide(cooking) + addAndShow(initial) SceneSingleton.SceneType.OVERWORLD: - add_child(overworld) - overworld.visible = true + removeAndHide(initial) + removeAndHide(battle) + removeAndHide(cooking) + addAndShow(overworld) + + SceneSingleton.SceneType.BATTLE: + removeAndHide(initial) + removeAndHide(overworld) + removeAndHide(cooking) + addAndShow(battle) + + SceneSingleton.SceneType.COOKING: + removeAndHide(initial) + removeAndHide(overworld) + removeAndHide(battle) + addAndShow(cooking) SceneSingleton.SceneType.UNSET: pass