aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/global.gd5
-rw-r--r--client/player/follow_camera.gd8
2 files changed, 11 insertions, 2 deletions
diff --git a/client/global.gd b/client/global.gd
index 10468645..d4ab1677 100644
--- a/client/global.gd
+++ b/client/global.gd
@@ -44,6 +44,11 @@ var default_settings := {
"value": true,
"description": tr("Interpolate the camera rotation")
},
+ "invert_camera": {
+ "type": "toggle",
+ "value": false,
+ "description": tr("Invert camera movement")
+ },
"server_binary": {
"type": "line",
"value": "",
diff --git a/client/player/follow_camera.gd b/client/player/follow_camera.gd
index e3ba5e92..36538e8d 100644
--- a/client/player/follow_camera.gd
+++ b/client/player/follow_camera.gd
@@ -57,10 +57,14 @@ func _input(event):
camera_distance_target = 10
func follow(delta):
- angle_target += Input.get_axis("rotate_left", "rotate_right") * ROTATE_SPEED * delta
+ angle_target += Input.get_axis("rotate_left", "rotate_right") * (
+ ROTATE_SPEED * delta * (1 if Global.settings["invert_camera"]["value"] else -1)
+ )
angle = lerp_angle(angle, angle_target, delta * ROTATE_WEIGHT)
- angle_up_target += Input.get_axis("rotate_down", "rotate_up") * ROTATE_UP_SPEED * delta
+ angle_up_target += Input.get_axis("rotate_down", "rotate_up") * (
+ ROTATE_UP_SPEED * delta * (1 if Global.settings["invert_camera"]["value"] else -1)
+ )
angle_up_target = clamp(angle_up_target, ANGLE_UP_MIN, ANGLE_UP_MAX)
angle_up = lerp_angle(angle_up, angle_up_target, delta * ROTATE_UP_WEIGHT)