Ejemplo n.º 1
0
        public void RemoveMod(Mod mod)
        {
            if (!mods.Contains(mod))
                return;

            if (IsModActive(mod))
                DeactivateMod(mod);

            mods.Remove(mod);
            modsDb["Mods"].RemoveParameter(mod.Title);
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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}");
                }
            }
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
        }