public void RemoveMod(Mod mod) { if (!mods.Contains(mod)) return; if (IsModActive(mod)) DeactivateMod(mod); mods.Remove(mod); modsDb["Mods"].RemoveParameter(mod.Title); }
public bool IsModActive(Mod mod) { for (int i = 0; i < ActiveModCount; i++) { string parameterKey = $"ActiveMod{i}"; if (modsDb["Main"].ContainsParameter(parameterKey) && modsDb["Main"][parameterKey] == mod.Title) { return true; } } return false; }
public void GetModsInFolder() { mods.Clear(); modsDb["Mods"].Clear(); foreach (string folder in Directory.GetDirectories(RootDirectory)) { string iniPath = Path.Combine(folder, "mod.ini"); if (File.Exists(iniPath)) { Mod mod = new Mod(folder); AddMod(mod); //LogFile.AddMessage($"Found mod: {mod.Title}"); } } }
public void DeactivateMod(Mod mod) { // We're now going to write the order again, so we're collecting the activated mods into list List<Mod> activeMods = new List<Mod>(); for (int i = 0; i < ActiveModCount; i++) { string parameterKey = $"ActiveMod{i}"; Mod activeMod = GetMod(modsDb["Main"][parameterKey]); if (activeMod != mod) activeMods.Add(activeMod); modsDb["Main"].RemoveParameter(parameterKey); } for (int i = 0; i < activeMods.Count; i++) { string parameterKey = $"ActiveMod{i}"; modsDb["Main"].AddParameter(parameterKey, activeMods[i].Title); } modsDb["Main"]["ActiveModCount", typeof(int)] = activeMods.Count; }
public void AddMod(Mod mod) { if (mods.Contains(mod)) return; if (!mod.RootDirectory.StartsWith(RootDirectory)) { Directory.Move(mod.RootDirectory, RootDirectory); mod.RootDirectory = Path.Combine(RootDirectory, Path.GetDirectoryName(mod.RootDirectory)); } mods.Add(mod); modsDb["Mods"].AddParameter(mod.Title, mod.FilePath); }
public void ActivateMod(Mod mod) { if (!modsDb["Mods"].ContainsParameter(mod.Title)) modsDb["Mods"].AddParameter(mod.Title, mod.FilePath); if (IsModActive(mod)) return; string parameterKey = $"ActiveMod{modsDb["Main"]["ActiveModCount", typeof(int)]}"; modsDb["Main"].AddParameter(parameterKey, mod.Title); modsDb["Main"]["ActiveModCount", typeof(int)] = modsDb["Main"].ParameterCount - 2; }