summaryrefslogtreecommitdiffstats
path: root/MouseInput.gd
diff options
context:
space:
mode:
Diffstat (limited to 'MouseInput.gd')
-rw-r--r--MouseInput.gd17
1 files changed, 17 insertions, 0 deletions
diff --git a/MouseInput.gd b/MouseInput.gd
index e47e3c7..5805a02 100644
--- a/MouseInput.gd
+++ b/MouseInput.gd
@@ -9,3 +9,20 @@ func get_mouse_movement():
func add_mouse_movement(relative):
mouse_movement += relative
+
+func _ready():
+ Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
+
+func _notification(what):
+ if what == MainLoop.NOTIFICATION_WM_FOCUS_OUT:
+ Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
+
+func _input(event):
+ if event.is_action_pressed("ui_cancel"):
+ Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
+ if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE:
+ if event.is_action_pressed("click"):
+ Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
+ else:
+ if event is InputEventMouseMotion:
+ add_mouse_movement(event.relative)