begin development of mod package creator
This commit is contained in:
parent
4df1691187
commit
6d5be9a2c9
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
/// <summary>
|
||||
/// Get string value between [first] a and [last] b.
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -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);
|
||||
//
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@
|
|||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB0
|
||||
CQAAAk1TRnQBSQFMAgEBAgEAAZgBAAGYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
CQAAAk1TRnQBSQFMAgEBAgEAAaABAAGgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -855,15 +855,15 @@
|
|||
<Button x:Name="saveConfigButton" Content="Save Config" HorizontalAlignment="Left" Margin="233,67,0,0" VerticalAlignment="Top" Width="75" Click="saveConfigButton_Click"/>
|
||||
<Button x:Name="resetAssetCacheButton" Content="Clear Cache" HorizontalAlignment="Left" Margin="313,46,0,0" VerticalAlignment="Top" Width="81" Height="16" Click="resetAssetCacheButton_Click"/>
|
||||
<Button x:Name="novetusSDKButton" Content="Novetus SDK" HorizontalAlignment="Left" Margin="313,67,0,0" VerticalAlignment="Top" Width="81" Click="novetusSDKButton_Click"/>
|
||||
<Button x:Name="settingsButtons" Style="{DynamicResource ImportantButtonSmall}" Content="Settings" HorizontalAlignment="Left" Margin="399,46,0,0" VerticalAlignment="Top" Width="103" Height="17" Click="settingsButtons_Click" Grid.ColumnSpan="2"/>
|
||||
<Button x:Name="modInstallerButton" Content="Install Mods" HorizontalAlignment="Left" Margin="399,67,0,0" VerticalAlignment="Top" Width="103" Click="modInstallerButton_Click" Grid.ColumnSpan="2"/>
|
||||
<ComboBox x:Name="styleBox" Grid.Column="1" HorizontalAlignment="Left" Margin="79,59,0,0" VerticalAlignment="Top" Width="107" Height="24" DropDownClosed="styleBox_DropDownClosed">
|
||||
<Button x:Name="settingsButtons" Style="{DynamicResource ImportantButtonSmall}" Content="Settings" HorizontalAlignment="Left" Margin="399,46,0,0" VerticalAlignment="Top" Width="119" Height="17" Click="settingsButtons_Click" Grid.ColumnSpan="2"/>
|
||||
<Button x:Name="modInstallerButton" Content="Install Mod Package" HorizontalAlignment="Left" Margin="399,67,0,0" VerticalAlignment="Top" Width="119" Click="modInstallerButton_Click" Grid.ColumnSpan="2"/>
|
||||
<ComboBox x:Name="styleBox" Grid.Column="1" HorizontalAlignment="Left" Margin="89,59,0,0" VerticalAlignment="Top" Width="107" Height="24" DropDownClosed="styleBox_DropDownClosed">
|
||||
<local:StyleListItem StyleName="Extended"/>
|
||||
<local:StyleListItem StyleName="Compact"/>
|
||||
<local:StyleListItem StyleName="Stylish"/>
|
||||
</ComboBox>
|
||||
<Separator Style="{DynamicResource VerticalSeperator}" HorizontalAlignment="Left" Height="44" Margin="223,44,0,0" VerticalAlignment="Top" Width="5"/>
|
||||
<Label x:Name="styleLabel" Content="Launcher Style" Grid.Column="1" HorizontalAlignment="Left" Margin="79,37,0,0" VerticalAlignment="Top" Width="107" Height="26"/>
|
||||
<Label x:Name="styleLabel" Content="Launcher Style" Grid.Column="1" HorizontalAlignment="Left" Margin="89,37,0,0" VerticalAlignment="Top" Width="107" Height="26"/>
|
||||
</Grid>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ partial class ItemCreationSDK
|
|||
this.ItemIconLabel = new System.Windows.Forms.Label();
|
||||
this.BrowseImageButton = new System.Windows.Forms.Button();
|
||||
this.ItemSettingsGroup = new System.Windows.Forms.GroupBox();
|
||||
this.UsesHatTexBoxRefresh = new System.Windows.Forms.Button();
|
||||
this.UsesHatMeshBoxRefresh = new System.Windows.Forms.Button();
|
||||
this.OtherGroup = new System.Windows.Forms.GroupBox();
|
||||
this.EditItemBox = new System.Windows.Forms.CheckBox();
|
||||
this.ResetButton = new System.Windows.Forms.Button();
|
||||
|
|
@ -121,8 +123,6 @@ partial class ItemCreationSDK
|
|||
this.ItemNameBox = new System.Windows.Forms.TextBox();
|
||||
this.Warning = new System.Windows.Forms.Label();
|
||||
this.SettingsButton = new System.Windows.Forms.Button();
|
||||
this.UsesHatMeshBoxRefresh = new System.Windows.Forms.Button();
|
||||
this.UsesHatTexBoxRefresh = new System.Windows.Forms.Button();
|
||||
this.ItemSettingsGroup.SuspendLayout();
|
||||
this.OtherGroup.SuspendLayout();
|
||||
this.CoordGroup3.SuspendLayout();
|
||||
|
|
@ -234,6 +234,30 @@ partial class ItemCreationSDK
|
|||
this.ItemSettingsGroup.TabStop = false;
|
||||
this.ItemSettingsGroup.Text = "Item Settings";
|
||||
//
|
||||
// UsesHatTexBoxRefresh
|
||||
//
|
||||
this.UsesHatTexBoxRefresh.Enabled = false;
|
||||
this.UsesHatTexBoxRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.UsesHatTexBoxRefresh.Location = new System.Drawing.Point(492, 81);
|
||||
this.UsesHatTexBoxRefresh.Name = "UsesHatTexBoxRefresh";
|
||||
this.UsesHatTexBoxRefresh.Size = new System.Drawing.Size(56, 20);
|
||||
this.UsesHatTexBoxRefresh.TabIndex = 24;
|
||||
this.UsesHatTexBoxRefresh.Text = "Refresh";
|
||||
this.UsesHatTexBoxRefresh.UseVisualStyleBackColor = true;
|
||||
this.UsesHatTexBoxRefresh.Click += new System.EventHandler(this.UsesHatTexBoxRefresh_Click);
|
||||
//
|
||||
// UsesHatMeshBoxRefresh
|
||||
//
|
||||
this.UsesHatMeshBoxRefresh.Enabled = false;
|
||||
this.UsesHatMeshBoxRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.UsesHatMeshBoxRefresh.Location = new System.Drawing.Point(215, 82);
|
||||
this.UsesHatMeshBoxRefresh.Name = "UsesHatMeshBoxRefresh";
|
||||
this.UsesHatMeshBoxRefresh.Size = new System.Drawing.Size(56, 20);
|
||||
this.UsesHatMeshBoxRefresh.TabIndex = 23;
|
||||
this.UsesHatMeshBoxRefresh.Text = "Refresh";
|
||||
this.UsesHatMeshBoxRefresh.UseVisualStyleBackColor = true;
|
||||
this.UsesHatMeshBoxRefresh.Click += new System.EventHandler(this.UsesHatMeshBoxRefresh_Click);
|
||||
//
|
||||
// OtherGroup
|
||||
//
|
||||
this.OtherGroup.Controls.Add(this.EditItemBox);
|
||||
|
|
@ -1455,7 +1479,7 @@ partial class ItemCreationSDK
|
|||
//
|
||||
this.CreateItemButton.Location = new System.Drawing.Point(12, 382);
|
||||
this.CreateItemButton.Name = "CreateItemButton";
|
||||
this.CreateItemButton.Size = new System.Drawing.Size(197, 23);
|
||||
this.CreateItemButton.Size = new System.Drawing.Size(118, 23);
|
||||
this.CreateItemButton.TabIndex = 6;
|
||||
this.CreateItemButton.Text = "Create and Test Item";
|
||||
this.CreateItemButton.UseVisualStyleBackColor = true;
|
||||
|
|
@ -1520,38 +1544,14 @@ partial class ItemCreationSDK
|
|||
//
|
||||
// SettingsButton
|
||||
//
|
||||
this.SettingsButton.Location = new System.Drawing.Point(215, 382);
|
||||
this.SettingsButton.Location = new System.Drawing.Point(243, 382);
|
||||
this.SettingsButton.Name = "SettingsButton";
|
||||
this.SettingsButton.Size = new System.Drawing.Size(84, 23);
|
||||
this.SettingsButton.Size = new System.Drawing.Size(57, 23);
|
||||
this.SettingsButton.TabIndex = 15;
|
||||
this.SettingsButton.Text = "Item Settings";
|
||||
this.SettingsButton.Text = "Settings";
|
||||
this.SettingsButton.UseVisualStyleBackColor = true;
|
||||
this.SettingsButton.Click += new System.EventHandler(this.SettingsButton_Click);
|
||||
//
|
||||
// UsesHatMeshBoxRefresh
|
||||
//
|
||||
this.UsesHatMeshBoxRefresh.Enabled = false;
|
||||
this.UsesHatMeshBoxRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.UsesHatMeshBoxRefresh.Location = new System.Drawing.Point(215, 82);
|
||||
this.UsesHatMeshBoxRefresh.Name = "UsesHatMeshBoxRefresh";
|
||||
this.UsesHatMeshBoxRefresh.Size = new System.Drawing.Size(56, 20);
|
||||
this.UsesHatMeshBoxRefresh.TabIndex = 23;
|
||||
this.UsesHatMeshBoxRefresh.Text = "Refresh";
|
||||
this.UsesHatMeshBoxRefresh.UseVisualStyleBackColor = true;
|
||||
this.UsesHatMeshBoxRefresh.Click += new System.EventHandler(this.UsesHatMeshBoxRefresh_Click);
|
||||
//
|
||||
// UsesHatTexBoxRefresh
|
||||
//
|
||||
this.UsesHatTexBoxRefresh.Enabled = false;
|
||||
this.UsesHatTexBoxRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.UsesHatTexBoxRefresh.Location = new System.Drawing.Point(492, 81);
|
||||
this.UsesHatTexBoxRefresh.Name = "UsesHatTexBoxRefresh";
|
||||
this.UsesHatTexBoxRefresh.Size = new System.Drawing.Size(56, 20);
|
||||
this.UsesHatTexBoxRefresh.TabIndex = 24;
|
||||
this.UsesHatTexBoxRefresh.Text = "Refresh";
|
||||
this.UsesHatTexBoxRefresh.UseVisualStyleBackColor = true;
|
||||
this.UsesHatTexBoxRefresh.Click += new System.EventHandler(this.UsesHatTexBoxRefresh_Click);
|
||||
//
|
||||
// ItemCreationSDK
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
partial class ModCreator
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.AddonFilesListing = new System.Windows.Forms.ListBox();
|
||||
this.SavePackageButton = new System.Windows.Forms.Button();
|
||||
this.FileListingLabel = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// AddonFilesListing
|
||||
//
|
||||
this.AddonFilesListing.FormattingEnabled = true;
|
||||
this.AddonFilesListing.Location = new System.Drawing.Point(10, 25);
|
||||
this.AddonFilesListing.Name = "AddonFilesListing";
|
||||
this.AddonFilesListing.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||
this.AddonFilesListing.Size = new System.Drawing.Size(407, 303);
|
||||
this.AddonFilesListing.TabIndex = 0;
|
||||
//
|
||||
// SavePackageButton
|
||||
//
|
||||
this.SavePackageButton.Location = new System.Drawing.Point(10, 334);
|
||||
this.SavePackageButton.Name = "SavePackageButton";
|
||||
this.SavePackageButton.Size = new System.Drawing.Size(407, 23);
|
||||
this.SavePackageButton.TabIndex = 4;
|
||||
this.SavePackageButton.Text = "Save Package";
|
||||
this.SavePackageButton.UseVisualStyleBackColor = true;
|
||||
this.SavePackageButton.Click += new System.EventHandler(this.SavePackageButton_Click);
|
||||
//
|
||||
// FileListingLabel
|
||||
//
|
||||
this.FileListingLabel.AutoSize = true;
|
||||
this.FileListingLabel.Location = new System.Drawing.Point(6, 7);
|
||||
this.FileListingLabel.Name = "FileListingLabel";
|
||||
this.FileListingLabel.Size = new System.Drawing.Size(416, 13);
|
||||
this.FileListingLabel.TabIndex = 5;
|
||||
this.FileListingLabel.Text = "Select which files you wish to include in your addon, then click \"Save Package\" b" +
|
||||
"elow";
|
||||
//
|
||||
// ModCreator
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.ClientSize = new System.Drawing.Size(429, 364);
|
||||
this.Controls.Add(this.FileListingLabel);
|
||||
this.Controls.Add(this.SavePackageButton);
|
||||
this.Controls.Add(this.AddonFilesListing);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Name = "ModCreator";
|
||||
this.Text = "Mod Package Creator";
|
||||
this.Load += new System.EventHandler(this.ModCreator_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ListBox AddonFilesListing;
|
||||
private System.Windows.Forms.Button SavePackageButton;
|
||||
private System.Windows.Forms.Label FileListingLabel;
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public partial class ModCreator : Form
|
||||
{
|
||||
public ModCreator()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void ModCreator_Load(object sender, EventArgs e)
|
||||
{
|
||||
CenterToScreen();
|
||||
ListFiles();
|
||||
}
|
||||
|
||||
private void SavePackageButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
AddonFilesListing.Items.Clear();
|
||||
ListFiles();
|
||||
}
|
||||
|
||||
private void ListFiles()
|
||||
{
|
||||
if (File.Exists(GlobalPaths.ConfigDir + "\\InitialFileList.txt"))
|
||||
{
|
||||
Thread t = new Thread(FillFileListing);
|
||||
t.Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("The initial file list has not been generated. Please launch the Novetus Launcher to initalize it.\n\nNote: Use a fresh Novetus install for this process. Do NOT use a client with mods (Addon scripts, items, maps, etc.) already created, as they won't show up in the file listing. After initalizing a fresh copy of Novetus, you are free to build Mod Packages for it.",
|
||||
"Mod Creator - Initial file list not found.", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void FillFileListing()
|
||||
{
|
||||
string fileLoadString = "Loading files...";
|
||||
AddonFilesListing.Items.Add(fileLoadString);
|
||||
string[] files = GetUnlistedFiles();
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
AddonFilesListing.Items.Add(file);
|
||||
}
|
||||
|
||||
AddonFilesListing.Items.Remove(fileLoadString);
|
||||
}
|
||||
|
||||
private string[] GetUnlistedFiles()
|
||||
{
|
||||
string filterPath = GlobalPaths.ConfigDir + @"\\" + GlobalPaths.InitialFileListIgnoreFilterName;
|
||||
string[] fileListToIgnore = File.ReadAllLines(filterPath);
|
||||
|
||||
string initialFileListPath = GlobalPaths.ConfigDir + "\\InitialFileList.txt";
|
||||
string[] initalFileListLines = File.ReadAllLines(initialFileListPath);
|
||||
|
||||
List<string> newArray = new List<string>();
|
||||
|
||||
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) &&
|
||||
!initalFileListLines.Contains(file.FullName, StringComparer.InvariantCultureIgnoreCase))
|
||||
{
|
||||
newArray.Add(file.FullName);
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return newArray.ToArray();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
|
|
@ -38,18 +38,20 @@
|
|||
System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"Item SDK"}, "ItemCreationSDK.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"ClientScript Documentation"}, "ClientScriptTester.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
"Mod Package Creator"}, -1, System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem7 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"Splash Tester"}, "splash.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
"ClientScript Documentation"}, "ClientScriptTester.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem8 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"Roblox Script Generator"}, "ROBLOXScriptGenerator.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
"Splash Tester"}, "splash.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem9 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"Roblox Legacy Place Converter"}, "ROBLOXLegacyPlaceConverter.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
"Roblox Script Generator"}, "ROBLOXScriptGenerator.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem10 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"Diogenes Editor"}, "Diogenes.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
"Roblox Legacy Place Converter"}, "ROBLOXLegacyPlaceConverter.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem11 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"ClientScript Tester"}, "ClientScriptTester.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
"Diogenes Editor"}, "Diogenes.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem12 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"ClientScript Tester"}, "ClientScriptTester.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.Windows.Forms.ListViewItem listViewItem13 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||
"XML Content Editor"}, 9, System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NovetusSDK));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
|
|
@ -96,7 +98,8 @@
|
|||
listViewItem9,
|
||||
listViewItem10,
|
||||
listViewItem11,
|
||||
listViewItem12});
|
||||
listViewItem12,
|
||||
listViewItem13});
|
||||
this.listView1.Location = new System.Drawing.Point(12, 102);
|
||||
this.listView1.Name = "listView1";
|
||||
this.listView1.Size = new System.Drawing.Size(414, 224);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ enum SDKApps
|
|||
AssetDownloader,
|
||||
MeshConverter,
|
||||
ItemCreationSDK,
|
||||
ModCreator,
|
||||
ClientScriptDoc,
|
||||
SplashTester,
|
||||
ScriptGenerator,
|
||||
|
|
@ -118,6 +119,10 @@ public partial class NovetusSDK : Form
|
|||
MeshConverter mesh = new MeshConverter();
|
||||
mesh.Show();
|
||||
break;
|
||||
case SDKApps.ModCreator:
|
||||
ModCreator mod = new ModCreator();
|
||||
mod.Show();
|
||||
break;
|
||||
case SDKApps.ItemCreationSDK:
|
||||
ItemCreationSDK icsdk = new ItemCreationSDK();
|
||||
icsdk.Show();
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@
|
|||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAk
|
||||
FQAAAk1TRnQBSQFMAgEBDAEAAUABAAFAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
FQAAAk1TRnQBSQFMAgEBDAEAAUgBAAFIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@
|
|||
<Link>Forms\CharCustom\Extended\CharacterCustomizationExtended.designer.cs</Link>
|
||||
<DependentUpon>CharacterCustomizationExtended.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Classes\Launcher\AddonLoader.cs" />
|
||||
<Compile Include="Classes\Launcher\ModManager.cs" />
|
||||
<Compile Include="Classes\Launcher\SplashLoader.cs" />
|
||||
<Compile Include="Classes\Launcher\TreeNodeHelper.cs" />
|
||||
<Compile Include="Classes\LocalVars.cs" />
|
||||
|
|
@ -204,19 +204,25 @@
|
|||
<Compile Include="Forms\LauncherForm\Stylish\LauncherFormStylishServerInfo.Designer.cs">
|
||||
<DependentUpon>LauncherFormStylishServerInfo.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\ModCreator.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\ModCreator.Designer.cs">
|
||||
<DependentUpon>ModCreator.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\AssetDownloader.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\AssetDownloader.Designer.cs">
|
||||
<DependentUpon>AssetDownloader.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\AssetFixer.cs">
|
||||
<Compile Include="Forms\SDK\AssetFixer.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\AssetFixer.Designer.cs">
|
||||
<DependentUpon>AssetFixer.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\MeshConverter.cs">
|
||||
<Compile Include="Forms\SDK\MeshConverter.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\SDK\MeshConverter.Designer.cs">
|
||||
|
|
@ -326,6 +332,9 @@
|
|||
<EmbeddedResource Include="Forms\LauncherForm\Stylish\LauncherFormStylishServerInfo.resx">
|
||||
<DependentUpon>LauncherFormStylishServerInfo.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\SDK\ModCreator.resx">
|
||||
<DependentUpon>ModCreator.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\SDK\AssetDownloader.resx">
|
||||
<DependentUpon>AssetDownloader.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,17 @@
|
|||
1.3 Snapshot v22.8243.31090.1
|
||||
Enhancements:
|
||||
- Re-implemented the progress bar/status text to the Asset Fixer.
|
||||
- The Asset Fixer and Legacy Place Converter will now show errors when loading a binary format place/model.
|
||||
- The Legacy Place Converter now can load RBXMX, RBXL, and RBXM file types.
|
||||
- The Asset SDK is now split up into 3 utilities:
|
||||
- Mesh Converter
|
||||
- Asset Fixer
|
||||
- Asset Downloader
|
||||
- The Asset Downloader's batch feature now shows the overall size of all items downloaded at the end of the download.
|
||||
- Addon Packages are now renamed to Mod Packages to make differentiating them from Addon Scripts easier.
|
||||
|
||||
Fixes:
|
||||
----------------------------------------------------------------------------
|
||||
1.3 Snapshot v22.8222.20490.3
|
||||
Enhancements:
|
||||
- Added support for multiple addon scripts!
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ del /s /q Novetus\config\ports.txt
|
|||
del /s /q Novetus\config\ReShade.ini
|
||||
del /s /q Novetus\config\config.ini
|
||||
del /s /q Novetus\config\config_customization.ini
|
||||
del /s /q Novetus\config\initialfilelist.txt
|
||||
|
||||
del /s /q Novetus\config\clients\GlobalSettings2_2007E.xml
|
||||
del /s /q Novetus\config\clients\GlobalSettings2_2007E-Shaders.xml
|
||||
|
|
@ -108,4 +109,5 @@ del /s /q Novetus\config\clients\GlobalSettings4_2007M-Shaders.xml
|
|||
del /s /q Novetus\config\clients\GlobalSettings7_2008M.xml
|
||||
|
||||
rmdir /s /q Novetus\maps\Custom
|
||||
rmdir /s /q Novetus\shareddata\assetcache
|
||||
rmdir /s /q Novetus\shareddata\assetcache
|
||||
rmdir /s /q Novetus\logs
|
||||
|
|
@ -8,6 +8,6 @@ ExtendedVersionNumber=True
|
|||
ExtendedVersionEditChangelog=True
|
||||
//ExtendedVersionTemplate=%version% v?.2022.%extended-revision%%lite%
|
||||
ExtendedVersionTemplate=%version% Snapshot v22.%build%.%revision%.%extended-revision%
|
||||
ExtendedVersionRevision=3
|
||||
ExtendedVersionRevision=1
|
||||
IsLite=False
|
||||
InitialBootup=False
|
||||
|
|
|
|||
|
|
@ -206,4 +206,5 @@ Látom.
|
|||
[normal]GET TO THE SHIPS! IT'S OUR ONLY CHANCE!|From the 1986 Transformers movie.
|
||||
Standing here, I realize...
|
||||
good grief!
|
||||
This machine kills fascists
|
||||
This machine kills fascists
|
||||
wheatley is a moron i hate him
|
||||
Loading…
Reference in New Issue