diff options
| author | nokoe <nokoe@mailbox.org> | 2024-06-26 16:39:50 +0200 | 
|---|---|---|
| committer | nokoe <nokoe@mailbox.org> | 2024-06-26 16:39:50 +0200 | 
| commit | a8d17ba85a46169fa049c70e1a8f53ea97784c90 (patch) | |
| tree | f84853b18396e510149b0704e7238c1c22b87e98 /client/menu/menu_manager.gd | |
| parent | 5654b69e4c7e0aafe258ad0ab73105722a389def (diff) | |
| parent | 677b9c898b0fc3faac2aa505cce438a2b2189265 (diff) | |
| download | hurrycurry-a8d17ba85a46169fa049c70e1a8f53ea97784c90.tar hurrycurry-a8d17ba85a46169fa049c70e1a8f53ea97784c90.tar.bz2 hurrycurry-a8d17ba85a46169fa049c70e1a8f53ea97784c90.tar.zst  | |
Merge branch 'master' of ssh://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..1285a7e6 --- /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 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].show() +			if menus[k].has_method("prepare"): +				menus[k].prepare() # Optionally run some code +			Global.focus_first_button(menus[k]) +		else: +			menus[k].hide()  |