aboutsummaryrefslogtreecommitdiff
path: root/client/menu/menu_manager.gd
diff options
context:
space:
mode:
authortpart <tpart120@proton.me>2024-06-26 16:08:38 +0200
committertpart <tpart120@proton.me>2024-06-26 16:08:40 +0200
commit69bc0630667f285708ddbb74af8ef83f7a41fc23 (patch)
treede28fd0ca4404d75c9505a25a2d9f484e4fd61e2 /client/menu/menu_manager.gd
parentc4b0f8d698b574c711b1e205371adfd3e3339487 (diff)
downloadhurrycurry-69bc0630667f285708ddbb74af8ef83f7a41fc23.tar
hurrycurry-69bc0630667f285708ddbb74af8ef83f7a41fc23.tar.bz2
hurrycurry-69bc0630667f285708ddbb74af8ef83f7a41fc23.tar.zst
Rewrite settings system; Add full controller support to settings; Add menu manager system
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