コード例 #1
0
 /// <summary>
 /// Disables a mod loader entry by manually modifying the listview item and properties of the entry.
 /// </summary>
 /// <param name="Mod_Loader_Entry"></param>
 private Mod_Loader_Mod_INI_Entry Toggle_Mod(Mod_Loader_Mod_INI_Entry Mod_Loader_Entry)
 {
     if (Mod_Loader_Entry.Mod_Enabled)
     {
         Mod_Loader_Entry.Mod_Enabled = false; ListView_Mod_List.SelectedItems[0].SubItems[0].Text = "☐"; Mod_Loader_Entry.Heroes_Mod_Listview_Item.ForeColor = Color.Gray;
     }
     else
     {
         Mod_Loader_Entry.Mod_Enabled = true; ListView_Mod_List.SelectedItems[0].SubItems[0].Text = "☑"; Mod_Loader_Entry.Heroes_Mod_Listview_Item.ForeColor = Color.LightGray;
     }
     return(Mod_Loader_Entry);
 }
コード例 #2
0
 /// <summary>
 /// Disables a mod obtained from the currently selected listview item.
 /// </summary>
 private void ListView_Toggle_Mod()
 {
     // Find the mod we are looking for
     for (int x = 0; x < Mod_Loader_Entries.Count; x++)
     {
         // Get current entry for the mod loader.
         Mod_Loader_Mod_INI_Entry Mod_Loader_Entry = Mod_Loader_Entries[x];
         // If the mod name and version matches a known mod, enable or disable the specific mod.
         if ((Mod_Loader_Entry.Mod_Name == ListView_Mod_List.SelectedItems[0].SubItems[1].Text) && (Mod_Loader_Entry.Mod_Version == ListView_Mod_List.SelectedItems[0].SubItems[2].Text))
         {
             Mod_Loader_Entry = Toggle_Mod(Mod_Loader_Entry);
         }
         // Replace old mod loader entry.
         Mod_Loader_Entries[x] = Mod_Loader_Entry;
     }
 }
コード例 #3
0
        /// <summary>
        /// Parses and reads the Mod.ini file for an individual mod loader mod.
        /// </summary>
        /// <param name="Mod_Loader_INI_Path"></param>
        /// <returns></returns>
        private Mod_Loader_Mod_INI_Entry Parse_Mod_Loader_INI_Entry(string Mod_Loader_INI_Path)
        {
            Mod_Loader_Mod_INI_Entry Mod_Loader_Entry = new Mod_Loader_Mod_INI_Entry();

            Mod_Loader_Entry.Mod_Directory = Path.GetDirectoryName(Mod_Loader_INI_Path);

            // Read the file line by line.
            string Current_Line;

            System.IO.StreamReader Mod_Loader_INI_File = new System.IO.StreamReader(Mod_Loader_INI_Path);
            while ((Current_Line = Mod_Loader_INI_File.ReadLine()) != null)
            {
                if (Current_Line.StartsWith("Name"))
                {
                    Mod_Loader_Entry.Mod_Name = Current_Line.Substring(Current_Line.IndexOf("=") + 1);
                }
                else if (Current_Line.StartsWith("Version"))
                {
                    Mod_Loader_Entry.Mod_Version = Current_Line.Substring(Current_Line.IndexOf("=") + 1);
                }
                else if (Current_Line.StartsWith("Description"))
                {
                    Mod_Loader_Entry.Mod_Description = Current_Line.Substring(Current_Line.IndexOf("=") + 1);
                }
                else if (Current_Line.StartsWith("Author"))
                {
                    Mod_Loader_Entry.Mod_Author = Current_Line.Substring(Current_Line.IndexOf("=") + 1);
                }
                else if (Current_Line.StartsWith("Options"))
                {
                    Mod_Loader_Entry.Options_ExecutableName = Current_Line.Substring(Current_Line.IndexOf("=") + 1);
                }
            }
            Mod_Loader_INI_File.Close();

            return(Mod_Loader_Entry);
        }
コード例 #4
0
        /// <summary>
        /// When the form is loaded for the first time.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainScreen_Load(object sender, EventArgs e)
        {
            ListView_Mod_List.Items.Clear();

            // Dumps a list of enabled mods.
            string[] Enabled_Mods_List        = File.ReadAllLines(Environment.CurrentDirectory + "\\Mod-Loader-Config\\Enabled_Mods.txt");
            string   Mod_Loader_Mods_Location = AppDomain.CurrentDomain.BaseDirectory + "Mod-Loader-Mods"; // Enabled mod list.

            // Add the enabled mods first.
            for (int x = 0; x < Enabled_Mods_List.Length; x++)
            {
                // Load our mod loader entry :)
                Mod_Loader_Mod_INI_Entry Mod_Loader_Entry = Parse_Mod_Loader_INI_Entry(Mod_Loader_Mods_Location + "\\" + Enabled_Mods_List[x] + @"\Mod.ini");

                // Generate ListViewItem for mod.
                ListViewItem Heroes_Mod_Item = new ListViewItem();
                Heroes_Mod_Item.Font = Program.xFonts.Hex_ComboBox_TinyUI;

                // Select colour based on enabled/disabled. ☑ ☐
                Heroes_Mod_Item.Text = "☑"; Mod_Loader_Entry.Mod_Enabled = true; Heroes_Mod_Item.ForeColor = System.Drawing.Color.LightGray;

                // Add subitems
                Heroes_Mod_Item.UseItemStyleForSubItems = true;
                Heroes_Mod_Item.SubItems.Add(new ListViewItem.ListViewSubItem(Heroes_Mod_Item, Mod_Loader_Entry.Mod_Name));
                Heroes_Mod_Item.SubItems.Add(new ListViewItem.ListViewSubItem(Heroes_Mod_Item, Mod_Loader_Entry.Mod_Version));

                // Assign to the mod loader entry
                Mod_Loader_Entry.Heroes_Mod_Listview_Item = Heroes_Mod_Item;

                // Add the item :3
                Mod_Loader_Entries.Add(Mod_Loader_Entry);
                ListView_Mod_List.Items.Add(Heroes_Mod_Item);
            }

            // Get all mod directories.
            Mod_Directories = Directory.GetDirectories(Mod_Loader_Mods_Location).ToList();

            // Remove all directories of already existing loaded mods from the directory list such that they do not become loaded once again.
            for (int x = 0; x < Mod_Directories.Count; x++)
            {
                string Mod_Directory_Name = Mod_Directories[x].Substring(Mod_Directories[x].LastIndexOf("\\") + 1);
                for (int z = 0; z < Enabled_Mods_List.Length; z++)
                {
                    if (Mod_Directory_Name == Enabled_Mods_List[z])
                    {
                        Mod_Directories.RemoveAt(x);
                        x--; // Decrement the index by 1 because the current index was removed.
                    }
                }
            }

            // Strip the path to the mod loader
            // Add each mod onto the selection.
            for (int x = 0; x < Mod_Directories.Count; x++)
            {
                // Load our mod loader entry :)
                Mod_Loader_Mod_INI_Entry Mod_Loader_Entry = Parse_Mod_Loader_INI_Entry(Mod_Directories[x] + @"\Mod.ini");

                // Generate ListViewItem for mod.
                ListViewItem Heroes_Mod_Item = new ListViewItem();
                Heroes_Mod_Item.Font = Program.xFonts.Hex_ComboBox_TinyUI;

                // Select colour based on enabled/disabled. ☑ ☐
                Heroes_Mod_Item.Text = "☐"; Mod_Loader_Entry.Mod_Enabled = false; Heroes_Mod_Item.ForeColor = System.Drawing.Color.Gray;

                // Add subitems
                Heroes_Mod_Item.UseItemStyleForSubItems = true;
                Heroes_Mod_Item.SubItems.Add(new ListViewItem.ListViewSubItem(Heroes_Mod_Item, Mod_Loader_Entry.Mod_Name));
                Heroes_Mod_Item.SubItems.Add(new ListViewItem.ListViewSubItem(Heroes_Mod_Item, Mod_Loader_Entry.Mod_Version));

                // Assign to the mod loader entry
                Mod_Loader_Entry.Heroes_Mod_Listview_Item = Heroes_Mod_Item;

                // Add the item :3
                Mod_Loader_Entries.Add(Mod_Loader_Entry);
                ListView_Mod_List.Items.Add(Heroes_Mod_Item);
            }
        }