From 22be3c24f3895a1227fc585b8494d753c1746026 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:11:16 -0400 Subject: [PATCH] make sure only options picked up by Manager get registered into list --- MiraAPI/GameOptions/ModdedOptionsManager.cs | 14 ++++++++------ MiraAPI/GameOptions/OptionTypes/ModdedOption.cs | 1 - 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/MiraAPI/GameOptions/ModdedOptionsManager.cs b/MiraAPI/GameOptions/ModdedOptionsManager.cs index f61556c..39a8532 100644 --- a/MiraAPI/GameOptions/ModdedOptionsManager.cs +++ b/MiraAPI/GameOptions/ModdedOptionsManager.cs @@ -62,11 +62,7 @@ public class ModdedOptionsManager return; } - option.ParentMod = pluginInfo.MiraPlugin; - option.AdvancedRole = group.AdvancedRole; - pluginInfo.Options.Add(option); - - Groups[group].Add(option); + RegisterOption(option, group, pluginInfo); } internal static void RegisterAttributeOption(Type type, ModdedOptionAttribute attribute, PropertyInfo property, MiraPluginInfo pluginInfo) @@ -102,13 +98,19 @@ public class ModdedOptionsManager OptionAttributes.Add(property, attribute); attribute.HolderOption = option; + RegisterOption(option, group, pluginInfo); + } + + private static void RegisterOption(IModdedOption option, IModdedOptionGroup group, MiraPluginInfo pluginInfo) + { option.ParentMod = pluginInfo.MiraPlugin; option.AdvancedRole = group.AdvancedRole; pluginInfo.Options.Add(option); + ModdedOptions.Add(option.Id, option); Groups[group].Add(option); } - + internal static void SyncAllOptions(int targetId=-1) { List data = []; diff --git a/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs b/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs index 5bd07cb..f34754d 100644 --- a/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs +++ b/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs @@ -39,7 +39,6 @@ public abstract class ModdedOption : IModdedOption private ModdedOption() { Id = ModdedOptionsManager.NextId; - ModdedOptionsManager.ModdedOptions.Add(Id, this); } public void ValueChanged(OptionBehaviour optionBehaviour)