65 lines
1.2 KiB
GDScript
65 lines
1.2 KiB
GDScript
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
|