This commit is contained in:
2026-02-23 11:37:27 +01:00
commit 13dbb551c8
94 changed files with 2682 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
extends Node
#region Showing new Screens
signal game_pause
signal game_unpause
signal game_debug_show
signal game_debug_hide
#endregion
#region Game State Management
var _is_in_game: bool = false
var _is_paused: bool = false
var is_debug_label_visible: bool = false
var capture_mouse_ingame: bool = true
#endregion
enum InputType {MOUSE, JOYPAD}
func _ready():
set_process_mode(Node.PROCESS_MODE_ALWAYS)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("pause"):
if (_is_in_game and not _is_paused):
game_pause.emit()
elif (_is_in_game and _is_paused):
game_unpause.emit()
elif event.is_action_pressed("toggle_debug_label"):
if is_debug_label_visible:
game_debug_hide.emit()
else:
game_debug_show.emit()
elif not _is_in_game:
pass
func set_is_in_game(b: bool) -> void:
_is_in_game = b
_update_mouse_capture()
func _update_mouse_capture() -> void:
if capture_mouse_ingame:
if (not _is_in_game) || _is_paused:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
else:
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
func set_is_paused(b: bool) -> void:
_is_paused = b
_update_mouse_capture()