/// <summary>
        /// Retrieves the <see cref="ModSettingsPack"/> for a given mod identifier.
        /// </summary>
        /// <param name="modId">The unique identifier of the mod that owns the pack</param>
        /// <param name="displayModName">If not null, assigns the <see cref="ModSettingsPack.EntryName"/> property of the pack.
        /// This will be displayed in the Mod Settings dialog as a header.</param>
        public ModSettingsPack GetModSettings(string modId, string displayModName = null)
        {
            if (!IsValidElementName(modId))
            {
                throw new Exception("Invalid name for mod settings group: " + modId);
            }
            ModSettingsPack pack = null;

            for (int i = 0; i < packs.Count; i++)
            {
                if (packs[i].ModId == modId)
                {
                    pack = packs[i];
                    break;
                }
            }
            if (pack == null)
            {
                pack = InstantiatePack(modId);
            }
            if (displayModName != null)
            {
                pack.EntryName = displayModName;
            }
            return(pack);
        }
 public ModEntry(string modName, ModSettingsPack settingsPack, Mod vanillaMod)
 {
     ModName               = modName;
     SettingsPack          = settingsPack;
     VanillaMod            = vanillaMod;
     HasContextMenuEntries = settingsPack != null &&
                             (settingsPack.CanBeReset || settingsPack.ContextMenuEntries != null);
 }
        private ModSettingsPack InstantiatePack(string modId)
        {
            var pack = new ModSettingsPack(modId)
            {
                ParentManager = this
            };

            packs.Add(pack);
            return(pack);
        }
Example #4
0
 protected override void LoadFromXml(XDocument xml)
 {
     packs.Clear();
     if (xml.Root == null)
     {
         throw new NullReferenceException("Missing root node");
     }
     foreach (var childNode in xml.Root.Elements())
     {
         var pack = new ModSettingsPack(childNode.Name.ToString());
         packs.Add(pack);
         pack.LoadFromXml(childNode);
     }
 }
Example #5
0
        public ModSettingsPack GetModSettings(string modId)
        {
            if (!IsValidElementName(modId))
            {
                throw new Exception("Invalid name for mod settings group: " + modId);
            }
            for (int i = 0; i < packs.Count; i++)
            {
                if (packs[i].ModId == modId)
                {
                    return(packs[i]);
                }
            }
            var pack = new ModSettingsPack(modId);

            packs.Add(pack);
            return(pack);
        }
 public ModEntry(string modName, ModSettingsPack settingsPack, Mod vanillaMod)
 {
     ModName      = modName;
     SettingsPack = settingsPack;
     VanillaMod   = vanillaMod;
 }