From 07fcd52dc9ef76aa0a017b4497c704c95b6acdf8 Mon Sep 17 00:00:00 2001 From: Squinty Date: Wed, 17 Apr 2024 19:21:31 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Use=20escape=20key=20to=20get=20bac?= =?UTF-8?q?k=20to=20main=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entities/player/player_input.gd | 1 - main.tscn | 32 ++++++++++++++++++++------------ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/entities/player/player_input.gd b/entities/player/player_input.gd index 7780a4e..f9889d2 100644 --- a/entities/player/player_input.gd +++ b/entities/player/player_input.gd @@ -30,7 +30,6 @@ func _ready(): var has_authority = is_multiplayer_authority() set_process(has_authority) set_process_unhandled_input(has_authority) - Input.mouse_mode = Input.MOUSE_MODE_CAPTURED func _unhandled_input(event: InputEvent) -> void: var mouse_mode = Input.get_mouse_mode() diff --git a/main.tscn b/main.tscn index 2fa6731..6e77c01 100644 --- a/main.tscn +++ b/main.tscn @@ -19,30 +19,38 @@ func _ready(): $BootMenu/Multiplayer.join_server.connect(_join_server) func _start_demo(): - if mode: mode.queue_free() - mode = SINGLEPLAYER.instantiate() - add_child(mode) + _set_game_mode(SINGLEPLAYER.instantiate()) $BootMenu.hide() func _start_server(port, nickname): - if mode: mode.queue_free() - mode = MULTIPLAYER.instantiate() - add_child(mode) + _set_game_mode(MULTIPLAYER.instantiate()) mode.start_server(port, nickname) $BootMenu.hide() func _join_server(host, port, nickname): - if mode: mode.queue_free() - mode = MULTIPLAYER.instantiate() - add_child(mode) + _set_game_mode(MULTIPLAYER.instantiate()) mode.connected_to_server.connect($BootMenu/Multiplayer._on_connected_to_server) mode.connection_failed.connect($BootMenu/Multiplayer._on_connection_failed) mode.join_server(host, port, nickname) -func _unhandled_input(event): - # exit the program +func _input(event): if event.is_action_pressed(\"exit\"): - get_tree().quit() + _set_game_mode(null) + multiplayer.multiplayer_peer.close() + $BootMenu.show() + +func _set_game_mode(new_mode : Node): + if mode != null: + remove_child(mode) + mode.queue_free() + mode = new_mode + if mode == null: + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + else: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + add_child(mode) + +func _unhandled_input(event): # switch window mode if event.is_action_pressed(\"window_mode\"): if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN: