From 6d5be9a2c9b7adcd8ae5ed5a48b8741065f04c92 Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 27 Jul 2022 17:45:41 -0700 Subject: [PATCH] begin development of mod package creator --- .../StorageAndFunctions/GlobalFuncs.cs | 35 +++++ .../StorageAndFunctions/GlobalPaths.cs | 1 + .../NovetusCore/StorageAndFunctions/NETExt.cs | 23 ---- .../{AddonLoader.cs => ModManager.cs} | 11 +- .../Extended/LauncherFormExtended.Designer.cs | 2 +- .../Extended/LauncherFormExtended.resx | 2 +- .../Forms/LauncherForm/LauncherFormShared.cs | 4 +- .../Stylish/LauncherFormStylishInterface.xaml | 8 +- .../Forms/SDK/ItemCreationSDK.Designer.cs | 60 ++++----- .../Forms/SDK/ModCreator.Designer.cs | 86 +++++++++++++ .../NovetusLauncher/Forms/SDK/ModCreator.cs | 90 +++++++++++++ .../NovetusLauncher/Forms/SDK/ModCreator.resx | 120 ++++++++++++++++++ .../Forms/SDK/NovetusSDK.Designer.cs | 17 ++- .../NovetusLauncher/Forms/SDK/NovetusSDK.cs | 5 + .../NovetusLauncher/Forms/SDK/NovetusSDK.resx | 2 +- .../NovetusLauncher/Novetus.Launcher.csproj | 15 ++- changelog.txt | 14 ++ scripts/batch/clean_junk.bat | 4 +- scripts/launcher/info.ini | 2 +- scripts/launcher/splashes.txt | 3 +- 20 files changed, 425 insertions(+), 79 deletions(-) rename Novetus/NovetusLauncher/Classes/Launcher/{AddonLoader.cs => ModManager.cs} (94%) create mode 100644 Novetus/NovetusLauncher/Forms/SDK/ModCreator.Designer.cs create mode 100644 Novetus/NovetusLauncher/Forms/SDK/ModCreator.cs create mode 100644 Novetus/NovetusLauncher/Forms/SDK/ModCreator.resx diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs index 6d7d602..e4d1c50 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs @@ -15,6 +15,7 @@ using System.Net; using System.Reflection; using System.Text; using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; @@ -2916,5 +2917,39 @@ public class GlobalFuncs return finalUrl; } + + public static void CreateInitialFileListIfNeededMulti() + { + if (!File.Exists(GlobalPaths.ConfigDir + "\\InitialFileList.txt")) + { + Thread t = new Thread(CreateInitialFileList); + t.Start(); + } + } + + private static void CreateInitialFileList() + { + string filterPath = GlobalPaths.ConfigDir + @"\\" + GlobalPaths.InitialFileListIgnoreFilterName; + string[] fileListToIgnore = File.ReadAllLines(filterPath); + + using (var txt = File.CreateText(GlobalPaths.ConfigDir + "\\InitialFileList.txt")) + { + DirectoryInfo dinfo = new DirectoryInfo(GlobalPaths.BasePath); + FileInfo[] Files = dinfo.GetFiles("*.*", SearchOption.AllDirectories); + foreach (FileInfo file in Files) + { + DirectoryInfo localdinfo = new DirectoryInfo(file.DirectoryName); + string directory = localdinfo.Name; + if (!fileListToIgnore.Contains(file.Name, StringComparer.InvariantCultureIgnoreCase) && !fileListToIgnore.Contains(directory, StringComparer.InvariantCultureIgnoreCase)) + { + txt.WriteLine(file.FullName); + } + else + { + continue; + } + } + } + } } #endregion diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs index c920c14..1a71915 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs @@ -117,6 +117,7 @@ public class GlobalPaths public static readonly string ContentProviderXMLName = "ContentProviders.xml"; public static readonly string PartColorXMLName = "PartColors.xml"; public static readonly string FileDeleteFilterName = "FileDeleteFilter.txt"; + public static readonly string InitialFileListIgnoreFilterName = "InitialFileListIgnoreFilter.txt"; #endregion } #endregion diff --git a/Novetus/NovetusCore/StorageAndFunctions/NETExt.cs b/Novetus/NovetusCore/StorageAndFunctions/NETExt.cs index 3167f92..7e4d6a8 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/NETExt.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/NETExt.cs @@ -65,29 +65,6 @@ public static class NETExt } #endregion - #region Array Helper - public static object FindInDimensions(this object[,] target, - object searchTerm) - { - object result = null; - var rowLowerLimit = target.GetLowerBound(0); - var rowUpperLimit = target.GetUpperBound(0); - - var colLowerLimit = target.GetLowerBound(1); - var colUpperLimit = target.GetUpperBound(1); - - for (int row = rowLowerLimit; row < rowUpperLimit; row++) - { - for (int col = colLowerLimit; col < colUpperLimit; col++) - { - // you could do the search here... - } - } - - return result; - } - #endregion - #region Substring Extensions /// /// Get string value between [first] a and [last] b. diff --git a/Novetus/NovetusLauncher/Classes/Launcher/AddonLoader.cs b/Novetus/NovetusLauncher/Classes/Launcher/ModManager.cs similarity index 94% rename from Novetus/NovetusLauncher/Classes/Launcher/AddonLoader.cs rename to Novetus/NovetusLauncher/Classes/Launcher/ModManager.cs index 8dcbee6..6838d97 100644 --- a/Novetus/NovetusLauncher/Classes/Launcher/AddonLoader.cs +++ b/Novetus/NovetusLauncher/Classes/Launcher/ModManager.cs @@ -10,8 +10,8 @@ using System.Timers; using System.Windows.Forms; #endregion -#region Addon Loader -public class AddonLoader +#region Mod Manager +public class ModManager { private readonly OpenFileDialog openFileDialog1; private string installOutcome = ""; @@ -20,7 +20,8 @@ public class AddonLoader private CancellationTokenSource tokenSource; private int pastPercentage = 0; - public AddonLoader(RichTextBox box) + //extracting mode + public ModManager(RichTextBox box) { Application.ApplicationExit += new EventHandler(OnApplicationExit); consoleBox = box; @@ -117,7 +118,7 @@ public class AddonLoader if (intPercent % 25 == 0 && pastPercentage != intPercent) { - GlobalFuncs.ConsolePrint("AddonLoader - Extracting: " + GlobalFuncs.ConsolePrint("ModManager - Extracting: " + e.CurrentEntry.FileName + ". Progress: " + e.BytesTransferred + "/" + e.TotalBytesToTransfer + " (" + intPercent + "%)", 3, consoleBox, true); @@ -127,7 +128,7 @@ public class AddonLoader } else if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) { - GlobalFuncs.ConsolePrint("AddonLoader - Extracting: " + e.CurrentEntry.FileName, 3, consoleBox); + GlobalFuncs.ConsolePrint("ModManager - Extracting: " + e.CurrentEntry.FileName, 3, consoleBox); } } diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs index 88160fd..1ac5083 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs @@ -180,7 +180,7 @@ namespace NovetusLauncher this.button25.Name = "button25"; this.button25.Size = new System.Drawing.Size(104, 20); this.button25.TabIndex = 56; - this.button25.Text = "Install Mods/Addons"; + this.button25.Text = "Install Mod Package"; this.button25.UseVisualStyleBackColor = true; this.button25.Click += new System.EventHandler(this.button25_Click); // diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.resx b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.resx index 1a02c2d..9900a5b 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.resx +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.resx @@ -136,7 +136,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB0 - CQAAAk1TRnQBSQFMAgEBAgEAAZgBAAGYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CQAAAk1TRnQBSQFMAgEBAgEAAaABAAGgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs index f633248..24f4e94 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/LauncherFormShared.cs @@ -201,6 +201,8 @@ namespace NovetusLauncher #region Form Event Functions public void InitForm() { + GlobalFuncs.CreateInitialFileListIfNeededMulti(); + HideMasterAddressWarning = false; if (FormStyle != Settings.Style.Stylish) @@ -1099,7 +1101,7 @@ namespace NovetusLauncher public async void InstallAddon() { - AddonLoader addon = new AddonLoader(ConsoleBox); + ModManager addon = new ModManager(ConsoleBox); addon.setFileListDisplay(10); try { diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Stylish/LauncherFormStylishInterface.xaml b/Novetus/NovetusLauncher/Forms/LauncherForm/Stylish/LauncherFormStylishInterface.xaml index ca6846e..9bf04ad 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Stylish/LauncherFormStylishInterface.xaml +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Stylish/LauncherFormStylishInterface.xaml @@ -855,15 +855,15 @@