extends Node2D class_name SceneManager const SCENES : Dictionary = { "MAINMENU" : "res://scenes/main_menu.tscn", "HIGHSCORES" : "res://scenes/highscores.tscn", "LEVEL1" : "res://levels/level_1.tscn", "LEVEL2" : "res://levels/level_2.tscn", "LEVEL3" : "res://levels/level_3.tscn", "LEVEL4" : "res://levels/level_4.tscn", "LEVEL5" : "res://levels/level_5.tscn", "LEVEL6" : "res://levels/level_6.tscn", } var loading_scene_res : Resource = null func _ready(): Log.pr("SceneManager is ready.") SceneMgr.connect("change_scene", Callable(self, "_on_change_scene")) $TransitionScene.connect("transitioned", Callable(self, "_on_transition_scene_transitioned")) func _on_change_scene(scene_name): Log.pr("Going to load a scene.", scene_name) if SCENES.has(scene_name): loading_scene_res = load(SCENES[scene_name]) Log.pr("Loading scene: ", loading_scene_res) $TransitionScene.transition() else: loading_scene_res = null func _on_transition_scene_transitioned(): $CurrentScene.get_child(0).queue_free() $CurrentScene.add_child(loading_scene_res.instantiate())