diff --git a/MiraAPI/GameOptions/IModdedOption.cs b/MiraAPI/GameOptions/IModdedOption.cs index 099194e..7ecc57c 100644 --- a/MiraAPI/GameOptions/IModdedOption.cs +++ b/MiraAPI/GameOptions/IModdedOption.cs @@ -1,8 +1,8 @@ -using System; -using System.Collections.Generic; -using BepInEx.Configuration; +using BepInEx.Configuration; using MiraAPI.Networking; using MiraAPI.PluginLoading; +using System; +using System.Collections.Generic; using UnityEngine; namespace MiraAPI.GameOptions; @@ -122,3 +122,16 @@ public interface IModdedOption public interface IModdedOptionList : IReadOnlyList { } + +/// +/// Interface for list of options. +/// +/// The type of . +public interface IModdedOptionList : IModdedOptionList where T : IModdedOption +{ + /// + new T this[int index] { get; } + + /// + new IEnumerator GetEnumerator(); +} diff --git a/MiraAPI/GameOptions/OptionTypes/ModdedOptionList.cs b/MiraAPI/GameOptions/OptionTypes/ModdedOptionList.cs index 5a764b2..88b32c5 100644 --- a/MiraAPI/GameOptions/OptionTypes/ModdedOptionList.cs +++ b/MiraAPI/GameOptions/OptionTypes/ModdedOptionList.cs @@ -9,7 +9,7 @@ namespace MiraAPI.GameOptions.OptionTypes; /// Represents a modded option list. /// /// The type of options. -public class ModdedOptionList : IModdedOptionList where T : IModdedOption +public class ModdedOptionList : IModdedOptionList where T : IModdedOption { /// public int Count { get; } @@ -40,10 +40,10 @@ public class ModdedOptionList : IModdedOptionList where T : IModdedOption Options = options.ToArray(); } - /// - public IEnumerator GetEnumerator() + /// + public IEnumerator GetEnumerator() { - return ((IEnumerable)Options).GetEnumerator(); + return Options.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() @@ -51,6 +51,11 @@ public class ModdedOptionList : IModdedOptionList where T : IModdedOption return Options.GetEnumerator(); } + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)Options).GetEnumerator(); + } + /// /// Indexes the option of type . ///