26 lines
721 B
GDScript
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()
|