diff --git a/MiraAPI.Example/ExampleLocalSetings.cs b/MiraAPI.Example/ExampleLocalSetings.cs index e7c292f..bac0507 100644 --- a/MiraAPI.Example/ExampleLocalSetings.cs +++ b/MiraAPI.Example/ExampleLocalSetings.cs @@ -2,7 +2,6 @@ using MiraAPI.LocalSettings; using MiraAPI.LocalSettings.Attributes; using MiraAPI.Utilities; -using Reactor.Utilities; using UnityEngine; namespace MiraAPI.Example; @@ -30,8 +29,11 @@ public class ExampleLocalSettings(ConfigFile config) : LocalSettingsTab(config) [LocalSliderSetting(suffixType: MiraNumberSuffixes.Percent, formatString: "0", roundValue: true)] public ConfigEntry ExampleSlider { get; private set; } = config.Bind("General", "Slider", 50f); - [LocalNumberSetting(suffixType: MiraNumberSuffixes.Seconds)] - public ConfigEntry ExampleNumber { get; private set; } = config.Bind("General", "Example Number", 4); + [LocalNumberSetting] + public ConfigEntry ExampleNumber { get; private set; } = config.Bind("General", "Example Number", 4f); + + [LocalNumberSetting(min: 0.1f, max: 2.5f, increment: 0.1f, formatString: "0.0", suffixType: MiraNumberSuffixes.Multiplier)] + public ConfigEntry ExampleFloatNumber { get; private set; } = config.Bind("General", "Example Multplier", 1f); [LocalEnumSetting] public ConfigEntry ExampleEnum { get; private set; } = config.Bind("General", "Example Enum", ExampleEnumSetting.Fries); diff --git a/MiraAPI/LocalSettings/Attributes/LocalNumberSettingAttribute.cs b/MiraAPI/LocalSettings/Attributes/LocalNumberSettingAttribute.cs index 20a55f3..febd711 100644 --- a/MiraAPI/LocalSettings/Attributes/LocalNumberSettingAttribute.cs +++ b/MiraAPI/LocalSettings/Attributes/LocalNumberSettingAttribute.cs @@ -18,9 +18,9 @@ namespace MiraAPI.LocalSettings.Attributes; public class LocalNumberSettingAttribute( string? name = null, string? description = null, - int min = 1, - int max = 5, - int increment = 1, + float min = 1, + float max = 5, + float increment = 1, MiraNumberSuffixes suffixType = MiraNumberSuffixes.None, string? formatString = null ) : LocalSettingAttribute(name, description) @@ -28,6 +28,6 @@ public class LocalNumberSettingAttribute( /// internal override LocalNumberSetting CreateSetting(Type tab, ConfigEntryBase configEntryBase) { - return new LocalNumberSetting(tab, configEntryBase, name, description, new IntRange(min, max), increment, suffixType, formatString); + return new LocalNumberSetting(tab, configEntryBase, name, description, new FloatRange(min, max), increment, suffixType, formatString); } } diff --git a/MiraAPI/LocalSettings/SettingTypes/LocalNumberSetting.cs b/MiraAPI/LocalSettings/SettingTypes/LocalNumberSetting.cs index 70be2aa..fb86fdc 100644 --- a/MiraAPI/LocalSettings/SettingTypes/LocalNumberSetting.cs +++ b/MiraAPI/LocalSettings/SettingTypes/LocalNumberSetting.cs @@ -12,17 +12,17 @@ namespace MiraAPI.LocalSettings.SettingTypes; /// /// Local setting class for numbers. /// -public class LocalNumberSetting : LocalSettingBase +public class LocalNumberSetting : LocalSettingBase { /// /// Gets the range of the button. /// - public IntRange NumberRange { get; } + public FloatRange NumberRange { get; } /// /// Gets the increment of the value when button is pressed. /// - public int Increment { get; } + public float Increment { get; } /// /// Gets a format for the text to use to format the number. @@ -47,14 +47,14 @@ public class LocalNumberSetting : LocalSettingBase ConfigEntryBase configEntry, string? name = null, string? description = null, - IntRange? numberRange = null, - int? increment = null, + FloatRange? numberRange = null, + float? increment = null, MiraNumberSuffixes? suffixType = null, string? formatString = null) : base(tab, configEntry, name, description) { SuffixType = suffixType ?? MiraNumberSuffixes.None; - NumberRange = numberRange ?? new IntRange(1, 5); + NumberRange = numberRange ?? new FloatRange(1, 5); Increment = increment ?? 1; FormatString = formatString ?? "0"; } @@ -97,7 +97,7 @@ public class LocalNumberSetting : LocalSettingBase button.OnClick.AddListener((UnityAction)(() => { - int value = GetValue(); + float value = GetValue(); value += Increment; if (value > NumberRange.max) { diff --git a/MiraAPI/LocalSettings/SettingTypes/LocalSettingBase.cs b/MiraAPI/LocalSettings/SettingTypes/LocalSettingBase.cs index f991376..d144ce4 100644 --- a/MiraAPI/LocalSettings/SettingTypes/LocalSettingBase.cs +++ b/MiraAPI/LocalSettings/SettingTypes/LocalSettingBase.cs @@ -56,7 +56,7 @@ public abstract class LocalSettingBase : ILocalSetting /// Gets the value of the config entry, casted to the setting type. /// /// The value. - public T GetValue() + public virtual T GetValue() { return (T)ConfigEntry.BoxedValue; } @@ -65,7 +65,7 @@ public abstract class LocalSettingBase : ILocalSetting /// Sets the value of the config entry. /// /// The value to set to. - public void SetValue(T value) + public virtual void SetValue(T value) { ConfigEntry.BoxedValue = value; Tab?.OnOptionChanged(ConfigEntry);