Esempio n. 1
0
        public void SetModStatus(ModDefinition definition, ModStatusType status)
        {
            lock (_cacheLock)
            {
                var def = Mods.FirstOrDefault(x => x.ID == definition.ID);
                if (def != null)
                {
                    switch (status)
                    {
                    case ModStatusType.Installed:
                        if (_modConfig.InstalledModIDs.Contains(definition.ID))
                        {
                            Log.LogErr($"ModStatusOp was supposed to install mod ID {definition.ID} but it is already listed as installed.");
                        }
                        else
                        {
                            _modConfig.InstalledModIDs.Add(definition.ID);
                        }
                        break;

                    case ModStatusType.NotInstalled:
                        if (!_modConfig.InstalledModIDs.Contains(definition.ID))
                        {
                            Log.LogErr($"ModStatusOp was supposed to uninstall mod ID {definition.ID} but it doesn't appear to be installed.");
                        }
                        else
                        {
                            _modConfig.InstalledModIDs.Remove(definition.ID);
                        }
                        break;
                    }
                    def.Status        = status;
                    definition.Status = status;
                }
                else
                {
                    Log.LogErr($"Mod ID was not found when trying to set its status to {status}!");
                }
            }
        }
Esempio n. 2
0
 public ModStatusOp(ModDefinition definition, ModStatusType status)
 {
     TargetModStatus = status;
     Definition      = definition;
 }