mirror of
https://github.com/JohnBreaux/Boat-Battle.git
synced 2025-02-04 12:28:35 +00:00
Overhaul menu system
This commit is contained in:
41
godot_ship/script/game/Main.gd
Normal file
41
godot_ship/script/game/Main.gd
Normal file
@@ -0,0 +1,41 @@
|
||||
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
|
||||
MessageBus.connect("change_scene", self, "_on_change_scene")
|
||||
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")
|
||||
if (debug_enabled):
|
||||
add_child(debug_menu.instance())
|
||||
_on_change_scene("Title")
|
||||
|
||||
func _on_change_scene(scene):
|
||||
match scene:
|
||||
"Singleplayer":
|
||||
add_child(gameplay.instance())
|
||||
"Multiplayer":
|
||||
add_child(gameplay.instance())
|
||||
"Options":
|
||||
add_child(options.instance())
|
||||
"Title":
|
||||
add_child(title_screen.instance())
|
||||
|
||||
func _on_quit_request():
|
||||
get_tree().quit()
|
||||
|
||||
func _on_title_request():
|
||||
get_tree().change_scene("res://scenes/Options.tscn")
|
||||
8
godot_ship/script/game/Message Bus.gd
Normal file
8
godot_ship/script/game/Message Bus.gd
Normal file
@@ -0,0 +1,8 @@
|
||||
extends Node
|
||||
|
||||
# Ask for a scene change
|
||||
signal change_scene(scene_name)
|
||||
# Ask to quit the game
|
||||
signal quit
|
||||
# Ask to return to title screen
|
||||
signal return_to_title
|
||||
Reference in New Issue
Block a user