class_name SceneManager extends Node const MainMenu = preload("res://scenes/MainMenu.tscn"); const OverworldScene = preload("res://scenes/Overworld.tscn"); const SCENES:Dictionary[String, PackedScene] = { "Initial": MainMenu, "MainMenu": MainMenu, "Overworld": OverworldScene }; var scene = "Initial"; var currentScene:Node = null; func _ready() -> void: currentScene = get_tree().root.get_child(-1); func setScene(newScene:String) -> void: print("Setting scene to " + str(newScene)); scene = newScene; if not SCENES.has(newScene): push_error("Scene not found: " + newScene); return; var root = get_tree().root; print("Current scene: " + str(currentScene)); if currentScene: currentScene.queue_free(); var newSceneInstance = SCENES[newScene].instantiate(); if newSceneInstance: root.add_child(newSceneInstance); currentScene = newSceneInstance;