MagicNStuff/source/globals/autoloads/input_manager.gd
2025-02-25 22:07:11 +01:00

26 lines
721 B
GDScript

extends Node
const TOGGLE_MOUSE_BUTTON: StringName = &"toggle_mouse"
var using_controller: bool = false
func _input(event: InputEvent) -> void:
if not window_focused():
get_viewport().set_input_as_handled()
return
if event is InputEventMouseButton or event is InputEventKey:
if using_controller:
using_controller = false
elif event is InputEventJoypadButton or event is InputEventJoypadMotion:
if not using_controller:
using_controller = true
if event.is_action_pressed(TOGGLE_MOUSE_BUTTON):
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED if Input.mouse_mode == Input.MOUSE_MODE_VISIBLE else Input.MOUSE_MODE_VISIBLE)
func window_focused() -> bool:
return DisplayServer.window_is_focused()