From b07f1cadade0f0836d7b37ae655ca01625a9f537 Mon Sep 17 00:00:00 2001 From: desktop Date: Fri, 11 Dec 2020 13:24:37 +0100 Subject: [PATCH] Added options menu in-game --- Game.gd | 14 ++++++++++++-- Game.tscn | 3 ++- PlayerListItem.gd | 6 +++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Game.gd b/Game.gd index 7c0ba04..912f76a 100644 --- a/Game.gd +++ b/Game.gd @@ -19,6 +19,8 @@ var settingmap = { var peer = NetworkedMultiplayerENet.new() var local_player = null setget set_local_player +onready var menu_stack = [$MenuContainer/MainMenu] + func set_local_player(player): local_player = player player.set_local_player() @@ -64,7 +66,7 @@ func _input(event): if event.is_action_pressed("ToggleMenu"): if GAME_MODE == "PLAYING" and not $MenuContainer.is_visible(): open_menus() - elif $MenuContainer/MainMenu.is_visible(): + elif $MenuContainer/CharacterSelectScreen.is_visible(): close_menus() else: # Find the back button @@ -93,9 +95,16 @@ func close_menus(): Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) $MenuContainer.hide() -func return_to_menu(type): +func return_to_menu(type=null): + if type == null: + menu_stack.pop_back() + type = menu_stack[-1].name + for menu in $MenuContainer.get_children(): if menu.name == type: + if type != null: + while menu_stack[-1].name != type: + menu_stack.pop_back() menu.show() else: menu.hide() @@ -103,6 +112,7 @@ func return_to_menu(type): func open_menu(type): for menu in $MenuContainer.get_children(): if menu.name == type: + menu_stack.append(menu) menu.show() else: menu.hide() diff --git a/Game.tscn b/Game.tscn index d2f2119..1950f08 100644 --- a/Game.tscn +++ b/Game.tscn @@ -300,6 +300,7 @@ alignment = 1 [connection signal="pressed" from="MenuContainer/MainMenu/Disconnect" to="." method="free_client"] [connection signal="pressed" from="MenuContainer/MainMenu/Options" to="." method="open_menu" binds= [ "OptionsMenu" ]] [connection signal="pressed" from="MenuContainer/MainMenu/Quit" to="." method="quit"] +[connection signal="pressed" from="MenuContainer/CharacterSelectScreen/CenterContainer/VBoxContainer/Options/OptionsButton" to="." method="open_menu" binds= [ "OptionsMenu" ]] [connection signal="pressed" from="MenuContainer/CharacterSelectScreen/CenterContainer/VBoxContainer/Options/DisconnectButton" to="." method="free_client"] [connection signal="pressed" from="MenuContainer/ConnectMenu/Back" to="." method="return_to_menu" binds= [ "MainMenu" ]] [connection signal="text_changed" from="MenuContainer/ConnectMenu/Destination/IPAdress" to="." method="set_ip"] @@ -309,7 +310,7 @@ alignment = 1 [connection signal="pressed" from="MenuContainer/ConnectMenu/Home" to="." method="join_home"] [connection signal="pressed" from="MenuContainer/ConnectMenu/Unfa" to="." method="join_unfa"] [connection signal="pressed" from="MenuContainer/ConnectMenu/Jan" to="." method="join_jan"] -[connection signal="pressed" from="MenuContainer/OptionsMenu/Back" to="." method="return_to_menu" binds= [ "MainMenu" ]] +[connection signal="pressed" from="MenuContainer/OptionsMenu/Back" to="." method="return_to_menu"] [connection signal="pressed" from="MenuContainer/OptionsMenu/Controls" to="." method="open_menu" binds= [ "ControlsMenu" ]] [connection signal="pressed" from="MenuContainer/OptionsMenu/Graphics" to="." method="open_menu" binds= [ "GraphicsMenu" ]] [connection signal="pressed" from="MenuContainer/ControlsMenu/Back" to="." method="return_to_menu" binds= [ "OptionsMenu" ]] diff --git a/PlayerListItem.gd b/PlayerListItem.gd index 6e04645..b2c073f 100644 --- a/PlayerListItem.gd +++ b/PlayerListItem.gd @@ -3,6 +3,6 @@ extends HBoxContainer var player setget set_player var network_id -func set_player(player): - $Nickname.text = player.nickname - network_id = player.name +func set_player(_player): + $Nickname.text = _player.nickname + network_id = _player.name