aboutsummaryrefslogtreecommitdiff
path: root/client/menu/menu_manager.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/menu/menu_manager.gd')
-rw-r--r--client/menu/menu_manager.gd34
1 files changed, 34 insertions, 0 deletions
diff --git a/client/menu/menu_manager.gd b/client/menu/menu_manager.gd
new file mode 100644
index 00000000..dc6afce8
--- /dev/null
+++ b/client/menu/menu_manager.gd
@@ -0,0 +1,34 @@
+extends Control
+class_name MenuManager
+
+@onready var menus = {
+ "main": $MainMenu,
+ "credits": $CreditsMenu,
+ "settings": $SettingsMenu
+}
+@onready var transition = $SceneTransition
+
+var menu_stack = ["main"]
+
+func _ready():
+ Global.focus_first_button(menus[menu_stack.back()])
+
+func goto(menu_name: String):
+ show_menu(menu_name)
+ menu_stack.push_back(menu_name)
+ print("Go to called. Stack: " + str(menu_stack))
+
+func goBack():
+ menu_stack.pop_back()
+ if menu_stack.is_empty():
+ Global.showError("Menu stack empty")
+ show_menu(menu_stack.back())
+ print("Go back called. Stack: " + str(menu_stack))
+
+func show_menu(menu_name: String):
+ for k in menus.keys():
+ if k == menu_name:
+ menus[k].visible = true
+ Global.focus_first_button(menus[k])
+ else:
+ menus[k].visible = false