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()
{
PartColorList = PartColorLoader.GetPartColors();
for (int i = 0; i < PartColorList.Length; i++)
try
{
string[] rgbValues = PartColorList[i].ColorRGB.Replace(" ", "").Split(',');
PartColorList[i].ColorObject = Color.FromArgb(Convert.ToInt32(rgbValues[0]), Convert.ToInt32(rgbValues[1]), Convert.ToInt32(rgbValues[2]));
if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName))
{
PartColorList = PartColorLoader.GetPartColors();
PartColorListConv = new List<PartColor>();
PartColorListConv.AddRange(PartColorList);
return;
}
else
{
goto Failure;
}
}
catch (Exception)
{
goto Failure;
}
PartColorListConv = new List<PartColor>();
PartColorListConv.AddRange(PartColorList);
Failure:
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

View File

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

View File

@ -1,7 +1,9 @@
#region Usings
using System;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Serialization;
#endregion
@ -11,6 +13,7 @@ public class PartColor
public string ColorName;
public int ColorID;
public string ColorRGB;
[XmlIgnore]
public Color ColorObject;
}
@ -34,6 +37,12 @@ public class PartColorLoader
colors = (PartColors)serializer.Deserialize(fs);
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;
}
else

View File

@ -13,15 +13,16 @@ using System.Xml;
#region SDKApps
enum SDKApps
{
ClientSDK = 0,
AssetSDK = 1,
ItemCreationSDK = 2,
ClientScriptDoc = 3,
SplashTester = 4,
ScriptGenerator = 5,
LegacyPlaceConverter = 6,
DiogenesEditor = 7,
ClientScriptTester = 8
ClientSDK,
AssetSDK,
ItemCreationSDK,
ClientScriptDoc,
SplashTester,
ScriptGenerator,
LegacyPlaceConverter,
DiogenesEditor,
ClientScriptTester,
XMLContentEditor
}
#endregion
@ -1164,32 +1165,5 @@ class SDKFuncs
}
}
#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

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

View File

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

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B