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); }
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; }
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); } }
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(); } }
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; } }
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(); }
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```"))); }
public static Hmod Get() => Hmod.Get();