diff --git a/mod.jpg b/mod.jpg index f66f164..3d41edf 100644 Binary files a/mod.jpg and b/mod.jpg differ diff --git a/src/CatalogExport/CatalogExportWindow.cs b/src/CatalogExport/CatalogExportWindow.cs index cb0b21a..9356396 100644 --- a/src/CatalogExport/CatalogExportWindow.cs +++ b/src/CatalogExport/CatalogExportWindow.cs @@ -1,17 +1,17 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json; -using Cthangover.Core.Mods; -using Cthangover.Core.UI.Theming; -using Cthangover.Core.Utils; -using Cthangover.Mods.Interface.Theming; -using Cthangover.Mods.Interface.Tool; -using Cthangover.Tools.Common; -using Godot; - namespace Cthangover.Core.UI.Tool.CatalogExport { + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text.Json; + using Cthangover.Core.Mods; + using Cthangover.Core.UI.Theming; + using Cthangover.Core.Utils; + using Cthangover.Mods.Interface.Theming; + using Cthangover.Mods.Interface.Tool; + using Cthangover.Tools.Common; + using Godot; + /// /// Developer tool that builds a catalog entry (JSON for the online mod /// catalog) from a locally installed mod's manifest. Ported out of the old @@ -26,6 +26,8 @@ namespace Cthangover.Core.UI.Tool.CatalogExport /// public partial class CatalogExportWindow : ToolWindow { + private void OnDownloadUrlChanged(string text) => UpdatePreview(); + private static readonly string[] Statuses = { "stable", "beta", "deprecated", "archived" }; private static readonly CategoryType[] Categories = Enum.GetValues(); @@ -130,7 +132,9 @@ namespace Cthangover.Core.UI.Tool.CatalogExport AddReadOnly("mods/author", _modInfo.Author ?? "—"); _formHost.AddChild(ToolUi.Section("tools/catalog_export/metadata")); - _urlEdit = ToolUi.Field(_formHost, "mods/catalog_download_url", ToolUi.Text("https://…/" + modId + ".zip", _ => UpdatePreview())); + var archiveName = System.IO.File.Exists(_modInfo.FileProvider.RootPath) + ? System.IO.Path.GetFileName(_modInfo.FileProvider.RootPath) : modId + ".zip"; + _urlEdit = ToolUi.Field(_formHost, "mods/catalog_download_url", ToolUi.Text("https://…/" + archiveName, OnDownloadUrlChanged)); _statusOpt = ToolUi.Field(_formHost, "mods/catalog_status", new OptionButton()); foreach (var status in Statuses) _statusOpt.AddItem(status); @@ -310,9 +314,9 @@ namespace Cthangover.Core.UI.Tool.CatalogExport { var entry = BuildExportEntry(); var modsRoot = ModRegistry.ModsPath; - var isZip = _modInfo.FileProvider.RootPath.EndsWith(".zip", StringComparison.OrdinalIgnoreCase); - var path = isZip - ? ModCatalogExporter.ExportFromZip(_modInfo, entry, modsRoot) + var isArchive = System.IO.File.Exists(_modInfo.FileProvider.RootPath); + var path = isArchive + ? ModCatalogExporter.ExportFromArchive(_modInfo, entry, modsRoot) : ModCatalogExporter.ExportFromFolder(_modInfo, entry, modsRoot); SetStatus(string.Format(ToolUi.Tr("tools/catalog_export/exported"), path), ToolStatusKind.Ok); }