summaryrefslogtreecommitdiff
path: root/scripts/cameras/player_firstperson.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cameras/player_firstperson.gd')
-rw-r--r--scripts/cameras/player_firstperson.gd33
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/cameras/player_firstperson.gd b/scripts/cameras/player_firstperson.gd
new file mode 100644
index 0000000..ace49e6
--- /dev/null
+++ b/scripts/cameras/player_firstperson.gd
@@ -0,0 +1,33 @@
+extends Camera
+
+
+var mouse_axis := Vector2()
+var mouse_sensitivity = 12.0
+
+func _ready():
+ Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
+ current = false
+
+
+func _input(event):
+ if current:
+ if Input.is_action_just_pressed("menu"): #toggle mouse capture on esc
+ if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE:
+ Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
+ else:
+ Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
+ if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
+ mouse_axis = event.relative
+ if mouse_axis.length() > 0:
+ var horizontal: float = -mouse_axis.x * (mouse_sensitivity / 100)
+ var vertical: float = -mouse_axis.y * (mouse_sensitivity / 100)
+
+ mouse_axis = Vector2()
+
+ get_parent().rotate_y(deg2rad(horizontal))
+ rotate_x(deg2rad(vertical))
+
+ var temp_rot: Vector3 = rotation_degrees
+ temp_rot.x = clamp(temp_rot.x, -90, 90)
+ get_parent().animationcontroller.rpc("lean",-1*temp_rot.x/90)
+ rotation_degrees = temp_rot