class_name Game extends Node var current_scene : Node var level0 = preload("res://levels/level_0.tscn") var level1 = preload("res://levels/level_1.tscn") var scene_name = "level_0" var current_scence var prev_scene # Called when the node enters the scene tree for the first time. func _ready() -> void: go_to(scene_name) func reload_current_scene() -> void: go_to(scene_name) func enter_door(destination): call_deferred("go_to", destination) func go_to(destination): if current_scence: remove_child(current_scence) if destination == "level_1": current_scence = level1.instantiate() scene_name = "level_1" elif destination == "level_0": current_scence = level0.instantiate() scene_name = "level_0" current_scence.connect("reload_me", reload_current_scene, ConnectFlags.CONNECT_ONE_SHOT) var doors :Node = current_scence.find_child("Doors") if doors: for door in doors.get_children(): door.connect("door_openned", enter_door, ConnectFlags.CONNECT_ONE_SHOT) add_child(current_scence)