aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-06-30 00:36:42 +0200
committernokoe <nokoe@mailbox.org>2024-06-30 00:36:42 +0200
commit88c61bdaeca10b17cd24053ebafbc15f73710034 (patch)
treeb63e0d064378d3a11a3f4e53c4402a918c7e6cc6
parent12b06f3b8769467b957986e2b2601f6dfb7f9dc6 (diff)
downloadhurrycurry-88c61bdaeca10b17cd24053ebafbc15f73710034.tar
hurrycurry-88c61bdaeca10b17cd24053ebafbc15f73710034.tar.bz2
hurrycurry-88c61bdaeca10b17cd24053ebafbc15f73710034.tar.zst
add invert camera option
-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)