Added the XML Content editor for editing content providers and partcolors

This commit is contained in:
Bitl 2021-08-30 15:11:49 -07:00
parent 62efe92937
commit d20eafc621
14 changed files with 2296 additions and 99 deletions

View File

@ -43,16 +43,28 @@ class CharacterCustomizationShared
public void InitColors() public void InitColors()
{ {
PartColorList = PartColorLoader.GetPartColors(); try
for (int i = 0; i < PartColorList.Length; i++)
{ {
string[] rgbValues = PartColorList[i].ColorRGB.Replace(" ", "").Split(','); if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName))
PartColorList[i].ColorObject = Color.FromArgb(Convert.ToInt32(rgbValues[0]), Convert.ToInt32(rgbValues[1]), Convert.ToInt32(rgbValues[2])); {
PartColorList = PartColorLoader.GetPartColors();
PartColorListConv = new List<PartColor>();
PartColorListConv.AddRange(PartColorList);
return;
}
else
{
goto Failure;
}
}
catch (Exception)
{
goto Failure;
} }
PartColorListConv = new List<PartColor>(); Failure:
PartColorListConv.AddRange(PartColorList); MessageBox.Show("The part colors cannot be loaded. The character customization menu will now close.", "Novetus - Cannot load part colors.", MessageBoxButtons.OK, MessageBoxIcon.Error);
Parent.Close();
} }
#endregion #endregion

View File

@ -1,6 +1,7 @@
#region Usings #region Usings
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Xml;
using System.Xml.Serialization; using System.Xml.Serialization;
#endregion #endregion

View File

@ -1,7 +1,9 @@
#region Usings #region Usings
using System;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Xml;
using System.Xml.Serialization; using System.Xml.Serialization;
#endregion #endregion
@ -11,6 +13,7 @@ public class PartColor
public string ColorName; public string ColorName;
public int ColorID; public int ColorID;
public string ColorRGB; public string ColorRGB;
[XmlIgnore]
public Color ColorObject; public Color ColorObject;
} }
@ -34,6 +37,12 @@ public class PartColorLoader
colors = (PartColors)serializer.Deserialize(fs); colors = (PartColors)serializer.Deserialize(fs);
fs.Close(); fs.Close();
for (int i = 0; i < colors.ColorList.Length; i++)
{
string[] rgbValues = colors.ColorList[i].ColorRGB.Replace(" ", "").Split(',');
colors.ColorList[i].ColorObject = Color.FromArgb(Convert.ToInt32(rgbValues[0]), Convert.ToInt32(rgbValues[1]), Convert.ToInt32(rgbValues[2]));
}
return colors.ColorList; return colors.ColorList;
} }
else else

View File

@ -13,15 +13,16 @@ using System.Xml;
#region SDKApps #region SDKApps
enum SDKApps enum SDKApps
{ {
ClientSDK = 0, ClientSDK,
AssetSDK = 1, AssetSDK,
ItemCreationSDK = 2, ItemCreationSDK,
ClientScriptDoc = 3, ClientScriptDoc,
SplashTester = 4, SplashTester,
ScriptGenerator = 5, ScriptGenerator,
LegacyPlaceConverter = 6, LegacyPlaceConverter,
DiogenesEditor = 7, DiogenesEditor,
ClientScriptTester = 8 ClientScriptTester,
XMLContentEditor
} }
#endregion #endregion
@ -1164,32 +1165,5 @@ class SDKFuncs
} }
} }
#endregion #endregion
#region SDK Launcher
public static SDKApps GetSDKAppForIndex(int index)
{
switch (index)
{
case 1:
return SDKApps.AssetSDK;
case 2:
return SDKApps.ItemCreationSDK;
case 3:
return SDKApps.ClientScriptDoc;
case 4:
return SDKApps.SplashTester;
case 5:
return SDKApps.ScriptGenerator;
case 6:
return SDKApps.LegacyPlaceConverter;
case 7:
return SDKApps.DiogenesEditor;
case 8:
return SDKApps.ClientScriptTester;
default:
return SDKApps.ClientSDK;
}
}
#endregion
} }
#endregion #endregion

View File

@ -45,6 +45,8 @@
"Diogenes Editor"}, "Diogenes.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 listViewItem9 = new System.Windows.Forms.ListViewItem(new string[] { System.Windows.Forms.ListViewItem listViewItem9 = 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)); "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 listViewItem10 = 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)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NovetusSDK));
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.pictureBox2 = new System.Windows.Forms.PictureBox(); this.pictureBox2 = new System.Windows.Forms.PictureBox();
@ -87,7 +89,8 @@
listViewItem6, listViewItem6,
listViewItem7, listViewItem7,
listViewItem8, listViewItem8,
listViewItem9}); listViewItem9,
listViewItem10});
this.listView1.Location = new System.Drawing.Point(12, 70); this.listView1.Location = new System.Drawing.Point(12, 70);
this.listView1.Name = "listView1"; this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(260, 229); this.listView1.Size = new System.Drawing.Size(260, 229);
@ -115,6 +118,7 @@
this.imageList1.Images.SetKeyName(6, "ROBLOXLegacyPlaceConverter.png"); this.imageList1.Images.SetKeyName(6, "ROBLOXLegacyPlaceConverter.png");
this.imageList1.Images.SetKeyName(7, "ROBLOXScriptGenerator.png"); this.imageList1.Images.SetKeyName(7, "ROBLOXScriptGenerator.png");
this.imageList1.Images.SetKeyName(8, "splash.png"); this.imageList1.Images.SetKeyName(8, "splash.png");
this.imageList1.Images.SetKeyName(9, "XMLContentEditor.png");
// //
// NovetusSDK // NovetusSDK
// //
@ -129,8 +133,8 @@
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false; this.MaximizeBox = false;
this.Name = "NovetusSDK"; this.Name = "NovetusSDK";
this.Text = "Novetus SDK";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Novetus SDK";
this.Closing += new System.ComponentModel.CancelEventHandler(this.NovetusSDK_Close); this.Closing += new System.ComponentModel.CancelEventHandler(this.NovetusSDK_Close);
this.Load += new System.EventHandler(this.NovetusSDK_Load); this.Load += new System.EventHandler(this.NovetusSDK_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();

View File

@ -50,7 +50,7 @@ public partial class NovetusSDK : Form
#region Functions #region Functions
public static void LaunchSDKAppByIndex(int index) public static void LaunchSDKAppByIndex(int index)
{ {
SDKApps selectedApp = SDKFuncs.GetSDKAppForIndex(index); SDKApps selectedApp = (SDKApps)index;
switch (selectedApp) switch (selectedApp)
{ {
@ -96,6 +96,10 @@ public partial class NovetusSDK : Form
GlobalFuncs.LaunchRBXClient("ClientScriptTester", ScriptType.Client, false, false, null); GlobalFuncs.LaunchRBXClient("ClientScriptTester", ScriptType.Client, false, false, null);
#endif #endif
break; break;
case SDKApps.XMLContentEditor:
XMLContentEditor xml = new XMLContentEditor();
xml.Show();
break;
default: default:
ClientinfoEditor cie = new ClientinfoEditor(); ClientinfoEditor cie = new ClientinfoEditor();
cie.Show(); cie.Show();

View File

@ -124,8 +124,8 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAU
EgAAAk1TRnQBSQFMAgEBCQEAARgBAAEIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo EwAAAk1TRnQBSQFMAgEBCgEAARABAAEQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@ -153,57 +153,60 @@
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/0UABLMBrQHHAQAFrTQA AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0UABLMBrQHHAQAFrQHu
AqwCswLHAQACxwKtAcc2AAGtAbQBrAHHAgABxwKtAcc2AAGsAa0BswGtAawBxwGtAbQBrQHHNwABrAO0 BLUKtAG8JAACrAKzAscBAALHAq0BxwG0AbwM8AHuAbQmAAGtAbQBrAHHAgABxwKtAccBtAXyAfAB8gX/
AbMCtAGtAccwAAG7AQkBuwG0AQABxwG0AQkCtAGsAQABrAG0Aa0xAAGtAbQBCQGtAgABxwK0ArMCrAG0 AfQB8AGRJgABrAGtAbMBrQGsAccBrQG0Aa0BxwG0AfIDtQLwAfIG/wHxAbQnAAGsA7QBswK0Aa0BxwG0
Aa0xAAKtAQkBswKtAccBCQG0Aa0BtAGzAawBtAGtMwABswQJARkBtAHHAbMBtAGzAbQBrQGsMgABrQHb AfMDCQHyAfABvAfxAbQgAAG7AQkBuwG0AQABxwG0AQkCtAGsAQABrAG0Aa0BAAG0BfMB8gjxAbQgAAGt
AQkCrQEJAbMCrQGzAdsB1QGtAawzAAGzAQkCrQG6AbMBrQWzAa0zAAKzAQkBswG6AbMBrToAAbMB2wIZ AbQBCQGtAgABxwK0ArMCrAG0Aa0BAAG0AfME9AHyAfMG9AHyAbQgAAKtAQkBswKtAccBCQG0Aa0BtAGz
AbMCrTgAAbMBtAHbAgkBugG0Aa15AAHyAf8CAAHyAfMZAAH/AfQB7gFvAkYBbwIHAfAJAAHzAbwB8ALx AawBtAGtAQABtAHzAwkB8gHwAfIG/wHyAbQiAAGzBAkBGQG0AccBswG0AbMBtAGtAawBtAH0AQkCtQHx
AfIB8QHzBwAB7wIAARQBbRgAAf8BGgFGAiAB6QEgAUYBbwHjAZMB/wgAAWwB8APzARkBCQHxBgABQwHr AvAH8wG0IgABrQHbAQkCrQEJAbMCrQGzAdsB1QGtAawBtAX0AfEG8AHxAfMBtCMAAbMBCQKtAboBswGt
AgAB7QEOCAAB/wH0AfIB8QHyAfQC/wYAAv8BkwIgAUYBbwEWAr0B/wH0AUYBkwH/BwABQwG1BAkBGQHy BbMBrQG0AfEMGQHdAbQjAAKzAQkBswG6AbMBrQYAELQkAAGzAdsCGQGzAq0FAAG7DQkBuwG1IwABswG0
BgAB7AEPAgAB8AEAAf8GAAH0AewBbQH4AxUBFAHrAQcB9AH/AwAB8gJvARYBtwG9AfUF/wHjASABGgIA AdsCCQG6AbQBrQUAAfEBCQG7B7UEtAG7AfJkAAHyAf8CAAHyAfMZAAH/AfQBvAFvAkYBbwIHAfAJAAHz
ARoCkwFFAQABBwG1BRkB+AUAAQcB7AEAAQcBvAHvAQABkgG8AQcB/wMAAe0EEAIRA0MBEQH4AfMB/wEA AbwB8ALxAfIB8QHzBwAB7wIAARQBbRgAAf8BGgFGAiAB6QEgAUYBbwHjAZMB/wgAAWwB8APzARkBCQHx
Ab0BFgH0Cf8BlAEgAUYB9AEAARoC9AFFAQABGgG1BRkBtQHyBAABDwkAAfQDAAH4AQ4BFAESBQ8BEAEV BgABQwHrAgAB7QEOCAAB/wH0AfIB8QHyAfQC/wYAAv8BkwIgAUYBbwEWAr0B/wH0AUYBkwH/BwABQwG1
ARMBFAG8AQABGgHjAfQD/wH0Ab0BlAG9Av8BvQHpASABBwEAARoC9AFFAQABGgG8BRkBCQFmAfIDAAL/ BAkBGQHyBgAB7AEPAgAB8AEAAf8GAAH0AewBbQHsAxUBFAHrAQcB9AH/AwAB8gJvARYBtwG9Bv8B4wEg
AQ4B7AL/AesBEQL/BAAB7wETAW4BRQTpAR8BAQFEAREB7AHvAQABbwFHAb0C/wG9ARcCRgHjAfUB/wH0 ARoCAAEaApMBRQEAAQcBtQUZAewFAAEHAewBAAEHAbwB7wEAAZIBvAEHAf8DAAHtBBACEQNDAREB7AHz
AUYBHwFvAQABGgL0AUUBAAGTAfAEGQH0AQkBuwEHBQAB6gETAgAB7wcAAf8BkgJvAUUFRAHpAUUBvAH/ Af8BAAG9ARYB9An/AZQBIAFGAfQBAAEaAvQBRQEAARoBtQUZAbUB8gQAAQ8JAAH0AwAB7AEOARQBEgUP
AQABRgFHAZQC/wG9AekBAQEfARcBvQL/AW8BHwFGAQABGgL0AUUB8wFvAfAF9AHzAbsBBwUAAZIDAAHx ARABFQETARQBvAEAARoB4wH0A/8B9AG9AZQBvQL/Ab0B6QEgAQcBAAEaAvQBRQEAARoBvAUZAQkBZgHy
AQAB9AcAAewB6wJDAhECEAEOAQcDAAJGARYC/wG9AUYCAQFGAb0C/wGUASABRgEAARoC9AK9AfQBBwHs AwAC/wEOAewC/wHrAREC/wQAAe8BEwFuAUUE6QEfAQEBRAERAewB7wEAAW8BRwG9Av8BvQEXAkYB4wL/
Aq4CbAFmAfgEAAJtARQBAAHrAm0BAAHrAW0B9AUAAewB6wNDAhEBEAEPAe8DAAFvASABFwH0Af8B9QFv AfQBRgEfAW8BAAEaAvQBRQEAAZMB8AQZAfQBCQG7AQcFAAHqARMCAAHvBwAB/wGSAm8BRQVEAekBRQG8
Af8BAAFGAUcBlAL/Ab0B6QEBAR8BFwG9Av8BbwEfAUYBAAEaAvQBRQHzAW8B8AX0AfMBuwEHBQABkgMA
AfEBAAH0BwAB7AHrAkMCEQIQAQ4BBwMAAkYBFgL/Ab0BRgIBAUYBvQL/AZQBIAFGAQABGgL0Ar0B9AEH
AewCrgJsAWYB7AQAAm0BFAEAAesCbQEAAesBbQH0BQAB7AHrA0MCEQEQAQ8B7wMAAW8BIAEXAfQC/wFv
AkYB4wG9Av8BvQFGAW8BAAEaAvQBbwFFAZMB9AEaAUUJAAEVARQBEwEAAUMBFQETAQABQwEVAfQFAAHt AkYB4wG9Av8BvQFGAW8BAAEaAvQBbwFFAZMB9AEaAUUJAAEVARQBEwEAAUMBFQETAQABQwEVAfQFAAHt
AewB6wNDAhEBEAH3AwABBwEgAUYBvQL/Ar0B8wT/AfQBRgEHAQABGgL0AUUBAAEHARoB9AG9AQcMAAGS AewB6wNDAhEBEAH3AwABBwEgAUYBvQL/Ar0B8wT/AfQBRgEHAQABGgL0AUUBAAEHARoB9AG9AQcMAAGS
AgABbQEVBgAB/wHtAewB7QEUARUCQwERARAB7QMAAfQBRgFHAZQI/wH1Ab0B4wEaAQABGgL0AUUBAAHz AgABbQEVBgAB/wHtAewB7QEUARUCQwERARAB7QMAAfQBRgFHAZQJ/wG9AeMBGgEAARoC9AFFAQAB8wGT
AZMB9AEbAQcLAAFtARQCAAHvBwAB/wHsARMCEQQQAREB6wQAAe4BRgEWBP8B9QHzAb0BlAHjARcBlAH0 AfQBGwEHCwABbQEUAgAB7wcAAf8B7AETAhEEEAERAesEAAG8AUYBFgX/AfMBvQGUAeMBFwGUAfQBAAEa
AQABGgL0AUUBBwGTAvQBkwHzCwAB7wMAAfIBAAHzBgAB7wLtAewB+APsARMBBwQAAf8BkwEXAb0B8wG9 AvQBRQEHAZMC9AGTAfMLAAHvAwAB8gEAAfMGAAHvAu0F7AETAQcEAAH/AZMBFwG9AfMBvQGUAeMCRgIg
AZQB4wJGAiABkwH/AgABGgLzAr0BGgG9AW8BBwwAAfIB6wH0AQAB/wH4AfAHAAH/AfMD8gHzAfQB/wYA AZMB/wIAARoC8wK9ARoBvQFvAQcMAAHyAesB9AEAAf8B7AHwBwAB/wHzA/IB8wH0Af8GAAH/AZQB4wEX
Af8BlAHjARcBRwQgAUYB7gH/AwAB8wYHKwAB9AEbAZMBbwJGAW8BkwH0Af8qAAH/AfIBkQHPAq4B8AIA AUcEIAFGAbwB/wMAAfMGBysAAfQBGwGTAW8CRgFvAZMB9AH/KgAB/wHyAZEBzwKuAfACAAH/AbwB7wG1
Af8B7gHvAbUBtAGRBYsCkQH0KAAB9AGRAbQBtQG7ArQBiwGRAfMB8QG0AbsBCQHwAfEB8wH0AfUB/wEZ AbQBkQWLApEB9CgAAfQBkQG0AbUBuwK0AYsBkQHzAfEBtAG7AQkB8AHxAfMB9AL/ARkB9AG0AfAUAAHz
AfQBtAHwFAAB8wIHAfQDAAH/AfIBBwHuAf8GAAL/AZEEuwS0AYsB7gG1Bf8D9QG1ARkBtQHuAgAQSwIA AgcB9AMAAf8B8gEHAbwB/wYAAv8BkQS7BLQBiwG8AbUI/wG1ARkBtQG8AgAQSwIAAfACaQHzAwAB8wON
AfACaQHzAwAB8wONAf8DAAH/AfEDcgHPAwkBuwS0Ac8B8gGLCbQBGQEJAQcCAAFLAXQEUgEbAnkBGgJS Af8DAAH/AfEDcgHPAwkBuwS0Ac8B8gGLCbQBGQEJAQcCAAFLAXQEUgEbAnkBGgJSAkwBUgFLAgAB8AJp
AkwBUgFLAgAB8AJpAfMB/wEAAfQB9wFuAm8B/wIAAfQB7AFyApgBcgGuAgkBuwW0Ac8B/wG7AbUB9AMJ AfMB/wEAAfQB9wFuAm8B/wIAAfQB7AFyApgBcgGuAgkBuwW0Ac8B/wG7AbUB9AMJBBkB9AEJAbUCAAFM
BBkB9AEJAbUCAAFMAXQBUgtLAUwBSwH/AfUBuwK0AbsCCQG1AfgBbgFvAWkB/wIAAXIEmAFyAYsBCQG1 AXQBUgtLAUwBSwL/AbsCtAG7AgkBtQHsAW4BbwFpAf8CAAFyBJgBcgGLAQkBtQG0ArsDtAHPAQAB9AG0
AbQCuwO0Ac8BAAH0AbQB/wgZAfEBtAIAAUwBdAFLCngBSwFSAUsB/wHaAbQBbgFMAfMB/wEHAW4BkQK0 Af8IGQHxAbQCAAFMAXQBSwp4AUsBUgFLAf8B2gG0AW4BTAHzAf8BBwFuAZECtAFuAf8CAAFyAggBBwGY
AW4B/wIAAXICCAEHAZgBcgHsAW8CFwFvAfgBtAG7AbQBrgEAAf8BtAH/CBkB8wG0AgABUgF0AUwGeAFX AXIB7AFvAhcBbwHsAbQBuwG0Aa4BAAH/AbQB/wgZAfMBtAIAAVIBdAFMBngBVwNWAUsBUgFLAf8B2wG1
A1YBSwFSAUsB/wHbAbUCTAEbAfADbwGTAW8BtAEJAf8BAAFyAggBmAEcAW8BFwHjAZQB4wEXAUwBbwGR AkwBGwHwA28BkwFvAbQBCQH/AQABcgIIAZgBHAFvARcB4wGUAeMBFwFMAW8BkQG0AbUBAAH/AbMB/wgZ
AbQBtQEAAf8BswH1CBkB9QGzAf8BAAFSAXQBTAGXAVUBlwJWAXcBnQGzAtQBSwFSAUsBAAH/Ae8BTAFG Af8BswH/AQABUgF0AUwBlwFVAZcCVgF3AZ0BswLUAUsBUgFLAQAB/wHvAUwBRgEHAW8BaQFvAfQB7wJv
AQcBbwFpAW8B9AHvAm8BCQHcAQABcgEIAZgBcgFvAeMDlAFvAuMBFwFMAfMB/wIAAbQB9QgZAf8BtAH/ AQkB3AEAAXIBCAGYAXIBbwHjA5QBbwLjARcBTAHzAf8CAAG0Af8IGQH/AbQB/wEAAVIBdAFSApcCVQG6
AQABUgF0AVIClwJVAboF2wFLAVIBSwIAAfACRgFvAmkBvAH/Ae8CbgLcAQABcgKYAXIBFwG9A5QB4wFv BdsBSwFSAUsCAAHwAkYBbwJpAbwB/wHvAm4C3AEAAXICmAFyARcBvQOUAeMBbwLjARcB9AMAAbQB8wgZ
AuMBFwH0AwABtAHzCBkB/wG0Af8BAAFSAXQBUgGXAlUE2wG7AZgBegFLAVIBSwIAAfABRgJMAW8BBwHz Af8BtAH/AQABUgF0AVIBlwJVBNsBuwGYAXoBSwFSAUsCAAHwAUYCTAFvAQcB8wEZAe0BbgFvAfQB/wEA
ARkB7QFuAW8B9AH/AQAB7wF4AnIBFwG9AZQD4wJvAeMBFwH0AwABuwEZAfQHGQH/ArQB9AFSAXQBUgKW Ae8BeAJyARcBvQGUA+MCbwHjARcB9AMAAbsBGQH0BxkB/wK0AfQBUgF0AVIClgG6BNsBmQF6AZoBSwFS
AboE2wGZAXoBmgFLAVIBSwIAAfADTAGTAf8BAAH/Ae8BbgFvAf8CAAH/AfQB8gFyARcBlALjApQC4wFv AUsCAAHwA0wBkwH/AQAB/wHvAW4BbwH/AgAB/wH0AfIBcgEXAZQC4wKUAuMBbwEXAfQDAAIJAf8HGQH/
ARcB9AMAAgkB9QcZAf8BtAEZAbQBUgF0AVIH2wF6ApoBSwFSAUsCAAHwAUYBaQFvAf8CAAH/Ae8BbgFv AbQBGQG0AVIBdAFSB9sBegKaAUsBUgFLAgAB8AFGAWkBbwH/AgAB/wHvAW4BbwH/BgABbwEWAZQB4wIX
Af8GAAFvARYBlAHjAhcB4wGUARYBTAH1AwACCQH/BBkD9AH/AbQB/wG7AVIBeQVSAkwFSwF0AUsCAAHz AeMBlAEWAUwB/wMAAgkB/wQZA/QB/wG0Af8BuwFSAXkFUgJMBUsBdAFLAgAB8wKTAfQDAAH/AbwCkwH/
ApMB9AMAAf8BvAKTAf8GAAGTA+MCFgPjAZMEAAHxAQkB/wT0AvUC/wH1ARkBtAFSA3kLdAFLFAAB/wH0 BgABkwPjAhYD4wGTBAAB8QEJAf8E9AX/ARkBtAFSA3kLdAFLFAAB/wH0AfMBbwIXAW8B8wH0Af8EAAHy
AfMBbwIXAW8B8wH0Af8EAAHyAdwE/wH1AfQDGQEJAboB8wlSAkwFSyIAAfQBCQHcAdsBugG0AroBuwMJ AdwF/wH0AxkBCQG6AfMJUgJMBUsiAAH0AQkB3AHbAboBtAK6AbsDCQH0Af8QAAFCAU0BPgcAAT4DAAEo
AfQB/xAAAUIBTQE+BwABPgMAASgDAAFAAwABMAMAAQEBAAEBBQABgAEBFgAD/wEAAv8GAAHwASAGAAHw AwABQAMAATADAAEBAQABAQUAAYABARYAA/8BAAT/BAAB8AEgBgAB8AEgBgAB/AEwBgAB/AcAAf4HAAEI
ASAGAAH8ATAGAAH8BwAB/gcAAQgBEQYAAQwBAQcAAQEGAAHABwABwAcAAeAHAAHgAT8GAAHwAR8GAAHg AREGAAEMAQEHAAEBBgABwAcAAcAHAAHgBwAB4AE/BgAB8AEfBgAB4AEfBgAE/wQAAfMBPwL/AeABBwH8
AR8GAAL/BgAB8wE/Av8B4AEHAfwBAwHzAT8C/wHAAQMB/AEDAfMBPwHAAT8BAAEBAfwBAwHzAR8BgAEH AQMB8wE/Av8BwAEDAfwBAwHzAT8BwAE/AQABAQH8AQMB8wEfAYABBwEAAQEBhAEDAeABAwGAAQECAAGE
AQABAQGEAQMB4AEDAYABAQIAAYQBAQHgAQMBgAEBAgABhAEAAeABBwGAAQECAAGEAQAB+QGfAYABAQIA AQEB4AEDAYABAQIAAYQBAAHgAQcBgAEBAgABhAEAAfkBnwGAAQECAAGAAQAB+QGPAeABBwIAAYABAQHg
AYABAAH5AY8B4AEHAgABgAEBAeABAwHgAQcCAAGAAT8B4AEDAeABBwIAAYQBHwH8Ac8BwAEHAgABhAEf AQMB4AEHAgABgAE/AeABAwHgAQcCAAGEAR8B/AHPAcABBwIAAYQBHwH8Ac8BwAEHAYABAAGAAR8B/AHH
AfwBzwHAAQcBgAEAAYABHwH8AccB4AEHAYABAQGAAT8B/AFHAfABDwHAAQMBgAX/AeABBwT/Af4BAwEA AeABBwGAAQEBgAE/AfwBRwHwAQ8BwAEDAYAF/wHgAQcE/wH+AQMBAAEDBP8B/AIAAQMC/wHDAYMB8AIA
AQME/wH8AgABAwL/AcMBgwHwAgABAwIAAcMBgwGAAgABAwIAAcEBAwMAAQMDAAEDAgABgAEDAwABAwIA AQMCAAHDAYMBgAIAAQMCAAHBAQMDAAEDAwABAwIAAYABAwMAAQMCAAGAAQMDAAEBAgABgAEBAgABgAEB
AYABAwMAAQECAAGAAQECAAGAAQECAAHAAQECAAHAAQEBAAEBAcABAQIAAcABAQEAAQEBwAMAAcABgwEA AgABwAEBAgABwAEBAQABAQHAAQECAAHAAQEBAAEBAcADAAHAAYMBAAEBAcADAAHBAYMB8AEBAcADAAHD
AQEBwAMAAcEBgwHwAQEBwAMAAcMBgwHwAQMBwAMAAv8B8AEDAcADAAT/AcABAAL/Cw== AYMB8AEDAcADAAL/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" />

View File

@ -0,0 +1,137 @@
partial class XMLContentEditor
{
/// <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()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(XMLContentEditor));
this.XMLStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.contentProvidersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.partColorsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.XMLView = new System.Windows.Forms.DataGridView();
this.XMLStrip.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.XMLView)).BeginInit();
this.SuspendLayout();
//
// XMLStrip
//
this.XMLStrip.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.XMLStrip.BackColor = System.Drawing.Color.Transparent;
this.XMLStrip.Dock = System.Windows.Forms.DockStyle.None;
this.XMLStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem});
this.XMLStrip.Location = new System.Drawing.Point(0, 0);
this.XMLStrip.Name = "XMLStrip";
this.XMLStrip.Size = new System.Drawing.Size(45, 24);
this.XMLStrip.TabIndex = 29;
this.XMLStrip.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.loadToolStripMenuItem,
this.saveToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "File";
//
// loadToolStripMenuItem
//
this.loadToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.contentProvidersToolStripMenuItem,
this.partColorsToolStripMenuItem});
this.loadToolStripMenuItem.Name = "loadToolStripMenuItem";
this.loadToolStripMenuItem.Size = new System.Drawing.Size(100, 22);
this.loadToolStripMenuItem.Text = "Load";
//
// contentProvidersToolStripMenuItem
//
this.contentProvidersToolStripMenuItem.Name = "contentProvidersToolStripMenuItem";
this.contentProvidersToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
this.contentProvidersToolStripMenuItem.Text = "Content Providers";
this.contentProvidersToolStripMenuItem.Click += new System.EventHandler(this.contentProvidersToolStripMenuItem_Click);
//
// partColorsToolStripMenuItem
//
this.partColorsToolStripMenuItem.Name = "partColorsToolStripMenuItem";
this.partColorsToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
this.partColorsToolStripMenuItem.Text = "Part Colors";
this.partColorsToolStripMenuItem.Click += new System.EventHandler(this.partColorsToolStripMenuItem_Click);
//
// saveToolStripMenuItem
//
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.saveToolStripMenuItem.Text = "Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
//
// XMLView
//
this.XMLView.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.XMLView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.XMLView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.XMLView.BackgroundColor = System.Drawing.SystemColors.ControlLightLight;
this.XMLView.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.XMLView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.XMLView.Location = new System.Drawing.Point(0, 24);
this.XMLView.Name = "XMLView";
this.XMLView.Size = new System.Drawing.Size(800, 426);
this.XMLView.TabIndex = 30;
//
// XMLContentEditor
//
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(800, 450);
this.Controls.Add(this.XMLView);
this.Controls.Add(this.XMLStrip);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MinimumSize = new System.Drawing.Size(340, 210);
this.Name = "XMLContentEditor";
this.Text = "XML Content Editor";
this.XMLStrip.ResumeLayout(false);
this.XMLStrip.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.XMLView)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.MenuStrip XMLStrip;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem contentProvidersToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem partColorsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
private System.Windows.Forms.DataGridView XMLView;
}

View File

@ -0,0 +1,222 @@
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.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
enum XMLContentType
{
ContentProviders,
PartColors
}
public partial class XMLContentEditor : Form
{
public PartColor[] PartColorList;
public Provider[] contentProviders;
List<object> loaderList = new List<object>();
XMLContentType ListType;
public XMLContentEditor()
{
InitializeComponent();
}
private void LoadXML(XMLContentType type)
{
loaderList.Clear();
switch (type)
{
case XMLContentType.ContentProviders:
if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName))
{
contentProviders = OnlineClothing.GetContentProviders();
}
else
{
MessageBox.Show("Cannot load the Content Provider list because the Content Provider XML file does not exist", "XML Content Editor - Content Provider Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
loaderList.AddRange(contentProviders);
break;
case XMLContentType.PartColors:
if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName))
{
PartColorList = PartColorLoader.GetPartColors();
}
else
{
MessageBox.Show("Cannot load the Part Color list because the Part Color XML file does not exist", "XML Content Editor - Part Color Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
loaderList.AddRange(PartColorList);
break;
default:
break;
}
XMLView.Rows.Clear();
XMLView.Columns.Clear();
if (loaderList.Count > 0)
{
if (loaderList.OfType<Provider>().Any())
{
XMLView.ColumnCount = 3;
XMLView.Columns[0].Name = "Name";
XMLView.Columns[1].Name = "URL";
XMLView.Columns[2].Name = "Icon File";
ListType = XMLContentType.ContentProviders;
}
else if (loaderList.OfType<PartColor>().Any())
{
XMLView.ColumnCount = 3;
XMLView.Columns[0].Name = "Name";
XMLView.Columns[1].Name = "ID";
XMLView.Columns[2].Name = "RGB Value";
ListType = XMLContentType.PartColors;
}
foreach (var obj in loaderList)
{
if (obj is Provider)
{
Provider pro = obj as Provider;
string[] providerRow = new string[] { pro.Name, pro.URL, pro.Icon };
XMLView.Rows.Add(providerRow);
}
else if (obj is PartColor)
{
PartColor pc = obj as PartColor;
string[] partColorRow = new string[] { pc.ColorName, pc.ColorID.ToString(), pc.ColorRGB };
XMLView.Rows.Add(partColorRow);
}
}
}
else
{
MessageBox.Show("Unable to load XML file information because no information exists in the XML file.", "XML Content Editor - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//this is completely fucking dumb.
private string GenerateComment(string add)
{
return "Novetus reads through this file in order to grab " + add + " for the Avatar Customization.";
}
private void contentProvidersToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadXML(XMLContentType.ContentProviders);
}
private void partColorsToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadXML(XMLContentType.PartColors);
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
List<Provider> providerList = new List<Provider>();
List<PartColor> partColorList = new List<PartColor>();
foreach (DataGridViewRow data in XMLView.Rows)
{
if (data.IsNewRow) continue;
//https://stackoverflow.com/questions/8255186/how-to-check-empty-and-null-cells-in-datagridview-using-c-sharp
for (int i = 0; i < data.Cells.Count; i++)
{
if (data.Cells[i].Value == null || data.Cells[i].Value == DBNull.Value || string.IsNullOrWhiteSpace(data.Cells[i].Value.ToString()))
{
continue;
}
}
switch (ListType)
{
case XMLContentType.ContentProviders:
Provider pro = new Provider();
pro.Name = data.Cells[0].Value.ToString();
pro.URL = data.Cells[1].Value.ToString();
pro.Icon = data.Cells[2].Value.ToString();
providerList.Add(pro);
break;
case XMLContentType.PartColors:
PartColor pc = new PartColor();
pc.ColorName = data.Cells[0].Value.ToString();
pc.ColorID = Convert.ToInt32(data.Cells[1].Value);
pc.ColorRGB = data.Cells[2].Value.ToString();
partColorList.Add(pc);
break;
default:
break;
}
}
//https://stackoverflow.com/questions/2129414/how-to-insert-xml-comments-in-xml-serialization
switch (ListType)
{
case XMLContentType.ContentProviders:
ContentProviders providers = new ContentProviders();
providers.Providers = providerList.ToArray();
XmlSerializer ser = new XmlSerializer(typeof(ContentProviders));
using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName, FileMode.Create))
{
XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings { Indent = true });
writer.WriteStartDocument();
writer.WriteComment(GenerateComment("content providers"));
ser.Serialize(writer, providers);
writer.WriteEndDocument();
writer.Flush();
}
break;
case XMLContentType.PartColors:
PartColors partColors = new PartColors();
partColors.ColorList = partColorList.ToArray();
XmlSerializer ser2 = new XmlSerializer(typeof(PartColors));
using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName, FileMode.Create))
{
XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings { Indent = true });
writer.WriteStartDocument();
writer.WriteComment(GenerateComment("part colors"));
ser2.Serialize(writer, partColors);
writer.WriteEndDocument();
writer.Flush();
}
break;
default:
break;
}
providerList.Clear();
partColorList.Clear();
string fileName = "";
switch (ListType)
{
case XMLContentType.ContentProviders:
fileName = GlobalPaths.ContentProviderXMLName;
break;
case XMLContentType.PartColors:
fileName = GlobalPaths.PartColorXMLName;
break;
default:
break;
}
MessageBox.Show(fileName + " has been saved! The list will now reload.", "XML Content Editor - File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
LoadXML(ListType);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,6 @@ using System.Net;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using static System.Windows.Forms.ListViewItem;
#endregion #endregion
namespace NovetusLauncher namespace NovetusLauncher
@ -58,7 +57,7 @@ namespace NovetusLauncher
{ {
var serverItem = new ListViewItem(server.ServerName); var serverItem = new ListViewItem(server.ServerName);
var serverClient = new ListViewSubItem(serverItem, server.ServerClient); var serverClient = new ListViewItem.ListViewSubItem(serverItem, server.ServerClient);
serverItem.SubItems.Add(serverClient); serverItem.SubItems.Add(serverClient);
ServerListView.Items.Add(serverItem); ServerListView.Items.Add(serverItem);

View File

@ -219,6 +219,12 @@
<Compile Include="Forms\SDK\SplashTester.Designer.cs"> <Compile Include="Forms\SDK\SplashTester.Designer.cs">
<DependentUpon>SplashTester.cs</DependentUpon> <DependentUpon>SplashTester.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Forms\SDK\XMLContentEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\SDK\XMLContentEditor.Designer.cs">
<DependentUpon>XMLContentEditor.cs</DependentUpon>
</Compile>
<Compile Include="Forms\ServerBrowser.cs"> <Compile Include="Forms\ServerBrowser.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -281,6 +287,9 @@
<EmbeddedResource Include="Forms\SDK\SplashTester.resx"> <EmbeddedResource Include="Forms\SDK\SplashTester.resx">
<DependentUpon>SplashTester.cs</DependentUpon> <DependentUpon>SplashTester.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\SDK\XMLContentEditor.resx">
<DependentUpon>XMLContentEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ServerBrowser.resx"> <EmbeddedResource Include="Forms\ServerBrowser.resx">
<DependentUpon>ServerBrowser.cs</DependentUpon> <DependentUpon>ServerBrowser.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B