Пример #1
0
            public static Hmod Get()
            {
                Hmod hakchiHmod = new Hmod();

                hakchiHmod.HmodStream = new MemoryStream();

                using (var extractor = ArchiveFactory.Open(Path.Combine(Program.BaseDirectoryInternal, "basehmods.tar")))
                {
                    var hakchiEntry = extractor.Entries.Where(e => e.Key == "./hakchi.hmod" || e.Key == "hakchi.hmod").First();
                    if (File.Exists(latestHmodFile) && File.GetLastWriteTime(latestHmodFile) > hakchiEntry.LastModifiedTime)
                    {
                        using (var file = File.OpenRead(latestHmodFile))
                        {
                            hakchiHmod.LastModified = File.GetLastWriteTime(latestHmodFile);
                            hakchiHmod.Location     = Hmod.HmodLocation.HakchiLatest;
                            file.CopyTo(hakchiHmod.HmodStream);
                        }
                    }
                    else
                    {
                        hakchiHmod.LastModified = hakchiEntry.LastModifiedTime.Value;
                        hakchiHmod.Location     = Hmod.HmodLocation.Basehmods;
                        hakchiEntry.OpenEntryStream().CopyTo(hakchiHmod.HmodStream);
                    }
                }
                hakchiHmod.HmodStream.Seek(0, SeekOrigin.Begin);

                return(hakchiHmod);
            }
Пример #2
0
        void showReadMe(ref Hmod hmod)
        {
            Color  color = this.BackColor;
            string html  = String.Format(Properties.Resources.readmeTemplateHTML, Properties.Resources.readmeTemplateCSS, hmod.Name, formatReadme(ref hmod), $"rgb({color.R},{color.G},{color.B})");

            wbReadme.DocumentText = html;
        }
Пример #3
0
 private void showModInExplorerToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (listViewHmods.SelectedItems.Count > 0)
     {
         Hmod   selectedHmod = (Hmod)(listViewHmods.SelectedItems[0].Tag);
         string args         = $"/select, \"{selectedHmod.HmodPath}\"";
         Process.Start("explorer.exe", args);
     }
 }
Пример #4
0
 private void listViewHmods_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (listViewHmods.SelectedItems.Count > 0)
     {
         Hmod hmod = (Hmod)(listViewHmods.SelectedItems[0].Tag);
         showReadMe(ref hmod);
     }
     else
     {
         wbReadme.Refresh();
     }
 }
Пример #5
0
 private void listViewHmods_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
 {
     if (e.Item != null && listViewHmods.SelectedItems.Count > 0)
     {
         Hmod hmod = (Hmod)(listViewHmods.SelectedItems[0].Tag);
         showReadMe(ref hmod);
     }
     else
     {
         Color  color = this.BackColor;
         string html  = String.Format(Properties.Resources.readmeTemplateHTML, Properties.Resources.readmeTemplateCSS, "", "", $"rgb({color.R},{color.G},{color.B})");
         wbReadme.DocumentText = html;
         hmodDisplayed         = null;
     }
 }
Пример #6
0
 private void deleteModFromDiskToolStripMenuItem_Click(object sender, EventArgs e)
 {
     foreach (ListViewItem selectedItem in listViewHmods.SelectedItems)
     {
         Hmod selectedHmod = (Hmod)(selectedItem.Tag);
         if (selectedHmod.isFile)
         {
             File.Delete(selectedHmod.HmodPath);
         }
         else
         {
             Directory.Delete(selectedHmod.HmodPath, true);
         }
         hmods.Remove(selectedHmod);
     }
     populateList();
 }
Пример #7
0
        string formatReadme(ref Hmod hmod)
        {
            string[]      headingFields = { "Creator", "Version" };
            List <string> headingLines  = new List <string>();

            foreach (string heading in headingFields)
            {
                string keyValue;
                if (hmod.Readme.frontMatter.TryGetValue(heading, out keyValue))
                {
                    headingLines.Add($"**{heading}:** {keyValue}");
                }
            }

            foreach (string keyName in hmod.Readme.frontMatter.Keys)
            {
                if (!headingFields.Contains(keyName) && keyName != "Name")
                {
                    headingLines.Add($"**{keyName}:** {hmod.Readme.frontMatter[keyName]}");
                }
            }

            return(CommonMarkConverter.Convert(String.Join("  \n", headingLines.ToArray()) + "\n\n" + (hmod.Readme.isMarkdown || hmod.Readme.readme.Length == 0 ? hmod.Readme.readme : $"```\n{hmod.Readme.readme}\n```")));
        }
Пример #8
0
 public static Hmod Get() => Hmod.Get();