aboutsummaryrefslogtreecommitdiff
path: root/client/menu/menu_manager.gd
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-06-26 16:53:14 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-26 16:53:14 +0200
commit1e88790bf75baefc48e2950529f0b6e930534830 (patch)
treed1acf176d8031947718e8bb00946af74967604f4 /client/menu/menu_manager.gd
parent2ca6ac7ab329036d0155de2de4b0a11f3a785414 (diff)
parent89310ea939d495274302d207be34cceae618768c (diff)
downloadhurrycurry-1e88790bf75baefc48e2950529f0b6e930534830.tar
hurrycurry-1e88790bf75baefc48e2950529f0b6e930534830.tar.bz2
hurrycurry-1e88790bf75baefc48e2950529f0b6e930534830.tar.zst
Merge branch 'master' of https://codeberg.org/metamuffin/undercooked
Diffstat (limited to 'client/menu/menu_manager.gd')
-rw-r--r--client/menu/menu_manager.gd36
1 files changed, 36 insertions, 0 deletions
diff --git a/client/menu/menu_manager.gd b/client/menu/menu_manager.gd
new file mode 100644
index 00000000..69866377
--- /dev/null
+++ b/client/menu/menu_manager.gd
@@ -0,0 +1,36 @@
+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 go_back():
+ 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].show()
+ if menus[k].has_method("prepare"):
+ menus[k].prepare() # Optionally run some code
+ Global.focus_first_button(menus[k])
+ else:
+ menus[k].hide()