From f50f7dee84c93380bb9c6ca1b0dc209181293092 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 24 Sep 2025 00:11:10 +0200 Subject: Add fps mouse sens setting --- client/gui/menus/settings/input/input_manager.gd | 3 ++- client/player/controllable_player.gd | 5 +++-- client/system/settings.gd | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'client') diff --git a/client/gui/menus/settings/input/input_manager.gd b/client/gui/menus/settings/input/input_manager.gd index 82ee5a6a..da148e8d 100644 --- a/client/gui/menus/settings/input/input_manager.gd +++ b/client/gui/menus/settings/input/input_manager.gd @@ -43,9 +43,10 @@ func get_events(action_name: String) -> Array: return [] return input_map[action_name] -func settings() -> Array: +func settings(extra) -> Array: # Array[GameSetting] var entries := [] for k in input_map.keys(): entries.append(InputSetting.new(k)) + entries.append_array(extra) return entries func change_input_map_action(action_name: String, events: Array, save: bool = true): diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index ebc91488..8f5ce3c0 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -76,8 +76,9 @@ func _process(delta): func _input(event: InputEvent): if Input.mouse_mode != Input.MOUSE_MODE_CAPTURED: return if event is InputEventMouseMotion: - fps_look.x += event.relative.y * -0.001 - fps_look.y += event.relative.x * 0.001 + var sens = Settings.read("input.fps_mouse_sensitivity") + fps_look.x += event.relative.y * -sens + fps_look.y += event.relative.x * sens fps_look.x = max(-PI * 0.45, min(PI * 0.45, fps_look.x)) if event is InputEventMouseButton: var action = "" diff --git a/client/system/settings.gd b/client/system/settings.gd index cd990216..97546c68 100644 --- a/client/system/settings.gd +++ b/client/system/settings.gd @@ -62,7 +62,9 @@ static func get_root(): DropdownSetting.new("scale_mode", "resize", ["resize", "disabled"]), RangeSetting.new("scale_factor", 1. if not Global.on_mobile() else 1.5, 0.5, 1.5, 3), ]), - SettingsCategory.new("input", InputManager.settings()), + SettingsCategory.new("input", InputManager.settings([ + RangeSetting.new("fps_mouse_sensitivity", 0.001, 0.0001, 0.003) + ])), SettingsCategory.new("server", [ PathSetting.new("binary_path", "", FileDialog.FileMode.FILE_MODE_OPEN_FILE), PathSetting.new("editor_binary_path", "", FileDialog.FileMode.FILE_MODE_OPEN_DIR), -- cgit v1.2.3-70-g09d2