Chelimbalo/gui/mouse_confiner.gd

20 lines
481 B
GDScript

extends Node
var global_mode: Input.MouseMode = Input.MouseMode.MOUSE_MODE_VISIBLE
var borrowed_visibiles: int = 0
func set_global_mode(to: Input.MouseMode) -> void:
global_mode = to
Input.mouse_mode = to
borrowed_visibiles = 0
func borrow() -> void:
borrowed_visibiles += 1
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
func stop_borrow() -> void:
if borrowed_visibiles == 0:
return
borrowed_visibiles -= 1
if borrowed_visibiles == 0:
Input.mouse_mode = global_mode