diff --git a/rust/src/game_settings.rs b/rust/src/game_settings.rs index aa7f68e..0eafce4 100644 --- a/rust/src/game_settings.rs +++ b/rust/src/game_settings.rs @@ -51,7 +51,7 @@ pub struct KeybindSettings { pub jump: Keybind, } -#[derive(Clone, Copy, Debug, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, PartialOrd)] pub enum Keybind { Key(i32), MouseButton(i32), diff --git a/rust/src/ui/settings.rs b/rust/src/ui/settings.rs index eb6eb53..05c2ba6 100644 --- a/rust/src/ui/settings.rs +++ b/rust/src/ui/settings.rs @@ -10,7 +10,7 @@ use godot::{ }; use crate::{ - game_settings::{GameSettingsManager, Keybind}, + game_settings::{GameSettings, GameSettingsManager, Keybind}, ui::slider::SliderContainer, }; @@ -85,14 +85,14 @@ impl Setting { } } -#[derive(Clone)] +#[derive(Clone, Debug, PartialEq, PartialOrd)] pub enum SettingValue { SliderNumber(SliderValue), String(String), Keybind(Keybind), } -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)] pub struct SliderValue { min: f64, max: f64, @@ -114,9 +114,13 @@ pub struct SettingsPanel { reset_button: Option>, settings: HashMap, + default_settings: HashMap, keybind_button: Option<(Setting, Gd