finish mod package creator
This commit is contained in:
parent
977783e220
commit
cdc24c65a5
|
|
@ -6,39 +6,70 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Timers;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mod Manager
|
#region Mod Manager
|
||||||
public class ModManager
|
public class ModManager
|
||||||
{
|
{
|
||||||
private readonly OpenFileDialog openFileDialog1;
|
public enum ModMode
|
||||||
|
{
|
||||||
|
ModInstallation,
|
||||||
|
ModCreation
|
||||||
|
}
|
||||||
|
|
||||||
|
private ModMode globalMode;
|
||||||
|
private OpenFileDialog openFileDialog1;
|
||||||
|
private SaveFileDialog saveFileDialog1;
|
||||||
private string installOutcome = "";
|
private string installOutcome = "";
|
||||||
private int fileListDisplay = 0;
|
private int fileListDisplay = 0;
|
||||||
private RichTextBox consoleBox;
|
private RichTextBox consoleBox;
|
||||||
private CancellationTokenSource tokenSource;
|
private CancellationTokenSource tokenSource;
|
||||||
private int pastPercentage = 0;
|
private int pastPercentage = 0;
|
||||||
|
|
||||||
//extracting mode
|
public ModManager(ModMode mode)
|
||||||
public ModManager(RichTextBox box)
|
|
||||||
{
|
{
|
||||||
Application.ApplicationExit += new EventHandler(OnApplicationExit);
|
Init(mode);
|
||||||
consoleBox = box;
|
|
||||||
openFileDialog1 = new OpenFileDialog()
|
|
||||||
{
|
|
||||||
FileName = "Select an addon .zip file",
|
|
||||||
Filter = "Compressed zip files (*.zip)|*.zip",
|
|
||||||
Title = "Open addon .zip"
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setInstallOutcome(string text)
|
public ModManager(ModMode mode, RichTextBox box)
|
||||||
|
{
|
||||||
|
consoleBox = box;
|
||||||
|
Init(mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init(ModMode mode)
|
||||||
|
{
|
||||||
|
Application.ApplicationExit += new EventHandler(OnApplicationExit);
|
||||||
|
globalMode = mode;
|
||||||
|
|
||||||
|
switch (globalMode)
|
||||||
|
{
|
||||||
|
case ModMode.ModCreation:
|
||||||
|
saveFileDialog1 = new SaveFileDialog()
|
||||||
|
{
|
||||||
|
FileName = "Specify the place where you will save your .zip file",
|
||||||
|
Filter = "Compressed zip files (*.zip)|*.zip",
|
||||||
|
Title = "Save mod .zip"
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case ModMode.ModInstallation:
|
||||||
|
default:
|
||||||
|
openFileDialog1 = new OpenFileDialog()
|
||||||
|
{
|
||||||
|
FileName = "Select a mod .zip file",
|
||||||
|
Filter = "Compressed zip files (*.zip)|*.zip",
|
||||||
|
Title = "Open mod .zip"
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOutcome(string text)
|
||||||
{
|
{
|
||||||
installOutcome = text;
|
installOutcome = text;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string getInstallOutcome()
|
public string getOutcome()
|
||||||
{
|
{
|
||||||
return installOutcome;
|
return installOutcome;
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +79,14 @@ public class ModManager
|
||||||
fileListDisplay = number;
|
fileListDisplay = number;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task LoadAddon()
|
public async Task LoadMod()
|
||||||
{
|
{
|
||||||
|
if (globalMode == ModMode.ModCreation)
|
||||||
|
return;
|
||||||
|
|
||||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Your addon is loading. You will recieve a notification when it is installed. Please keep the launcher open. You can see the installation progress in the Console.", "Novetus - Addon Loading");
|
MessageBox.Show("Your mod is loading. You will recieve a notification when it is installed. Please keep the launcher open. You can see the installation progress in the Console.", "Novetus - Mod Loading");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -93,17 +127,17 @@ public class ModManager
|
||||||
|
|
||||||
if (filecount > fileListDisplay)
|
if (filecount > fileListDisplay)
|
||||||
{
|
{
|
||||||
installOutcome = "Addon " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelistcutdown + Environment.NewLine + "and " + (filecount - fileListDisplay) + " more files!";
|
installOutcome = "Mod " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelistcutdown + Environment.NewLine + "and " + (filecount - fileListDisplay) + " more files!";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
installOutcome = "Addon " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelist;
|
installOutcome = "Mod " + openFileDialog1.SafeFileName + " installed! " + filecount + " files copied!" + Environment.NewLine + "Files added/modified:" + Environment.NewLine + Environment.NewLine + filelist;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
GlobalFuncs.LogExceptions(ex);
|
GlobalFuncs.LogExceptions(ex);
|
||||||
installOutcome = "Error when installing addon: " + ex.Message;
|
installOutcome = "Error when installing mod: " + ex.Message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -111,6 +145,9 @@ public class ModManager
|
||||||
//https://stackoverflow.com/questions/38948801/dotnetzip-display-progress-of-extraction
|
//https://stackoverflow.com/questions/38948801/dotnetzip-display-progress-of-extraction
|
||||||
void ExtractProgress(object sender, ExtractProgressEventArgs e)
|
void ExtractProgress(object sender, ExtractProgressEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (globalMode == ModMode.ModCreation)
|
||||||
|
return;
|
||||||
|
|
||||||
if (e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten)
|
if (e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten)
|
||||||
{
|
{
|
||||||
double percentage = Math.Round(e.BytesTransferred / (0.01 * e.TotalBytesToTransfer), 2);
|
double percentage = Math.Round(e.BytesTransferred / (0.01 * e.TotalBytesToTransfer), 2);
|
||||||
|
|
@ -136,5 +173,69 @@ public class ModManager
|
||||||
{
|
{
|
||||||
tokenSource.Cancel();
|
tokenSource.Cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task CreateModPackage(string[] filesToPackage, string modName)
|
||||||
|
{
|
||||||
|
if (globalMode == ModMode.ModInstallation)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string outputSavePath = Path.GetDirectoryName(saveFileDialog1.FileName) + @"\" + modName;
|
||||||
|
|
||||||
|
int filecount = 0;
|
||||||
|
|
||||||
|
foreach (string file in filesToPackage)
|
||||||
|
{
|
||||||
|
string originalPath = GlobalPaths.RootPath + file;
|
||||||
|
string destPath = outputSavePath + file;
|
||||||
|
|
||||||
|
FileInfo fileInfo = new FileInfo(destPath);
|
||||||
|
|
||||||
|
if (!Directory.Exists(fileInfo.DirectoryName))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(fileInfo.DirectoryName);
|
||||||
|
}
|
||||||
|
|
||||||
|
GlobalFuncs.FixedFileMove(originalPath, destPath, true);
|
||||||
|
|
||||||
|
++filecount;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZipFile zip = new ZipFile(outputSavePath + ".zip");
|
||||||
|
|
||||||
|
DirectoryInfo dinfo = new DirectoryInfo(outputSavePath);
|
||||||
|
FileInfo[] Files = dinfo.GetFiles("*.*", SearchOption.AllDirectories);
|
||||||
|
foreach (FileInfo file in Files)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
zip.AddDirectory(outputSavePath, "");
|
||||||
|
}
|
||||||
|
catch (ArgumentException)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
zip.ParallelDeflateThreshold = -1;
|
||||||
|
tokenSource = new CancellationTokenSource();
|
||||||
|
var token = tokenSource.Token;
|
||||||
|
await Task.Factory.StartNew(() => zip.Save(), token);
|
||||||
|
zip.Dispose();
|
||||||
|
|
||||||
|
Directory.Delete(outputSavePath, true);
|
||||||
|
|
||||||
|
installOutcome = filecount + " files have been successfully moved and compressed into " + outputSavePath + ".zip!";
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
GlobalFuncs.LogExceptions(ex);
|
||||||
|
installOutcome = "Error when creating mod: " + ex.Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
||||||
|
|
@ -1101,35 +1101,35 @@ namespace NovetusLauncher
|
||||||
|
|
||||||
public async void InstallAddon()
|
public async void InstallAddon()
|
||||||
{
|
{
|
||||||
ModManager addon = new ModManager(ConsoleBox);
|
ModManager addon = new ModManager(ModManager.ModMode.ModInstallation, ConsoleBox);
|
||||||
addon.setFileListDisplay(10);
|
addon.setFileListDisplay(10);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await addon.LoadAddon();
|
await addon.LoadMod();
|
||||||
if (!string.IsNullOrWhiteSpace(addon.getInstallOutcome()))
|
if (!string.IsNullOrWhiteSpace(addon.getOutcome()))
|
||||||
{
|
{
|
||||||
GlobalFuncs.ConsolePrint("AddonLoader - " + addon.getInstallOutcome(), 3, ConsoleBox);
|
GlobalFuncs.ConsolePrint("ModManager - " + addon.getOutcome(), 3, ConsoleBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
GlobalFuncs.LogExceptions(ex);
|
GlobalFuncs.LogExceptions(ex);
|
||||||
if (!string.IsNullOrWhiteSpace(addon.getInstallOutcome()))
|
if (!string.IsNullOrWhiteSpace(addon.getOutcome()))
|
||||||
{
|
{
|
||||||
GlobalFuncs.ConsolePrint("AddonLoader - " + addon.getInstallOutcome(), 2, ConsoleBox);
|
GlobalFuncs.ConsolePrint("ModManager - " + addon.getOutcome(), 2, ConsoleBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(addon.getInstallOutcome()))
|
if (!string.IsNullOrWhiteSpace(addon.getOutcome()))
|
||||||
{
|
{
|
||||||
MessageBoxIcon boxicon = MessageBoxIcon.Information;
|
MessageBoxIcon boxicon = MessageBoxIcon.Information;
|
||||||
|
|
||||||
if (addon.getInstallOutcome().Contains("Error"))
|
if (addon.getOutcome().Contains("Error"))
|
||||||
{
|
{
|
||||||
boxicon = MessageBoxIcon.Error;
|
boxicon = MessageBoxIcon.Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageBox.Show(addon.getInstallOutcome(), "Novetus - Addon Installed", MessageBoxButtons.OK, boxicon);
|
MessageBox.Show(addon.getOutcome(), "Novetus - Mod Installed", MessageBoxButtons.OK, boxicon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1477,9 +1477,9 @@ partial class ItemCreationSDK
|
||||||
//
|
//
|
||||||
// CreateItemButton
|
// CreateItemButton
|
||||||
//
|
//
|
||||||
this.CreateItemButton.Location = new System.Drawing.Point(12, 382);
|
this.CreateItemButton.Location = new System.Drawing.Point(11, 382);
|
||||||
this.CreateItemButton.Name = "CreateItemButton";
|
this.CreateItemButton.Name = "CreateItemButton";
|
||||||
this.CreateItemButton.Size = new System.Drawing.Size(118, 23);
|
this.CreateItemButton.Size = new System.Drawing.Size(189, 23);
|
||||||
this.CreateItemButton.TabIndex = 6;
|
this.CreateItemButton.TabIndex = 6;
|
||||||
this.CreateItemButton.Text = "Create and Test Item";
|
this.CreateItemButton.Text = "Create and Test Item";
|
||||||
this.CreateItemButton.UseVisualStyleBackColor = true;
|
this.CreateItemButton.UseVisualStyleBackColor = true;
|
||||||
|
|
@ -1544,11 +1544,11 @@ partial class ItemCreationSDK
|
||||||
//
|
//
|
||||||
// SettingsButton
|
// SettingsButton
|
||||||
//
|
//
|
||||||
this.SettingsButton.Location = new System.Drawing.Point(243, 382);
|
this.SettingsButton.Location = new System.Drawing.Point(207, 382);
|
||||||
this.SettingsButton.Name = "SettingsButton";
|
this.SettingsButton.Name = "SettingsButton";
|
||||||
this.SettingsButton.Size = new System.Drawing.Size(57, 23);
|
this.SettingsButton.Size = new System.Drawing.Size(93, 23);
|
||||||
this.SettingsButton.TabIndex = 15;
|
this.SettingsButton.TabIndex = 15;
|
||||||
this.SettingsButton.Text = "Settings";
|
this.SettingsButton.Text = "Item Settings";
|
||||||
this.SettingsButton.UseVisualStyleBackColor = true;
|
this.SettingsButton.UseVisualStyleBackColor = true;
|
||||||
this.SettingsButton.Click += new System.EventHandler(this.SettingsButton_Click);
|
this.SettingsButton.Click += new System.EventHandler(this.SettingsButton_Click);
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -26,25 +26,29 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.AddonFilesListing = new System.Windows.Forms.ListBox();
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ModCreator));
|
||||||
|
this.ModFilesListing = new System.Windows.Forms.ListBox();
|
||||||
this.SavePackageButton = new System.Windows.Forms.Button();
|
this.SavePackageButton = new System.Windows.Forms.Button();
|
||||||
this.FileListingLabel = new System.Windows.Forms.Label();
|
this.FileListingLabel = new System.Windows.Forms.Label();
|
||||||
|
this.ModNameBox = new System.Windows.Forms.TextBox();
|
||||||
|
this.ModNameLabel = new System.Windows.Forms.Label();
|
||||||
|
this.RefreshFileListButton = new System.Windows.Forms.Button();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// AddonFilesListing
|
// ModFilesListing
|
||||||
//
|
//
|
||||||
this.AddonFilesListing.FormattingEnabled = true;
|
this.ModFilesListing.FormattingEnabled = true;
|
||||||
this.AddonFilesListing.Location = new System.Drawing.Point(10, 25);
|
this.ModFilesListing.Location = new System.Drawing.Point(10, 56);
|
||||||
this.AddonFilesListing.Name = "AddonFilesListing";
|
this.ModFilesListing.Name = "ModFilesListing";
|
||||||
this.AddonFilesListing.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
this.ModFilesListing.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
||||||
this.AddonFilesListing.Size = new System.Drawing.Size(407, 303);
|
this.ModFilesListing.Size = new System.Drawing.Size(407, 316);
|
||||||
this.AddonFilesListing.TabIndex = 0;
|
this.ModFilesListing.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// SavePackageButton
|
// SavePackageButton
|
||||||
//
|
//
|
||||||
this.SavePackageButton.Location = new System.Drawing.Point(10, 334);
|
this.SavePackageButton.Location = new System.Drawing.Point(10, 378);
|
||||||
this.SavePackageButton.Name = "SavePackageButton";
|
this.SavePackageButton.Name = "SavePackageButton";
|
||||||
this.SavePackageButton.Size = new System.Drawing.Size(407, 23);
|
this.SavePackageButton.Size = new System.Drawing.Size(308, 23);
|
||||||
this.SavePackageButton.TabIndex = 4;
|
this.SavePackageButton.TabIndex = 4;
|
||||||
this.SavePackageButton.Text = "Save Package";
|
this.SavePackageButton.Text = "Save Package";
|
||||||
this.SavePackageButton.UseVisualStyleBackColor = true;
|
this.SavePackageButton.UseVisualStyleBackColor = true;
|
||||||
|
|
@ -53,23 +57,53 @@
|
||||||
// FileListingLabel
|
// FileListingLabel
|
||||||
//
|
//
|
||||||
this.FileListingLabel.AutoSize = true;
|
this.FileListingLabel.AutoSize = true;
|
||||||
this.FileListingLabel.Location = new System.Drawing.Point(6, 7);
|
this.FileListingLabel.Location = new System.Drawing.Point(11, 35);
|
||||||
this.FileListingLabel.Name = "FileListingLabel";
|
this.FileListingLabel.Name = "FileListingLabel";
|
||||||
this.FileListingLabel.Size = new System.Drawing.Size(416, 13);
|
this.FileListingLabel.Size = new System.Drawing.Size(406, 13);
|
||||||
this.FileListingLabel.TabIndex = 5;
|
this.FileListingLabel.TabIndex = 5;
|
||||||
this.FileListingLabel.Text = "Select which files you wish to include in your addon, then click \"Save Package\" b" +
|
this.FileListingLabel.Text = "Select which files you wish to include in your mod, then click \"Save Package\" bel" +
|
||||||
"elow";
|
"ow";
|
||||||
|
//
|
||||||
|
// ModNameBox
|
||||||
|
//
|
||||||
|
this.ModNameBox.Location = new System.Drawing.Point(80, 9);
|
||||||
|
this.ModNameBox.Name = "ModNameBox";
|
||||||
|
this.ModNameBox.Size = new System.Drawing.Size(337, 20);
|
||||||
|
this.ModNameBox.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// ModNameLabel
|
||||||
|
//
|
||||||
|
this.ModNameLabel.AutoSize = true;
|
||||||
|
this.ModNameLabel.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.ModNameLabel.Name = "ModNameLabel";
|
||||||
|
this.ModNameLabel.Size = new System.Drawing.Size(62, 13);
|
||||||
|
this.ModNameLabel.TabIndex = 7;
|
||||||
|
this.ModNameLabel.Text = "Mod Name:";
|
||||||
|
//
|
||||||
|
// RefreshFileListButton
|
||||||
|
//
|
||||||
|
this.RefreshFileListButton.Location = new System.Drawing.Point(324, 378);
|
||||||
|
this.RefreshFileListButton.Name = "RefreshFileListButton";
|
||||||
|
this.RefreshFileListButton.Size = new System.Drawing.Size(93, 23);
|
||||||
|
this.RefreshFileListButton.TabIndex = 8;
|
||||||
|
this.RefreshFileListButton.Text = "Refresh File List";
|
||||||
|
this.RefreshFileListButton.UseVisualStyleBackColor = true;
|
||||||
|
this.RefreshFileListButton.Click += new System.EventHandler(this.RefreshFileListButton_Click);
|
||||||
//
|
//
|
||||||
// ModCreator
|
// ModCreator
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
this.ClientSize = new System.Drawing.Size(429, 364);
|
this.ClientSize = new System.Drawing.Size(429, 410);
|
||||||
|
this.Controls.Add(this.RefreshFileListButton);
|
||||||
|
this.Controls.Add(this.ModNameLabel);
|
||||||
|
this.Controls.Add(this.ModNameBox);
|
||||||
this.Controls.Add(this.FileListingLabel);
|
this.Controls.Add(this.FileListingLabel);
|
||||||
this.Controls.Add(this.SavePackageButton);
|
this.Controls.Add(this.SavePackageButton);
|
||||||
this.Controls.Add(this.AddonFilesListing);
|
this.Controls.Add(this.ModFilesListing);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
this.Name = "ModCreator";
|
this.Name = "ModCreator";
|
||||||
this.Text = "Mod Package Creator";
|
this.Text = "Mod Package Creator";
|
||||||
this.Load += new System.EventHandler(this.ModCreator_Load);
|
this.Load += new System.EventHandler(this.ModCreator_Load);
|
||||||
|
|
@ -80,7 +114,10 @@
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.ListBox AddonFilesListing;
|
private System.Windows.Forms.ListBox ModFilesListing;
|
||||||
private System.Windows.Forms.Button SavePackageButton;
|
private System.Windows.Forms.Button SavePackageButton;
|
||||||
private System.Windows.Forms.Label FileListingLabel;
|
private System.Windows.Forms.Label FileListingLabel;
|
||||||
|
private System.Windows.Forms.TextBox ModNameBox;
|
||||||
|
private System.Windows.Forms.Label ModNameLabel;
|
||||||
|
private System.Windows.Forms.Button RefreshFileListButton;
|
||||||
}
|
}
|
||||||
|
|
@ -22,9 +22,48 @@ public partial class ModCreator : Form
|
||||||
ListFiles();
|
ListFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SavePackageButton_Click(object sender, EventArgs e)
|
private async void SavePackageButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AddonFilesListing.Items.Clear();
|
if (string.IsNullOrWhiteSpace(ModNameBox.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Please specify a mod name.", "Mod Creator - No Mod Name", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ModFilesListing.SelectedItems.Count <= 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Please select the files you wish to include in your mod.", "Mod Creator - No Mod Files", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] selectedFileList = ModFilesListing.SelectedItems.OfType<string>().ToArray();
|
||||||
|
|
||||||
|
ModManager manager = new ModManager(ModManager.ModMode.ModCreation);
|
||||||
|
await manager.CreateModPackage(selectedFileList, ModNameBox.Text);
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(manager.getOutcome()))
|
||||||
|
{
|
||||||
|
MessageBoxIcon boxicon = MessageBoxIcon.Information;
|
||||||
|
|
||||||
|
if (manager.getOutcome().Contains("Error"))
|
||||||
|
{
|
||||||
|
boxicon = MessageBoxIcon.Error;
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageBox.Show(manager.getOutcome(), "Mod Creator - Mod Created", MessageBoxButtons.OK, boxicon);
|
||||||
|
}
|
||||||
|
|
||||||
|
RefreshFiles();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshFileListButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RefreshFiles();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshFiles()
|
||||||
|
{
|
||||||
|
ModFilesListing.Items.Clear();
|
||||||
ListFiles();
|
ListFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -38,7 +77,7 @@ public partial class ModCreator : Form
|
||||||
else
|
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.",
|
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);
|
"Mod Creator - Initial file list not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -46,15 +85,15 @@ public partial class ModCreator : Form
|
||||||
private void FillFileListing()
|
private void FillFileListing()
|
||||||
{
|
{
|
||||||
string fileLoadString = "Loading files...";
|
string fileLoadString = "Loading files...";
|
||||||
AddonFilesListing.Items.Add(fileLoadString);
|
ModFilesListing.Items.Add(fileLoadString);
|
||||||
string[] files = GetUnlistedFiles();
|
string[] files = GetUnlistedFiles();
|
||||||
|
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
{
|
{
|
||||||
AddonFilesListing.Items.Add(file);
|
ModFilesListing.Items.Add(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddonFilesListing.Items.Remove(fileLoadString);
|
ModFilesListing.Items.Remove(fileLoadString);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string[] GetUnlistedFiles()
|
private string[] GetUnlistedFiles()
|
||||||
|
|
@ -67,7 +106,7 @@ public partial class ModCreator : Form
|
||||||
|
|
||||||
List<string> newArray = new List<string>();
|
List<string> newArray = new List<string>();
|
||||||
|
|
||||||
DirectoryInfo dinfo = new DirectoryInfo(GlobalPaths.BasePath);
|
DirectoryInfo dinfo = new DirectoryInfo(GlobalPaths.RootPath);
|
||||||
FileInfo[] Files = dinfo.GetFiles("*.*", SearchOption.AllDirectories);
|
FileInfo[] Files = dinfo.GetFiles("*.*", SearchOption.AllDirectories);
|
||||||
foreach (FileInfo file in Files)
|
foreach (FileInfo file in Files)
|
||||||
{
|
{
|
||||||
|
|
@ -77,7 +116,8 @@ public partial class ModCreator : Form
|
||||||
!fileListToIgnore.Contains(directory, StringComparer.InvariantCultureIgnoreCase) &&
|
!fileListToIgnore.Contains(directory, StringComparer.InvariantCultureIgnoreCase) &&
|
||||||
!initalFileListLines.Contains(file.FullName, StringComparer.InvariantCultureIgnoreCase))
|
!initalFileListLines.Contains(file.FullName, StringComparer.InvariantCultureIgnoreCase))
|
||||||
{
|
{
|
||||||
newArray.Add(file.FullName);
|
string fixedFileName = file.FullName.Replace(GlobalPaths.RootPath, "");
|
||||||
|
newArray.Add(fixedFileName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -38,7 +38,7 @@
|
||||||
System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem(new string[] {
|
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));
|
"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[] {
|
System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||||
"Mod Package Creator"}, -1, System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F));
|
"Mod Package Creator"}, "ModCreator.png", 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[] {
|
System.Windows.Forms.ListViewItem listViewItem7 = 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));
|
"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[] {
|
System.Windows.Forms.ListViewItem listViewItem8 = new System.Windows.Forms.ListViewItem(new string[] {
|
||||||
|
|
@ -64,7 +64,9 @@
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
this.label1.Location = new System.Drawing.Point(12, 329);
|
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 365);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
this.label1.Size = new System.Drawing.Size(414, 16);
|
this.label1.Size = new System.Drawing.Size(414, 16);
|
||||||
this.label1.TabIndex = 12;
|
this.label1.TabIndex = 12;
|
||||||
|
|
@ -73,6 +75,8 @@
|
||||||
//
|
//
|
||||||
// pictureBox2
|
// pictureBox2
|
||||||
//
|
//
|
||||||
|
this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.pictureBox2.BackgroundImage = global::NovetusLauncher.Properties.Resources.NOVETUS_small;
|
this.pictureBox2.BackgroundImage = global::NovetusLauncher.Properties.Resources.NOVETUS_small;
|
||||||
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
this.pictureBox2.Location = new System.Drawing.Point(12, 12);
|
this.pictureBox2.Location = new System.Drawing.Point(12, 12);
|
||||||
|
|
@ -83,6 +87,9 @@
|
||||||
//
|
//
|
||||||
// listView1
|
// listView1
|
||||||
//
|
//
|
||||||
|
this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||||
this.columnHeader1});
|
this.columnHeader1});
|
||||||
this.listView1.HideSelection = false;
|
this.listView1.HideSelection = false;
|
||||||
|
|
@ -102,7 +109,7 @@
|
||||||
listViewItem13});
|
listViewItem13});
|
||||||
this.listView1.Location = new System.Drawing.Point(12, 102);
|
this.listView1.Location = new System.Drawing.Point(12, 102);
|
||||||
this.listView1.Name = "listView1";
|
this.listView1.Name = "listView1";
|
||||||
this.listView1.Size = new System.Drawing.Size(414, 224);
|
this.listView1.Size = new System.Drawing.Size(414, 260);
|
||||||
this.listView1.SmallImageList = this.imageList1;
|
this.listView1.SmallImageList = this.imageList1;
|
||||||
this.listView1.TabIndex = 15;
|
this.listView1.TabIndex = 15;
|
||||||
this.listView1.UseCompatibleStateImageBehavior = false;
|
this.listView1.UseCompatibleStateImageBehavior = false;
|
||||||
|
|
@ -130,13 +137,14 @@
|
||||||
this.imageList1.Images.SetKeyName(9, "XMLContentEditor.png");
|
this.imageList1.Images.SetKeyName(9, "XMLContentEditor.png");
|
||||||
this.imageList1.Images.SetKeyName(10, "MeshConverter.png");
|
this.imageList1.Images.SetKeyName(10, "MeshConverter.png");
|
||||||
this.imageList1.Images.SetKeyName(11, "AssetDownloader.png");
|
this.imageList1.Images.SetKeyName(11, "AssetDownloader.png");
|
||||||
|
this.imageList1.Images.SetKeyName(12, "ModCreator.png");
|
||||||
//
|
//
|
||||||
// NovetusSDK
|
// NovetusSDK
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
this.ClientSize = new System.Drawing.Size(438, 352);
|
this.ClientSize = new System.Drawing.Size(438, 390);
|
||||||
this.Controls.Add(this.listView1);
|
this.Controls.Add(this.listView1);
|
||||||
this.Controls.Add(this.label1);
|
this.Controls.Add(this.label1);
|
||||||
this.Controls.Add(this.pictureBox2);
|
this.Controls.Add(this.pictureBox2);
|
||||||
|
|
|
||||||
|
|
@ -124,8 +124,8 @@
|
||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAk
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACw
|
||||||
FQAAAk1TRnQBSQFMAgEBDAEAAUgBAAFIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
FgAAAk1TRnQBSQFMAgEBDQEAAVABAAFQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||||
|
|
@ -153,69 +153,75 @@
|
||||||
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
||||||
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
||||||
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
||||||
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ALQAB/wGY
|
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wYAAd0BtAHdBf8B3QG0
|
||||||
GgAEswGtAccBAAWtAbwEtQq0AbwFAANtAkkBbQwAAnILAAKsArMCxwEAAscCrQHHAbQBvAzwAbwBtAMA
|
Ad01AAG0AdYBtAHuAQcB+ALrAbQB1gG0NAAB/wHxAbQB8AH0AfMB6wJtAfABtAHxNAAB/wHvAvgC6wHt
|
||||||
BW0CcgNJAewB8wcAAXICTwFyDAABrQG0AawBxwIAAccCrQHHAbQF8gHwAfIF/wH0AfABkQIAAW0B/QFt
|
AfcB6wH0MgABGwdSARwBkgHtAfcB6wH0MgABUgblAVkBUgH0AfgB7wHrAfQyAAFSAeUCWAM3AeUBUgH0
|
||||||
Af0BTwFyBZgCcgHzBAAB/wJyApcBTwFyAf8KAAGsAa0BswGtAawBxwGtAbQBrQHHAbQB8gO1AvAB8gb/
|
AfgB7wHrAfQyAAFSAeUBWAOgATcB5QFSAf8B7AHvAfgB9DIAAVIB5QVeAeUBUgH/AewB7wH4AfQyAAFS
|
||||||
AfEBtAEABm0BUAJyAU8BSQFyAZgBcgHvBAABmAFQAXICeAFQAUkB7QsAAawDtAGzArQBrQHHAbQB8wMJ
|
AeUFWAHlAVIB/wHtAe8B7AH0MgABUgHlAVgDoAFYAeUBUgH/Ae0B7wHsAfQyAAFSBOUCXgHlAVIB/wGS
|
||||||
AfIB8AG8B/EBtAEAAW0B/QFtAv0BbQH9AesBTwL9A0kBcgUAAfQBUAGYAXgBSQYAAbsBCQG7AbQBAAHH
|
Ae8B7AH0MgABeQdYAXkB8gHtAe8B7AH0MgABGwFSAVgBHAH3BZIC7wHsAfQzAAHzAZkBHAH3Ae8FBwHv
|
||||||
AbQBCQK0AawBAAGsAbQBrQEAAbQF8wHyCPEBtAFtAf0BbQL9AW0D/QHrAW0C/QFtAf0BbQYAAU8CmAFP
|
Ae0B/zQAAv8B9AHvAvcEkgG8Af9aAAH/AZgaAASzAa0BxwEABa0BvAS1CrQBvAUAA20CSQFtDAACcgsA
|
||||||
BgABrQG0AQkBrQIAAccCtAKzAqwBtAGtAQABtAHzBPQB8gHzBvQB8gG0AW0B/QFtAv0BbQT9AW0B6wH9
|
AqwCswLHAQACxwKtAccBtAG8DPABvAG0AwAFbQJyA0kB7AHzBwABcgJPAXIMAAGtAbQBrAHHAgABxwKt
|
||||||
AW0B/QFtBgABUAKYAU8GAAKtAQkBswKtAccBCQG0Aa0BtAGzAawBtAGtAQABtAHzAwkB8gHwAfIG/wHy
|
AccBtAXyAfAB8gX/AfQB8AGRAgABbQH9AW0B/QFPAXIFmAJyAfMEAAH/AnIClwFPAXIB/woAAawBrQGz
|
||||||
AbQFbQOXAXICbQJQA20GAAFyApgBTwgAAbMECQEZAbQBxwGzAbQBswG0Aa0BrAG0AfQBCQK1AfEC8Afz
|
Aa0BrAHHAa0BtAGtAccBtAHyA7UC8AHyBv8B8QG0AQAGbQFQAnIBTwFJAXIBmAFyAe8EAAGYAVABcgJ4
|
||||||
AbQBbQH9AW0C/QFyAZgBCAF4AnIClwFQAf0BbQYAAXICmAFQCAABrQHbAQkCrQEJAbMCrQGzAdsB1QGt
|
AVABSQHtCwABrAO0AbMCtAGtAccBtAHzAwkB8gHwAbwH8QG0AQABbQH9AW0C/QFtAf0B6wFPAv0DSQFy
|
||||||
AawBtAX0AfEG8AHxAfMBtAFtAf0BbQL9AesB7QGYAggDmAGXAXIBbQYAAZcCmAFQCQABswEJAq0BugGz
|
BQAB9AFQAZgBeAFJBgABuwEJAbsBtAEAAccBtAEJArQBrAEAAawBtAGtAQABtAXzAfII8QG0AW0B/QFt
|
||||||
Aa0FswGtAbQB8QwZAd0BtAEAAW0B/QFtAv0B6wHtA5cBeAGXAewBbQcAAZcCmAFyCQACswEJAbMBugGz
|
Av0BbQP9AesBbQL9AW0B/QFtBgABTwKYAU8GAAGtAbQBCQGtAgABxwK0ArMCrAG0Aa0BAAG0AfME9AHy
|
||||||
Aa0GABC0AQAKbQJyAm0HAAGXApgBlwoAAbMB2wIZAbMCrQUAAbsNCQG7AbUCAAFtAf0BbQH9AW0C/QFt
|
AfMG9AHyAbQBbQH9AW0C/QFtBP0BbQHrAf0BbQH9AW0GAAFQApgBTwYAAq0BCQGzAq0BxwEJAbQBrQG0
|
||||||
Af0BcgH9AW0IAAGXApgBlwkAAbMBtAHbAgkBugG0Aa0FAAHxAQkBuwe1BLQBuwHyAwAEbQL9BG0JAASX
|
AbMBrAG0Aa0BAAG0AfMDCQHyAfAB8gb/AfIBtAVtA5cBcgJtAlADbQYAAXICmAFPCAABswQJARkBtAHH
|
||||||
KwAGbRkAAfIB/wIAAfIB8xkAAf8B9AG8AW8CRgFvAgcB8AkAAfMBvAHwAvEB8gHxAfMHAAHvAgABFAFt
|
AbMBtAGzAbQBrQGsAbQB9AEJArUB8QLwB/MBtAFtAf0BbQL9AXIBmAEIAXgCcgKXAVAB/QFtBgABcgKY
|
||||||
GAAB/wEaAUYCIAHpASABRgFvAeMBkwH/CAABbAHwA/MBGQEJAfEGAAFDAesCAAHtAQ4IAAH/AfQB8gHx
|
AVAIAAGtAdsBCQKtAQkBswKtAbMB2wHVAa0BrAG0BfQB8QbwAfEB8wG0AW0B/QFtAv0B6wHtAZgCCAOY
|
||||||
AfIB9AL/BgAC/wGTAiABRgFvARYCvQH/AfQBRgGTAf8HAAFDAbUECQEZAfIGAAHsAQ8CAAHwAQAB/wYA
|
AZcBcgFtBgABlwKYAVAJAAGzAQkCrQG6AbMBrQWzAa0BtAHxDBkB3QG0AQABbQH9AW0C/QHrAe0DlwF4
|
||||||
AfQB7AFtAewDFQEUAesBBwH0Af8DAAHyAm8BFgG3Ab0G/wHjASABGgIAARoCkwFFAQABBwG1BRkB7AUA
|
AZcB7AFtBwABlwKYAXIJAAKzAQkBswG6AbMBrQYAELQBAAptAnICbQcAAZcCmAGXCgABswHbAhkBswKt
|
||||||
AQcB7AEAAQcBvAHvAQABkgG8AQcB/wMAAe0EEAIRA0MBEQHsAfMB/wEAAb0BFgH0Cf8BlAEgAUYB9AEA
|
BQABuw0JAbsBtQIAAW0B/QFtAf0BbQL9AW0B/QFyAf0BbQgAAZcCmAGXCQABswG0AdsCCQG6AbQBrQUA
|
||||||
ARoC9AFFAQABGgG1BRkBtQHyBAABDwkAAfQDAAHsAQ4BFAESBQ8BEAEVARMBFAG8AQABGgHjAfQD/wH0
|
AfEBCQG7B7UEtAG7AfIDAARtAv0EbQkABJcrAAZtGQAB8gH/AgAB8gHzGQAB/wH0AbwBbwJGAW8CBwHw
|
||||||
Ab0BlAG9Av8BvQHpASABBwEAARoC9AFFAQABGgG8BRkBCQFmAfIDAAL/AQ4B7AL/AesBEQL/BAAB7wET
|
CQAB8wG8AfAC8QHyAfEB8wcAAe8CAAEUAW0YAAH/ARoBRgIgAekBIAFGAW8B4wGTAf8IAAFsAfAD8wEZ
|
||||||
AW4BRQTpAR8BAQFEAREB7AHvAQABbwFHAb0C/wG9ARcCRgHjAv8B9AFGAR8BbwEAARoC9AFFAQABkwHw
|
AQkB8QYAAUMB6wIAAe0BDggAAf8B9AHyAfEB8gH0Av8GAAL/AZMCIAFGAW8BFgK9Af8B9AFGAZMB/wcA
|
||||||
BBkB9AEJAbsBBwUAAeoBEwIAAe8HAAH/AZICbwFFBUQB6QFFAbwB/wEAAUYBRwGUAv8BvQHpAQEBHwEX
|
AUMBtQQJARkB8gYAAewBDwIAAfABAAH/BgAB9AHsAW0B7AMVARQB6wEHAfQB/wMAAfICbwEWAbcBvQb/
|
||||||
Ab0C/wFvAR8BRgEAARoC9AFFAfMBbwHwBfQB8wG7AQcFAAGSAwAB8QEAAfQHAAHsAesCQwIRAhABDgEH
|
AeMBIAEaAgABGgKTAUUBAAEHAbUFGQHsBQABBwHsAQABBwG8Ae8BAAGSAbwBBwH/AwAB7QQQAhEDQwER
|
||||||
AwACRgEWAv8BvQFGAgEBRgG9Av8BlAEgAUYBAAEaAvQCvQH0AQcB7AKuAmwBZgHsBAACbQEUAQAB6wJt
|
AewB8wH/AQABvQEWAfQJ/wGUASABRgH0AQABGgL0AUUBAAEaAbUFGQG1AfIEAAEPCQAB9AMAAewBDgEU
|
||||||
AQAB6wFtAfQFAAHsAesDQwIRARABDwHvAwABbwEgARcB9AL/AW8CRgHjAb0C/wG9AUYBbwEAARoC9AFv
|
ARIFDwEQARUBEwEUAbwBAAEaAeMB9AP/AfQBvQGUAb0C/wG9AekBIAEHAQABGgL0AUUBAAEaAbwFGQEJ
|
||||||
AUUBkwH0ARoBRQkAARUBFAETAQABQwEVARMBAAFDARUB9AUAAe0B7AHrA0MCEQEQAfcDAAEHASABRgG9
|
AWYB8gMAAv8BDgHsAv8B6wERAv8EAAHvARMBbgFFBOkBHwEBAUQBEQHsAe8BAAFvAUcBvQL/Ab0BFwJG
|
||||||
Av8CvQHzBP8B9AFGAQcBAAEaAvQBRQEAAQcBGgH0Ab0BBwwAAZICAAFtARUGAAH/Ae0B7AHtARQBFQJD
|
AeMC/wH0AUYBHwFvAQABGgL0AUUBAAGTAfAEGQH0AQkBuwEHBQAB6gETAgAB7wcAAf8BkgJvAUUFRAHp
|
||||||
AREBEAHtAwAB9AFGAUcBlAn/Ab0B4wEaAQABGgL0AUUBAAHzAZMB9AEbAQcLAAFtARQCAAHvBwAB/wHs
|
AUUBvAH/AQABRgFHAZQC/wG9AekBAQEfARcBvQL/AW8BHwFGAQABGgL0AUUB8wFvAfAF9AHzAbsBBwUA
|
||||||
ARMCEQQQAREB6wQAAbwBRgEWBf8B8wG9AZQB4wEXAZQB9AEAARoC9AFFAQcBkwL0AZMB8wsAAe8DAAHy
|
AZIDAAHxAQAB9AcAAewB6wJDAhECEAEOAQcDAAJGARYC/wG9AUYCAQFGAb0C/wGUASABRgEAARoC9AK9
|
||||||
AQAB8wYAAe8C7QXsARMBBwQAAf8BkwEXAb0B8wG9AZQB4wJGAiABkwH/AgABGgLzAr0BGgG9AW8BBwwA
|
AfQBBwHsAq4CbAFmAewEAAJtARQBAAHrAm0BAAHrAW0B9AUAAewB6wNDAhEBEAEPAe8DAAFvASABFwH0
|
||||||
AfIB6wH0AQAB/wHsAfAHAAH/AfMD8gHzAfQB/wYAAf8BlAHjARcBRwQgAUYBvAH/AwAB8wYHKwAB9AEb
|
Av8BbwJGAeMBvQL/Ab0BRgFvAQABGgL0AW8BRQGTAfQBGgFFCQABFQEUARMBAAFDARUBEwEAAUMBFQH0
|
||||||
AZMBbwJGAW8BkwH0Af8oAAHzAm8BkwGRAc8CrgHwAgAB/wG8Ae8BtQG0AZEFiwKRAfQnAAF0AZMBmgF0
|
BQAB7QHsAesDQwIRARAB9wMAAQcBIAFGAb0C/wK9AfME/wH0AUYBBwEAARoC9AFFAQABBwEaAfQBvQEH
|
||||||
Ae0BuwK0AYsBkQHzAfEBtAG7AQkB8AHxAfMB9AL/ARkB9AG0AfAUAAHzAgcB9AMAAf8B8gEHAbwB/wYA
|
DAABkgIAAW0BFQYAAf8B7QHsAe0BFAEVAkMBEQEQAe0DAAH0AUYBRwGUCf8BvQHjARoBAAEaAvQBRQEA
|
||||||
Af8BdAGaARoBmgF0ARwEtAGLAbwBtQj/AbUBGQG1AbwCABBLAgAB8AJpAfMDAAHzA40B/wMAAf8B8QJy
|
AfMBkwH0ARsBBwsAAW0BFAIAAe8HAAH/AewBEwIRBBABEQHrBAABvAFGARYF/wHzAb0BlAHjARcBlAH0
|
||||||
AXMBdAIaAZoBbwS0Ac8B8gGLCbQBGQEJAQcCAAFLAXQEUgEbAnkBGgJSAkwBUgFLAgAB8AJpAfMB/wEA
|
AQABGgL0AUUBBwGTAvQBkwHzCwAB7wMAAfIBAAHzBgAB7wLtBewBEwEHBAAB/wGTARcBvQHzAb0BlAHj
|
||||||
AfQB9wFuAm8B/wIAAfQB7AFyApgBcgHtAZMBGgF0AZMB7AKRAbQBzwH/AbsBtQH0AwkEGQH0AQkBtQIA
|
AkYCIAGTAf8CAAEaAvMCvQEaAb0BbwEHDAAB8gHrAfQBAAH/AewB8AcAAf8B8wPyAfMB9AH/BgAB/wGU
|
||||||
AUwBdAFSC0sBTAFLAv8BuwK0AbsCCQG1AewBbgFvAWkB/wIAAXIEmAFyAYsBBwKTAfABBwL3AewBrgEA
|
AeMBFwFHBCABRgG8Af8DAAHzBgcrAAH0ARsBkwFvAkYBbwGTAfQB/ygAAfMCbwGTAZEBzwKuAfACAAH/
|
||||||
AfQBtAH/CBkB8QG0AgABTAF0AUsKeAFLAVIBSwH/AdoBtAFuAUwB8wH/AQcBbgGRArQBbgH/AgABcgII
|
AbwB7wG1AbQBkQWLApEB9CcAAXQBkwGaAXQB7QG7ArQBiwGRAfMB8QG0AbsBCQHwAfEB8wH0Av8BGQH0
|
||||||
AQcBmAFyAewBbwEXAe0BvAHwAbwB8AEHAewBAAH/AbQB/wgZAfMBtAIAAVIBdAFMBngBVwNWAUsBUgFL
|
AbQB8BQAAfMCBwH0AwAB/wHyAQcBvAH/BgAB/wF0AZoBGgGaAXQBHAS0AYsBvAG1CP8BtQEZAbUBvAIA
|
||||||
Af8B2wG1AkwBGwHwA28BkwFvAbQBCQH/AQABcgIIAZgBHAFvARcB4wGUAW8B7wHwAe0B7AEHAewBAAH/
|
EEsCAAHwAmkB8wMAAfMDjQH/AwAB/wHxAnIBcwF0AhoBmgFvBLQBzwHyAYsJtAEZAQkBBwIAAUsBdARS
|
||||||
AbMB/wgZAf8BswH/AQABUgF0AUwBlwFVAZcCVgF3AZ0BswLUAUsBUgFLAQAB/wHvAUwBRgEHAW8BaQFv
|
ARsCeQEaAlICTAFSAUsCAAHwAmkB8wH/AQAB9AH3AW4CbwH/AgAB9AHsAXICmAFyAe0BkwEaAXQBkwHs
|
||||||
AfQB7wJvAQkB3AEAAXIBCAGYAXIBbwHjA5QBbwHvAfIB7QFuAQcBvAIAAbQB/wgZAf8BtAH/AQABUgF0
|
ApEBtAHPAf8BuwG1AfQDCQQZAfQBCQG1AgABTAF0AVILSwFMAUsC/wG7ArQBuwIJAbUB7AFuAW8BaQH/
|
||||||
AVIClwJVAboF2wFLAVIBSwIAAfACRgFvAmkBvAH/Ae8CbgLcAQABcgKYAXIBFwG9A5QBbwGSAfIB8AFz
|
AgABcgSYAXIBiwEHApMB8AEHAvcB7AGuAQAB9AG0Af8IGQHxAbQCAAFMAXQBSwp4AUsBUgFLAf8B2gG0
|
||||||
AfQDAAG0AfMIGQH/AbQB/wEAAVIBdAFSAZcCVQTbAbsBmAF6AUsBUgFLAgAB8AFGAkwBbwEHAfMBGQHt
|
AW4BTAHzAf8BBwFuAZECtAFuAf8CAAFyAggBBwGYAXIB7AFvARcB7QG8AfABvAHwAQcB7AEAAf8BtAH/
|
||||||
AW4BbwH0Af8BAAHvAXgCcgEXAb0BlAPjAW8CkgFvAfQDAAG7ARkB9AcZAf8CtAH0AVIBdAFSApYBugTb
|
CBkB8wG0AgABUgF0AUwGeAFXA1YBSwFSAUsB/wHbAbUCTAEbAfADbwGTAW8BtAEJAf8BAAFyAggBmAEc
|
||||||
AZkBegGaAUsBUgFLAgAB8ANMAZMB/wEAAf8B7wFuAW8B/wIAAf8B9AHyAXIBFwGUAuMClALjAW8BFwH0
|
AW8BFwHjAZQBbwHvAfAB7QHsAQcB7AEAAf8BswH/CBkB/wGzAf8BAAFSAXQBTAGXAVUBlwJWAXcBnQGz
|
||||||
AwACCQH/BxkB/wG0ARkBtAFSAXQBUgfbAXoCmgFLAVIBSwIAAfABRgFpAW8B/wIAAf8B7wFuAW8B/wYA
|
AtQBSwFSAUsBAAH/Ae8BTAFGAQcBbwFpAW8B9AHvAm8BCQHcAQABcgEIAZgBcgFvAeMDlAFvAe8B8gHt
|
||||||
AW8BFgGUAeMCFwHjAZQBFgFMAf8DAAIJAf8EGQP0Af8BtAH/AbsBUgF5BVICTAVLAXQBSwIAAfMCkwH0
|
AW4BBwG8AgABtAH/CBkB/wG0Af8BAAFSAXQBUgKXAlUBugXbAUsBUgFLAgAB8AJGAW8CaQG8Af8B7wJu
|
||||||
AwAB/wG8ApMB/wYAAZMD4wIWA+MBkwQAAfEBCQH/BPQF/wEZAbQBUgN5C3QBSxQAAf8B9AHzAW8CFwFv
|
AtwBAAFyApgBcgEXAb0DlAFvAZIB8gHwAXMB9AMAAbQB8wgZAf8BtAH/AQABUgF0AVIBlwJVBNsBuwGY
|
||||||
AfMB9AH/BAAB8gHcBf8B9AMZAQkBugHzCVICTAVLIgAB9AEJAdwB2wG6AbQCugG7AwkB9AH/EAABQgFN
|
AXoBSwFSAUsCAAHwAUYCTAFvAQcB8wEZAe0BbgFvAfQB/wEAAe8BeAJyARcBvQGUA+MBbwKSAW8B9AMA
|
||||||
AT4HAAE+AwABKAMAAUADAAFAAwABAQEAAQEGAAECFgAD/4EABf8BPwL/AfABIAIAAfgBHwH+AX8B8AEg
|
AbsBGQH0BxkB/wK0AfQBUgF0AVIClgG6BNsBmQF6AZoBSwFSAUsCAAHwA0wBkwH/AQAB/wHvAW4BbwH/
|
||||||
AgAB4AEBAfwBPwH8ATACAAHAAQAB8AEPAfwDAAGAAQAB8AEPAf4DAAGAAQAB+AE/AQgBEQQAAfwBPwEM
|
AgAB/wH0AfIBcgEXAZQC4wKUAuMBbwEXAfQDAAIJAf8HGQH/AbQBGQG0AVIBdAFSB9sBegKaAUsBUgFL
|
||||||
AQEEAAH8AT8BAAEBBAAB/AE/AcAFAAH8AT8BwAUAAfwBPwHgAwABgAEBAfwBPwHgAT8CAAGAAQEB/AE/
|
AgAB8AFGAWkBbwH/AgAB/wHvAW4BbwH/BgABbwEWAZQB4wIXAeMBlAEWAUwB/wMAAgkB/wQZA/QB/wG0
|
||||||
AfABHwIAAcABAwH8AT8B4AEfAgAB4AEHAfwBPwT/AfgBHwL/AfMBPwL/AeABBwH8AQMB8wE/Av8BwAED
|
Af8BuwFSAXkFUgJMBUsBdAFLAgAB8wKTAfQDAAH/AbwCkwH/BgABkwPjAhYD4wGTBAAB8QEJAf8E9AX/
|
||||||
AfwBAwHzAT8BwAE/AQABAQH8AQMB8wEfAYABBwEAAQEBhAEDAeABAwGAAQECAAGEAQEB4AEDAYABAQIA
|
ARkBtAFSA3kLdAFLFAAB/wH0AfMBbwIXAW8B8wH0Af8EAAHyAdwF/wH0AxkBCQG6AfMJUgJMBUsiAAH0
|
||||||
AYQBAAHgAQcBgAEBAgABhAEAAfkBnwGAAQECAAGAAQAB+QGPAeABBwIAAYABAQHgAQMB4AEHAgABgAE/
|
AQkB3AHbAboBtAK6AbsDCQH0Af8QAAFCAU0BPgcAAT4DAAEoAwABQAMAAUADAAEBAQABAQYAAQIWAAP/
|
||||||
AeABAwHgAQcCAAGEAR8B/AHPAcABBwIAAYQBHwH8Ac8BwAEHAYABAAGAAR8B/AHHAeABBwGAAQEBgAE/
|
AQAB+AcAAfgHAAHwBwAB8AEDBwABAwcAAQMHAAEDBwABAwcAAQMHAAEDBwABAwcAAQMHAAEDBwABAwYA
|
||||||
AfwBRwHwAQ8BwAEDAYAF/wHgAQcE/wH4AQMBAAEDBP8B+AIAAQMC/wHDAYMB8AIAAQMCAAHDAYMBgAIA
|
AYABAwYAAcABAwYABf8BPwL/AfABIAIAAfgBHwH+AX8B8AEgAgAB4AEBAfwBPwH8ATACAAHAAQAB8AEP
|
||||||
AQMCAAHBAQMDAAEDAwABAwIAAYABAwMAAQMCAAGAAQMDAAEBAgABgAEBAgABgAEBAgABwAEBAgABwAEB
|
AfwDAAGAAQAB8AEPAf4DAAGAAQAB+AE/AQgBEQQAAfwBPwEMAQEEAAH8AT8BAAEBBAAB/AE/AcAFAAH8
|
||||||
AQABAQHAAQECAAHAAQEBAAEBAcADAAHAAYMBAAEBAcADAAHBAYMB8AEBAcADAAHDAYMB8AEDAcADAAL/
|
AT8BwAUAAfwBPwHgAwABgAEBAfwBPwHgAT8CAAGAAQEB/AE/AfABHwIAAcABAwH8AT8B4AEfAgAB4AEH
|
||||||
AfABAwHAAwAE/wHAAQAC/ws=
|
AfwBPwT/AfgBHwL/AfMBPwL/AeABBwH8AQMB8wE/Av8BwAEDAfwBAwHzAT8BwAE/AQABAQH8AQMB8wEf
|
||||||
|
AYABBwEAAQEBhAEDAeABAwGAAQECAAGEAQEB4AEDAYABAQIAAYQBAAHgAQcBgAEBAgABhAEAAfkBnwGA
|
||||||
|
AQECAAGAAQAB+QGPAeABBwIAAYABAQHgAQMB4AEHAgABgAE/AeABAwHgAQcCAAGEAR8B/AHPAcABBwIA
|
||||||
|
AYQBHwH8Ac8BwAEHAYABAAGAAR8B/AHHAeABBwGAAQEBgAE/AfwBRwHwAQ8BwAEDAYAF/wHgAQcE/wH4
|
||||||
|
AQMBAAEDBP8B+AIAAQMC/wHDAYMB8AIAAQMCAAHDAYMBgAIAAQMCAAHBAQMDAAEDAwABAwIAAYABAwMA
|
||||||
|
AQMCAAGAAQMDAAEBAgABgAEBAgABgAEBAgABwAEBAgABwAEBAQABAQHAAQECAAHAAQEBAAEBAcADAAHA
|
||||||
|
AYMBAAEBAcADAAHBAYMB8AEBAcADAAHDAYMB8AEDAcADAAL/AfABAwHAAwAE/wHAAQAC/ws=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 99 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
Loading…
Reference in New Issue