59 lines
1.3 KiB
GDScript
59 lines
1.3 KiB
GDScript
extends Node
|
|
|
|
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 : Node = load("res://menu/main_menu.tscn").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 : Node = load("res://menu/options.tscn").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 : Node = load("res://menu/credits.tscn").instantiate()
|
|
add_child(scene)
|
|
scene.show_main_menu.connect(_show_main_menu)
|
|
_current_scene = scene
|
|
|