extends Node const MainMenu = preload("res://menu/main_menu.tscn") const Options = preload("res://menu/options.tscn") const Credits = preload("res://menu/credits.tscn") signal continue_game signal new_game signal quit_game var _current_scene: Node func _ready() -> void: _show_main_menu() func _show_main_menu() -> void: if _current_scene != null: _current_scene.queue_free() var scene := MainMenu.instantiate() add_child(scene) scene.continue_game.connect(_continue_game) scene.new_game.connect(_new_game) scene.show_options.connect(_show_options) scene.quit_game.connect(_quit_game) _current_scene = scene func _continue_game() -> void: continue_game.emit() func _new_game() -> void: new_game.emit() func _quit_game() -> void: quit_game.emit() func _show_options() -> void: if _current_scene != null: _current_scene.queue_free() var scene := Options.instantiate() add_child(scene) scene.show_main_menu.connect(_show_main_menu) scene.show_credits.connect(_show_credits) _current_scene = scene func _show_credits() -> void: if _current_scene != null: _current_scene.queue_free() var scene := Credits.instantiate() add_child(scene) scene.show_main_menu.connect(_show_main_menu) _current_scene = scene