diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-26 16:53:14 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-26 16:53:14 +0200 |
commit | 1e88790bf75baefc48e2950529f0b6e930534830 (patch) | |
tree | d1acf176d8031947718e8bb00946af74967604f4 /client/menu/menu_manager.gd | |
parent | 2ca6ac7ab329036d0155de2de4b0a11f3a785414 (diff) | |
parent | 89310ea939d495274302d207be34cceae618768c (diff) | |
download | hurrycurry-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.gd | 36 |
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() |