veloren_voxygen/settings/
gameplay.rs

1use crate::hud::{AutoPressBehavior, PressBehavior};
2use serde::{Deserialize, Serialize};
3
4/// `GameplaySettings` contains sensitivity and gameplay options.
5#[derive(Clone, Debug, Serialize, Deserialize)]
6#[serde(default)]
7pub struct GameplaySettings {
8    pub pan_sensitivity: u32,
9    pub zoom_sensitivity: u32,
10    pub camera_clamp_angle: u32,
11    pub walking_speed: f32,
12    pub zoom_inversion: bool,
13    pub mouse_y_inversion: bool,
14    pub smooth_pan_enable: bool,
15    pub free_look_behavior: PressBehavior,
16    pub auto_walk_behavior: PressBehavior,
17    pub walking_speed_behavior: PressBehavior,
18    pub camera_clamp_behavior: PressBehavior,
19    pub zoom_lock_behavior: AutoPressBehavior,
20    pub stop_auto_walk_on_input: bool,
21    pub auto_camera: bool,
22    pub bow_zoom: bool,
23    pub zoom_lock: bool,
24    pub aim_offset_x: f32,
25    pub aim_offset_y: f32,
26    pub show_all_recipes: bool,
27}
28
29impl Default for GameplaySettings {
30    fn default() -> Self {
31        Self {
32            pan_sensitivity: 100,
33            zoom_sensitivity: 100,
34            camera_clamp_angle: 45,
35            walking_speed: 0.35,
36            zoom_inversion: false,
37            mouse_y_inversion: false,
38            smooth_pan_enable: false,
39            free_look_behavior: PressBehavior::Toggle,
40            auto_walk_behavior: PressBehavior::Toggle,
41            walking_speed_behavior: PressBehavior::Toggle,
42            camera_clamp_behavior: PressBehavior::Toggle,
43            zoom_lock_behavior: AutoPressBehavior::Auto,
44            stop_auto_walk_on_input: true,
45            auto_camera: false,
46            bow_zoom: true,
47            zoom_lock: false,
48            aim_offset_x: 0.6,
49            aim_offset_y: 0.0,
50            show_all_recipes: false,
51        }
52    }
53}