2021-10-20 05:40:31 +00:00
|
|
|
extends Control
|
|
|
|
|
|
|
|
# Scenes
|
|
|
|
var title_screen
|
|
|
|
var gameplay
|
|
|
|
var options
|
|
|
|
var debug_menu
|
|
|
|
|
|
|
|
var debug_enabled = true
|
|
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
|
|
func _ready():
|
|
|
|
# Connect to signals
|
2021-10-20 07:26:32 +00:00
|
|
|
MessageBus.connect("change_scene", self, "_on_scene_start")
|
|
|
|
MessageBus.connect("kill_scene", self, "_on_scene_kill")
|
2021-10-20 05:40:31 +00:00
|
|
|
MessageBus.connect("quit", self, "_on_quit_request")
|
|
|
|
MessageBus.connect("return_to_title", self, "_on_title_request")
|
|
|
|
# Create the scenes
|
|
|
|
title_screen = preload("res://scenes/Title Screen.tscn")
|
|
|
|
gameplay = preload("res://scenes/Gameplay.tscn")
|
|
|
|
options = preload("res://scenes/Options.tscn")
|
|
|
|
debug_menu = preload("res://scenes/Debug Menu.tscn")
|
2021-10-20 06:05:39 +00:00
|
|
|
if debug_enabled:
|
2021-10-20 05:40:31 +00:00
|
|
|
add_child(debug_menu.instance())
|
2021-10-20 07:26:32 +00:00
|
|
|
_on_scene_start("Title")
|
2021-10-20 05:40:31 +00:00
|
|
|
|
2021-10-20 07:26:32 +00:00
|
|
|
# Creates a new instance of each menu scene
|
|
|
|
func _on_scene_start(scene):
|
|
|
|
print ("_on_scene_start(",scene,")")
|
2021-10-20 05:40:31 +00:00
|
|
|
match scene:
|
2021-10-20 07:26:32 +00:00
|
|
|
"Singleplayer": add_child (gameplay.instance())
|
|
|
|
"Multiplayer":
|
|
|
|
add_child (gameplay.instance())
|
|
|
|
# add_child (multiplayercontroller.instance())
|
|
|
|
"Options": add_child (options.instance())
|
|
|
|
"Title": add_child (title_screen.instance())
|
2021-10-20 05:40:31 +00:00
|
|
|
|
2021-10-20 07:26:32 +00:00
|
|
|
# Kills all child nodes with name matching `scene`
|
|
|
|
func _on_scene_kill(scene):
|
|
|
|
print ("_on_scene_kill(",scene,")")
|
|
|
|
var c = get_children()
|
|
|
|
for i in range (c.size()):
|
|
|
|
if c[i].name == scene:
|
|
|
|
c[i].queue_free()
|
|
|
|
|
|
|
|
# Quits
|
2021-10-20 05:40:31 +00:00
|
|
|
func _on_quit_request():
|
2021-10-20 07:26:32 +00:00
|
|
|
print ("_on_quit_request()")
|
2021-10-20 05:40:31 +00:00
|
|
|
get_tree().quit()
|
2021-10-20 07:26:32 +00:00
|
|
|
|
|
|
|
# Kills the current tree and replaces it with a new one
|
2021-10-20 05:40:31 +00:00
|
|
|
func _on_title_request():
|
2021-10-20 07:26:32 +00:00
|
|
|
print ("_on_title_request()")
|
|
|
|
return get_tree().change_scene("res://scenes/Main.tscn")
|