From 69bc0630667f285708ddbb74af8ef83f7a41fc23 Mon Sep 17 00:00:00 2001 From: tpart Date: Wed, 26 Jun 2024 16:08:38 +0200 Subject: Rewrite settings system; Add full controller support to settings; Add menu manager system --- client/menu/menu_manager.gd | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 client/menu/menu_manager.gd (limited to 'client/menu/menu_manager.gd') 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 -- cgit v1.2.3-70-g09d2 From 677b9c898b0fc3faac2aa505cce438a2b2189265 Mon Sep 17 00:00:00 2001 From: tpart Date: Wed, 26 Jun 2024 16:33:03 +0200 Subject: Support optionally running activation code with menu manager; Fix shuffling in credits not updating --- client/menu/credits_menu.gd | 4 ++-- client/menu/ingame_menu.tscn | 2 +- client/menu/menu_manager.gd | 6 ++++-- 3 files changed, 7 insertions(+), 5 deletions(-) (limited to 'client/menu/menu_manager.gd') diff --git a/client/menu/credits_menu.gd b/client/menu/credits_menu.gd index e4eac72d..07fffab9 100644 --- a/client/menu/credits_menu.gd +++ b/client/menu/credits_menu.gd @@ -24,7 +24,7 @@ var cc_by_3 := { @onready var menu_manager: MenuManager = get_parent() @onready var label = $Panel/MarginContainer/VBoxContainer/RichTextLabel -func _ready(): +func prepare(): contributors.shuffle() label.text = "[center][b]undercooked - a game about cooking[/b]\n\ndeveloped by\n\n[b]" label.text += ", ".join(contributors) @@ -35,6 +35,6 @@ func _ready(): label.text += "[b]\"%s\" %s[/b]\nLicensed under Creative Commons: By Attribution 3.0 License\nhttps://creativecommons.org/licenses/by/3.0/\n\n" % [k, v] label.text += "[b]Additional CC0 assets by:[/b]\n" + "\n".join(cc_0) - + func _on_back_pressed(): menu_manager.goBack() diff --git a/client/menu/ingame_menu.tscn b/client/menu/ingame_menu.tscn index f29c7115..47b7cb54 100644 --- a/client/menu/ingame_menu.tscn +++ b/client/menu/ingame_menu.tscn @@ -72,7 +72,7 @@ anchors_preset = 9 anchor_bottom = 1.0 offset_left = -400.0 offset_right = -90.0 -offset_bottom = 648.0 +offset_bottom = 1296.0 grow_vertical = 2 [node name="Margin" type="MarginContainer" parent="Side"] diff --git a/client/menu/menu_manager.gd b/client/menu/menu_manager.gd index dc6afce8..1285a7e6 100644 --- a/client/menu/menu_manager.gd +++ b/client/menu/menu_manager.gd @@ -28,7 +28,9 @@ func goBack(): func show_menu(menu_name: String): for k in menus.keys(): if k == menu_name: - menus[k].visible = true + 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].visible = false + menus[k].hide() -- cgit v1.2.3-70-g09d2