diff --git a/MiraAPI.Example/Options/ExampleOptions2.cs b/MiraAPI.Example/Options/ExampleOptions2.cs index 56dd209..50152dc 100644 --- a/MiraAPI.Example/Options/ExampleOptions2.cs +++ b/MiraAPI.Example/Options/ExampleOptions2.cs @@ -14,7 +14,7 @@ public class ExampleOptions2 : AbstractOptionGroup public ModdedToggleOption ToggleOpt2 { get; } = new("Toggle Option 2", false) { - Visible = () => OptionGroupSingleton.Instance.ToggleOpt1.Value, + Visible = () => OptionGroupSingleton.Instance.ToggleOpt1, // implicit cast from ModdedToggleOption to bool }; public ModdedEnumOption EnumOpt { get; } = new("Enum Opt", 0, typeof(TestingData)) diff --git a/MiraAPI/GameOptions/Attributes/ModdedEnumOptionAttribute.cs b/MiraAPI/GameOptions/Attributes/ModdedEnumOptionAttribute.cs index 2944520..db5594f 100644 --- a/MiraAPI/GameOptions/Attributes/ModdedEnumOptionAttribute.cs +++ b/MiraAPI/GameOptions/Attributes/ModdedEnumOptionAttribute.cs @@ -27,10 +27,8 @@ public class ModdedEnumOptionAttribute(string title, Type enumType, string[]? va /// public override object GetValue() { - if (HolderOption is ModdedEnumOption opt) - { - return Enum.ToObject(enumType, opt.Value); - } - throw new InvalidOperationException($"HolderOption for option \"{Title}\" with EnumType ${enumType.FullName} is not a ModdedEnumOption"); + return HolderOption is ModdedEnumOption opt + ? Enum.ToObject(enumType, opt.Value) + : throw new InvalidOperationException($"HolderOption for option \"{Title}\" with EnumType ${enumType.FullName} is not a ModdedEnumOption"); } } diff --git a/MiraAPI/GameOptions/OptionTypes/ModdedNumberOption.cs b/MiraAPI/GameOptions/OptionTypes/ModdedNumberOption.cs index e86d88d..24cd346 100644 --- a/MiraAPI/GameOptions/OptionTypes/ModdedNumberOption.cs +++ b/MiraAPI/GameOptions/OptionTypes/ModdedNumberOption.cs @@ -144,4 +144,14 @@ public class ModdedNumberOption : ModdedOption opt.Value = Value; } } + + /// + /// Implicitly converts the option to an int. + /// + /// The option. + /// Integer value. + public static implicit operator int(ModdedNumberOption option) + { + return (int)option.Value; + } } diff --git a/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs b/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs index d811f1d..c199c12 100644 --- a/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs +++ b/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs @@ -194,4 +194,14 @@ public abstract class ModdedOption : IModdedOption NumberOption numberOpt, StringOption stringOpt, Transform container); + + /// + /// Implicitly converts the option to type of . + /// + /// The option. + /// Value of type . + public static implicit operator T(ModdedOption option) + { + return option.Value; + } } diff --git a/MiraAPI/Utilities/Assets/SpriteTools.cs b/MiraAPI/Utilities/Assets/SpriteTools.cs index c73d2ba..fa49f12 100644 --- a/MiraAPI/Utilities/Assets/SpriteTools.cs +++ b/MiraAPI/Utilities/Assets/SpriteTools.cs @@ -1,6 +1,5 @@ using System; using System.Reflection; -using Reactor.Utilities; using Reactor.Utilities.Extensions; using UnityEngine;