35 lines
852 B
GDScript
35 lines
852 B
GDScript
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;
|