From c2ecc53df7a8d954d666820b817641cc12dcbde0 Mon Sep 17 00:00:00 2001 From: Bitl Date: Thu, 25 Jan 2024 21:19:10 -0700 Subject: [PATCH] converted content providers and part colors to json --- .../CharacterCustomizationShared.cs | 20 +- .../Compact/CharacterCustomizationCompact.cs | 24 +- .../CharacterCustomizationExtended.cs | 24 +- .../StorageAndFunctions/FileManagement.cs | 60 +- .../StorageAndFunctions/GlobalPaths.cs | 4 +- .../Forms/SDK/AssetDownloader.cs | 4 +- .../NovetusLauncher/Forms/SDK/AssetFixer.cs | 4 +- .../Forms/SDK/ClientinfoCreator.Designer.cs | 82 ++- .../Forms/SDK/ClientinfoCreator.cs | 39 +- .../Forms/SDK/NovetusSDK.Designer.cs | 2 +- .../NovetusLauncher/Forms/SDK/NovetusSDK.resx | 8 +- .../Forms/SDK/XMLContentEditor.Designer.cs | 2 +- .../Forms/SDK/XMLContentEditor.cs | 57 +- .../Forms/SDK/XMLContentEditor.resx | 2 +- README-AND-CREDITS.TXT | 2 +- changelog.txt | 7 +- .../launcher => old}/ContentProviders.xml | 0 {scripts/launcher => old}/PartColors.xml | 0 scripts/NovetusDependencyInstaller.nsi | 69 ++ scripts/WMP_instructions.txt | 3 + scripts/batch/clean_junk.bat | 2 + scripts/batch/github_sync.bat | 8 +- scripts/launcher/ContentProviders.json | 22 + scripts/launcher/PartColors.json | 697 ++++++++++++++++++ 24 files changed, 962 insertions(+), 180 deletions(-) rename {scripts/launcher => old}/ContentProviders.xml (100%) rename {scripts/launcher => old}/PartColors.xml (100%) create mode 100644 scripts/NovetusDependencyInstaller.nsi create mode 100644 scripts/WMP_instructions.txt create mode 100644 scripts/launcher/ContentProviders.json create mode 100644 scripts/launcher/PartColors.json diff --git a/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs b/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs index 11de58d..9a44a37 100644 --- a/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs +++ b/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs @@ -63,7 +63,7 @@ class CharacterCustomizationShared if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName)) { - contentProviders = OnlineClothing.GetContentProviders(); + contentProviders = ContentProviderLoader.GetContentProviders(); for (int i = 0; i < contentProviders.Length; i++) { @@ -76,7 +76,7 @@ class CharacterCustomizationShared //face if (GlobalVars.UserCustomization.ReadSetting("Face").Contains("http://") || GlobalVars.UserCustomization.ReadSetting("Face").Contains("https://")) { - Provider faceProvider = OnlineClothing.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("Face")); + Provider faceProvider = ContentProviderLoader.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("Face")); FaceIDBox.Text = GlobalVars.UserCustomization.ReadSetting("Face").Replace(faceProvider.URL, ""); FaceTypeBox.SelectedItem = faceProvider.Name; } @@ -84,21 +84,21 @@ class CharacterCustomizationShared //clothing if (GlobalVars.UserCustomization.ReadSetting("TShirt").Contains("http://") || GlobalVars.UserCustomization.ReadSetting("TShirt").Contains("https://")) { - Provider tShirtProvider = OnlineClothing.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("TShirt")); + Provider tShirtProvider = ContentProviderLoader.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("TShirt")); TShirtsIDBox.Text = GlobalVars.UserCustomization.ReadSetting("TShirt").Replace(tShirtProvider.URL, ""); TShirtsTypeBox.SelectedItem = tShirtProvider.Name; } if (GlobalVars.UserCustomization.ReadSetting("Shirt").Contains("http://") || GlobalVars.UserCustomization.ReadSetting("Shirt").Contains("https://")) { - Provider shirtProvider = OnlineClothing.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("Shirt")); + Provider shirtProvider = ContentProviderLoader.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("Shirt")); ShirtsIDBox.Text = GlobalVars.UserCustomization.ReadSetting("Shirt").Replace(shirtProvider.URL, ""); ShirtsTypeBox.SelectedItem = shirtProvider.Name; } if (GlobalVars.UserCustomization.ReadSetting("Pants").Contains("http://") || GlobalVars.UserCustomization.ReadSetting("Pants").Contains("https://")) { - Provider pantsProvider = OnlineClothing.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("Pants")); + Provider pantsProvider = ContentProviderLoader.FindContentProviderByURL(contentProviders, GlobalVars.UserCustomization.ReadSetting("Pants")); PantsIDBox.Text = GlobalVars.UserCustomization.ReadSetting("Pants").Replace(pantsProvider.URL, ""); PantsTypeBox.SelectedItem = pantsProvider.Name; } @@ -300,7 +300,7 @@ class CharacterCustomizationShared FaceDesc, FaceList, true, - FaceTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(contentProviders, FaceTypeBox.SelectedItem.ToString()) : null + FaceTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(contentProviders, FaceTypeBox.SelectedItem.ToString()) : null ); break; @@ -327,7 +327,7 @@ class CharacterCustomizationShared TShirtDesc, TShirtList, true, - TShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null + TShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null ); break; @@ -354,7 +354,7 @@ class CharacterCustomizationShared ShirtDesc, ShirtList, true, - ShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null + ShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null ); break; @@ -381,7 +381,7 @@ class CharacterCustomizationShared PantsDesc, PantsList, true, - PantsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(contentProviders, PantsTypeBox.SelectedItem.ToString()) : null + PantsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(contentProviders, PantsTypeBox.SelectedItem.ToString()) : null ); break; @@ -664,7 +664,7 @@ class CharacterCustomizationShared public void ChangeItem(string item, string itemdir, string defaultitem, PictureBox outputImage, TextBox outputString, ListBox box, bool initial, bool hatsinextra = false, string itemdir2 = "") { - ChangeItem(item, itemdir, defaultitem, outputImage, outputString, box, initial, null, hatsinextra, itemdir); + ChangeItem(item, itemdir, defaultitem, outputImage, outputString, box, initial, null, hatsinextra, itemdir2); } public void ChangeItem(string item, string itemdir, string defaultitem, PictureBox outputImage, TextBox outputString, ListBox box, bool initial, Provider provider, bool hatsinextra = false, string itemdir2 = "") diff --git a/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs b/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs index 9635c93..84d2f24 100644 --- a/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs +++ b/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs @@ -148,7 +148,7 @@ public partial class CharacterCustomizationCompact : Form textBox6, listBox4, false, - FaceTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null + FaceTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null ); } } @@ -203,7 +203,7 @@ public partial class CharacterCustomizationCompact : Form textBox6, listBox4, false, - FaceTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null + FaceTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null ); } @@ -213,7 +213,7 @@ public partial class CharacterCustomizationCompact : Form if (FaceTypeBox.SelectedItem != null) { - faceProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()); + faceProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_Face_URL = faceProvider.URL; } @@ -261,7 +261,7 @@ public partial class CharacterCustomizationCompact : Form textBox7, listBox5, false, - TShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null + TShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null ); } } @@ -316,7 +316,7 @@ public partial class CharacterCustomizationCompact : Form textBox7, listBox5, false, - TShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null + TShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null ); } @@ -326,7 +326,7 @@ public partial class CharacterCustomizationCompact : Form if (TShirtsTypeBox.SelectedItem != null) { - tShirtProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()); + tShirtProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_T_Shirt_URL = tShirtProvider.URL; } @@ -373,7 +373,7 @@ public partial class CharacterCustomizationCompact : Form textBox8, listBox6, false, - ShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null + ShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null ); } } @@ -428,7 +428,7 @@ public partial class CharacterCustomizationCompact : Form textBox8, listBox6, false, - ShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null + ShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null ); } @@ -438,7 +438,7 @@ public partial class CharacterCustomizationCompact : Form if (ShirtsTypeBox.SelectedItem != null) { - shirtProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()); + shirtProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_Shirt_URL = shirtProvider.URL; } @@ -485,7 +485,7 @@ public partial class CharacterCustomizationCompact : Form textBox9, listBox7, false, - PantsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null + PantsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null ); } } @@ -540,7 +540,7 @@ public partial class CharacterCustomizationCompact : Form textBox9, listBox7, false, - PantsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null + PantsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null ); } @@ -550,7 +550,7 @@ public partial class CharacterCustomizationCompact : Form if (PantsTypeBox.SelectedItem != null) { - pantsProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()); + pantsProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_Pants_URL = pantsProvider.URL; } diff --git a/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs b/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs index 28c7c0e..91cde40 100644 --- a/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs +++ b/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs @@ -150,7 +150,7 @@ public partial class CharacterCustomizationExtended : Form textBox6, listBox4, false, - FaceTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null + FaceTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null ); } } @@ -205,7 +205,7 @@ public partial class CharacterCustomizationExtended : Form textBox6, listBox4, false, - FaceTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null + FaceTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()) : null ); } @@ -215,7 +215,7 @@ public partial class CharacterCustomizationExtended : Form if (FaceTypeBox.SelectedItem != null) { - faceProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()); + faceProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, FaceTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_Face_URL = faceProvider.URL; } @@ -263,7 +263,7 @@ public partial class CharacterCustomizationExtended : Form textBox7, listBox5, false, - TShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null + TShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null ); } } @@ -318,7 +318,7 @@ public partial class CharacterCustomizationExtended : Form textBox7, listBox5, false, - TShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null + TShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()) : null ); } @@ -328,7 +328,7 @@ public partial class CharacterCustomizationExtended : Form if (TShirtsTypeBox.SelectedItem != null) { - tShirtProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()); + tShirtProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, TShirtsTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_T_Shirt_URL = tShirtProvider.URL; } @@ -375,7 +375,7 @@ public partial class CharacterCustomizationExtended : Form textBox8, listBox6, false, - ShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null + ShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null ); } } @@ -430,7 +430,7 @@ public partial class CharacterCustomizationExtended : Form textBox8, listBox6, false, - ShirtsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null + ShirtsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()) : null ); } @@ -440,7 +440,7 @@ public partial class CharacterCustomizationExtended : Form if (ShirtsTypeBox.SelectedItem != null) { - shirtProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()); + shirtProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, ShirtsTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_Shirt_URL = shirtProvider.URL; } @@ -487,7 +487,7 @@ public partial class CharacterCustomizationExtended : Form textBox9, listBox7, false, - PantsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null + PantsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null ); } } @@ -542,7 +542,7 @@ public partial class CharacterCustomizationExtended : Form textBox9, listBox7, false, - PantsTypeBox.SelectedItem != null ? OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null + PantsTypeBox.SelectedItem != null ? ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()) : null ); } @@ -552,7 +552,7 @@ public partial class CharacterCustomizationExtended : Form if (PantsTypeBox.SelectedItem != null) { - pantsProvider = OnlineClothing.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()); + pantsProvider = ContentProviderLoader.FindContentProviderByName(characterCustomizationForm.contentProviders, PantsTypeBox.SelectedItem.ToString()); characterCustomizationForm.Custom_Pants_URL = pantsProvider.URL; } diff --git a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs index 3eb75db..f48b0fc 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/FileManagement.cs @@ -13,6 +13,7 @@ using System.Windows.Forms; using System.Xml.Serialization; using System.Xml; using System.Xml.Linq; +using Newtonsoft.Json; #endregion namespace Novetus.Core @@ -387,43 +388,30 @@ namespace Novetus.Core #endregion #region Part Color Options + [JsonObject(MemberSerialization.OptIn)] public class PartColor { + [JsonProperty] public string ColorName; + [JsonProperty] public int ColorID; + [JsonProperty] public string ColorRGB; - [XmlIgnore] public Color ColorObject; - [XmlIgnore] public string ColorGroup; - [XmlIgnore] public string ColorRawName; - [XmlIgnore] public Bitmap ColorImage; } - [XmlRoot("PartColors")] - public class PartColors - { - [XmlArray("ColorList")] - public PartColor[] ColorList; - } - public class PartColorLoader { public static PartColor[] GetPartColors() { if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName)) { - XmlSerializer serializer = new XmlSerializer(typeof(PartColors)); - PartColors colors; + List colors = JsonConvert.DeserializeObject>(File.ReadAllText(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName)); - using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName, FileMode.Open)) - { - colors = (PartColors)serializer.Deserialize(fs); - } - - foreach (var item in colors.ColorList) + foreach (var item in colors) { string colorFixed = Regex.Replace(item.ColorRGB, @"[\[\]\{\}\(\)\<\> ]", ""); string[] rgbValues = colorFixed.Split(','); @@ -446,7 +434,7 @@ namespace Novetus.Core item.ColorImage = GeneratePartColorIcon(item, 128); } - return colors.ColorList; + return colors.ToArray(); } else { @@ -552,35 +540,25 @@ namespace Novetus.Core #endregion #region Content Provider Options + [JsonObject(MemberSerialization.OptIn)] public class Provider { + [JsonProperty] public string Name; + [JsonProperty] public string URL; + [JsonProperty] public string Icon; } - [XmlRoot("ContentProviders")] - public class ContentProviders - { - [XmlArray("Providers")] - public Provider[] Providers; - } - - public class OnlineClothing + public class ContentProviderLoader { public static Provider[] GetContentProviders() { if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName)) { - XmlSerializer serializer = new XmlSerializer(typeof(ContentProviders)); - ContentProviders providers; - - using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName, FileMode.Open)) - { - providers = (ContentProviders)serializer.Deserialize(fs); - } - - return providers.Providers; + List providers = JsonConvert.DeserializeObject>(File.ReadAllText(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName)); + return providers.ToArray(); } else { @@ -994,7 +972,7 @@ namespace Novetus.Core if (GlobalVars.ExternalIP.Equals("localhost")) return ""; - if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%")) + if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeContentProviderLoader%")) return ""; if (item.Contains("http://") || item.Contains("https://")) @@ -1035,7 +1013,7 @@ namespace Novetus.Core if (GlobalVars.ExternalIP.Equals("localhost")) return ""; - if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeonlineclothing%")) + if (!GlobalVars.SelectedClientInfo.CommandLineArgs.Contains("%localizeContentProviderLoader%")) return ""; if (item.Contains("http://") || item.Contains("https://")) @@ -1074,7 +1052,7 @@ namespace Novetus.Core return ""; } - public static void ReloadLoadoutValue(bool localizeOnlineClothing = false) + public static void ReloadLoadoutValue(bool localizeContentProviderLoader = false) { string hat1 = (!GlobalVars.UserCustomization.ReadSetting("Hat1").EndsWith("-Solo.rbxm")) ? GlobalVars.UserCustomization.ReadSetting("Hat1") : "NoHat.rbxm"; string hat2 = (!GlobalVars.UserCustomization.ReadSetting("Hat2").EndsWith("-Solo.rbxm")) ? GlobalVars.UserCustomization.ReadSetting("Hat2") : "NoHat.rbxm"; @@ -1100,7 +1078,7 @@ namespace Novetus.Core baseClothing + extra + "'"; - if (localizeOnlineClothing) + if (localizeContentProviderLoader) { GlobalVars.TShirtTextureID = GetItemTextureID(GlobalVars.UserCustomization.ReadSetting("TShirt"), "TShirt", new AssetCacheDefBasic("ShirtGraphic", new string[] { "Graphic" })); GlobalVars.ShirtTextureID = GetItemTextureID(GlobalVars.UserCustomization.ReadSetting("Shirt"), "Shirt", new AssetCacheDefBasic("Shirt", new string[] { "ShirtTemplate" })); diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs index 5dc6085..4ef5643 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs @@ -116,8 +116,8 @@ namespace Novetus.Core public static readonly string InfoName = "info.ini"; public static readonly string ScriptName = "CSMPFunctions"; public static readonly string ScriptGenName = "CSMPBoot"; - public static readonly string ContentProviderXMLName = "ContentProviders.xml"; - public static readonly string PartColorXMLName = "PartColors.xml"; + public static readonly string ContentProviderXMLName = "ContentProviders.json"; + public static readonly string PartColorXMLName = "PartColors.json"; public static readonly string FileDeleteFilterName = "FileDeleteFilter.txt"; public static readonly string InitialFileListIgnoreFilterName = "InitialFileListIgnoreFilter.txt"; public static readonly string ServerInfoFileName = "serverinfo.txt"; diff --git a/Novetus/NovetusLauncher/Forms/SDK/AssetDownloader.cs b/Novetus/NovetusLauncher/Forms/SDK/AssetDownloader.cs index 1d35a47..55633ca 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/AssetDownloader.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/AssetDownloader.cs @@ -39,7 +39,7 @@ public partial class AssetDownloader : Form //shared if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName)) { - contentProviders = OnlineClothing.GetContentProviders(); + contentProviders = ContentProviderLoader.GetContentProviders(); for (int i = 0; i < contentProviders.Length; i++) { @@ -105,7 +105,7 @@ public partial class AssetDownloader : Form } else { - Provider pro = OnlineClothing.FindContentProviderByName(contentProviders, URLSelection.SelectedItem.ToString()); + Provider pro = ContentProviderLoader.FindContentProviderByName(contentProviders, URLSelection.SelectedItem.ToString()); if (pro != null) { url = pro.URL; diff --git a/Novetus/NovetusLauncher/Forms/SDK/AssetFixer.cs b/Novetus/NovetusLauncher/Forms/SDK/AssetFixer.cs index 395c62b..57626a7 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/AssetFixer.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/AssetFixer.cs @@ -42,7 +42,7 @@ public partial class AssetFixer : Form //shared if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName)) { - contentProviders = OnlineClothing.GetContentProviders(); + contentProviders = ContentProviderLoader.GetContentProviders(); for (int i = 0; i < contentProviders.Length; i++) { @@ -115,7 +115,7 @@ public partial class AssetFixer : Form } else { - Provider pro = OnlineClothing.FindContentProviderByName(contentProviders, URLSelection.SelectedItem.ToString()); + Provider pro = ContentProviderLoader.FindContentProviderByName(contentProviders, URLSelection.SelectedItem.ToString()); if (pro != null) { url = pro.URL; diff --git a/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.Designer.cs b/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.Designer.cs index fc26463..53b3cce 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.Designer.cs @@ -144,7 +144,7 @@ partial class ClientinfoEditor this.iconToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.charappToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.loadoutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.localizeonlineclothingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.localizeContentProviderLoaderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.nameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.idToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.tripcodeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -163,6 +163,7 @@ partial class ClientinfoEditor this.checkBox8 = new System.Windows.Forms.CheckBox(); this.textBox2 = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); + this.jSONToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // @@ -311,7 +312,8 @@ partial class ClientinfoEditor // this.saveAsTextFileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.textToolStripMenuItem, - this.iNIToolStripMenuItem}); + this.iNIToolStripMenuItem, + this.jSONToolStripMenuItem}); this.saveAsTextFileToolStripMenuItem.Name = "saveAsTextFileToolStripMenuItem"; this.saveAsTextFileToolStripMenuItem.Size = new System.Drawing.Size(294, 22); this.saveAsTextFileToolStripMenuItem.Text = "Save As"; @@ -319,14 +321,14 @@ partial class ClientinfoEditor // textToolStripMenuItem // this.textToolStripMenuItem.Name = "textToolStripMenuItem"; - this.textToolStripMenuItem.Size = new System.Drawing.Size(95, 22); + this.textToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.textToolStripMenuItem.Text = "Text"; this.textToolStripMenuItem.Click += new System.EventHandler(this.saveAsTextFileToolStripMenuItem_Click); // // iNIToolStripMenuItem // this.iNIToolStripMenuItem.Name = "iNIToolStripMenuItem"; - this.iNIToolStripMenuItem.Size = new System.Drawing.Size(95, 22); + this.iNIToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.iNIToolStripMenuItem.Text = "INI"; this.iNIToolStripMenuItem.Click += new System.EventHandler(this.saveAsINIFileToolStripMenuItem_Click); // @@ -358,48 +360,48 @@ partial class ClientinfoEditor this.sharedToolStripMenuItem, this.validateToolStripMenuItem}); this.tagsToolStripMenuItem.Name = "tagsToolStripMenuItem"; - this.tagsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.tagsToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.tagsToolStripMenuItem.Text = "Add Tags"; // // clientToolStripMenuItem // this.clientToolStripMenuItem.Name = "clientToolStripMenuItem"; - this.clientToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.clientToolStripMenuItem.Size = new System.Drawing.Size(123, 22); this.clientToolStripMenuItem.Text = "client="; this.clientToolStripMenuItem.Click += new System.EventHandler(this.clientToolStripMenuItem_Click); // // serverToolStripMenuItem // this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; - this.serverToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.serverToolStripMenuItem.Size = new System.Drawing.Size(123, 22); this.serverToolStripMenuItem.Text = "server="; this.serverToolStripMenuItem.Click += new System.EventHandler(this.serverToolStripMenuItem_Click); // // soloToolStripMenuItem // this.soloToolStripMenuItem.Name = "soloToolStripMenuItem"; - this.soloToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.soloToolStripMenuItem.Size = new System.Drawing.Size(123, 22); this.soloToolStripMenuItem.Text = "solo="; this.soloToolStripMenuItem.Click += new System.EventHandler(this.soloToolStripMenuItem_Click); // // studioToolStripMenuItem // this.studioToolStripMenuItem.Name = "studioToolStripMenuItem"; - this.studioToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.studioToolStripMenuItem.Size = new System.Drawing.Size(123, 22); this.studioToolStripMenuItem.Text = "studio="; this.studioToolStripMenuItem.Click += new System.EventHandler(this.studioToolStripMenuItem_Click); // // no3dToolStripMenuItem // this.no3dToolStripMenuItem.Name = "no3dToolStripMenuItem"; - this.no3dToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.no3dToolStripMenuItem.Size = new System.Drawing.Size(123, 22); this.no3dToolStripMenuItem.Text = "no3d="; this.no3dToolStripMenuItem.Click += new System.EventHandler(this.no3dToolStripMenuItem_Click); // // sharedToolStripMenuItem // this.sharedToolStripMenuItem.Name = "sharedToolStripMenuItem"; - this.sharedToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.sharedToolStripMenuItem.Size = new System.Drawing.Size(123, 22); this.sharedToolStripMenuItem.Text = "shared="; this.sharedToolStripMenuItem.Click += new System.EventHandler(this.sharedToolStripMenuItem_Click); // @@ -408,7 +410,7 @@ partial class ClientinfoEditor this.validateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addValidateTagsForRelativePathToolStripMenuItem}); this.validateToolStripMenuItem.Name = "validateToolStripMenuItem"; - this.validateToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.validateToolStripMenuItem.Size = new System.Drawing.Size(123, 22); this.validateToolStripMenuItem.Text = "validate="; this.validateToolStripMenuItem.Click += new System.EventHandler(this.validateToolStripMenuItem_Click); // @@ -428,7 +430,7 @@ partial class ClientinfoEditor this.playerToolStripMenuItem, this.argsToolStripMenuItem}); this.variablesToolStripMenuItem.Name = "variablesToolStripMenuItem"; - this.variablesToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.variablesToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.variablesToolStripMenuItem.Text = "Add Variables"; // // generalToolStripMenuItem @@ -452,7 +454,7 @@ partial class ClientinfoEditor this.generatescriptToolStripMenuItem, this.serverToolStripMenuItem2}); this.generalToolStripMenuItem.Name = "generalToolStripMenuItem"; - this.generalToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.generalToolStripMenuItem.Size = new System.Drawing.Size(116, 22); this.generalToolStripMenuItem.Text = "General"; // // mapfileToolStripMenuItem @@ -581,7 +583,7 @@ partial class ClientinfoEditor this.notificationsToolStripMenuItem, this.portToolStripMenuItem}); this.serverToolStripMenuItem1.Name = "serverToolStripMenuItem1"; - this.serverToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.serverToolStripMenuItem1.Size = new System.Drawing.Size(116, 22); this.serverToolStripMenuItem1.Text = "Server"; // // limitToolStripMenuItem @@ -616,7 +618,7 @@ partial class ClientinfoEditor this.md5sToolStripMenuItem, this.md5sdToolStripMenuItem}); this.securityToolStripMenuItem.Name = "securityToolStripMenuItem"; - this.securityToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.securityToolStripMenuItem.Size = new System.Drawing.Size(116, 22); this.securityToolStripMenuItem.Text = "Security"; // // md5launcherToolStripMenuItem @@ -676,7 +678,7 @@ partial class ClientinfoEditor this.idToolStripMenuItem, this.tripcodeToolStripMenuItem}); this.playerToolStripMenuItem.Name = "playerToolStripMenuItem"; - this.playerToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.playerToolStripMenuItem.Size = new System.Drawing.Size(116, 22); this.playerToolStripMenuItem.Text = "Player"; // // customizationToolStripMenuItem @@ -692,7 +694,7 @@ partial class ClientinfoEditor this.extraToolStripMenuItem, this.charappToolStripMenuItem, this.loadoutToolStripMenuItem, - this.localizeonlineclothingToolStripMenuItem}); + this.localizeContentProviderLoaderToolStripMenuItem}); this.customizationToolStripMenuItem.Name = "customizationToolStripMenuItem"; this.customizationToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.customizationToolStripMenuItem.Text = "Customization"; @@ -707,7 +709,7 @@ partial class ClientinfoEditor this.rarmcolorToolStripMenuItem, this.rlegcolorToolStripMenuItem}); this.bodyColorsToolStripMenuItem.Name = "bodyColorsToolStripMenuItem"; - this.bodyColorsToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.bodyColorsToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.bodyColorsToolStripMenuItem.Text = "Body Colors"; // // headcolorToolStripMenuItem @@ -762,7 +764,7 @@ partial class ClientinfoEditor this.hat2dToolStripMenuItem, this.hat3dToolStripMenuItem}); this.hatsToolStripMenuItem.Name = "hatsToolStripMenuItem"; - this.hatsToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.hatsToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.hatsToolStripMenuItem.Text = "Hats"; // // hat1ToolStripMenuItem @@ -815,7 +817,7 @@ partial class ClientinfoEditor this.facetexidToolStripMenuItem, this.facetexlocalToolStripMenuItem}); this.facesToolStripMenuItem.Name = "facesToolStripMenuItem"; - this.facesToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.facesToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.facesToolStripMenuItem.Text = "Faces"; // // faceToolStripMenuItem @@ -852,7 +854,7 @@ partial class ClientinfoEditor this.headToolStripMenuItem, this.headdToolStripMenuItem}); this.headsToolStripMenuItem.Name = "headsToolStripMenuItem"; - this.headsToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.headsToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.headsToolStripMenuItem.Text = "Heads"; // // headToolStripMenuItem @@ -877,7 +879,7 @@ partial class ClientinfoEditor this.tshirttexidToolStripMenuItem, this.tshirttexidlocalToolStripMenuItem}); this.tShirtsToolStripMenuItem.Name = "tShirtsToolStripMenuItem"; - this.tShirtsToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.tShirtsToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.tShirtsToolStripMenuItem.Text = "T-Shirts"; // // tshirtToolStripMenuItem @@ -916,7 +918,7 @@ partial class ClientinfoEditor this.shirttexidToolStripMenuItem, this.shirttexidlocalToolStripMenuItem}); this.shirtsToolStripMenuItem.Name = "shirtsToolStripMenuItem"; - this.shirtsToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.shirtsToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.shirtsToolStripMenuItem.Text = "Shirts"; // // shirtToolStripMenuItem @@ -955,7 +957,7 @@ partial class ClientinfoEditor this.pantstexidToolStripMenuItem, this.pantstexidlocalToolStripMenuItem}); this.pantsToolStripMenuItem.Name = "pantsToolStripMenuItem"; - this.pantsToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.pantsToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.pantsToolStripMenuItem.Text = "Pants"; // // pantsToolStripMenuItem1 @@ -996,7 +998,7 @@ partial class ClientinfoEditor this.iconeToolStripMenuItem, this.iconToolStripMenuItem}); this.extraToolStripMenuItem.Name = "extraToolStripMenuItem"; - this.extraToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.extraToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.extraToolStripMenuItem.Text = "Extra"; // // extraToolStripMenuItem1 @@ -1044,23 +1046,23 @@ partial class ClientinfoEditor // charappToolStripMenuItem // this.charappToolStripMenuItem.Name = "charappToolStripMenuItem"; - this.charappToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.charappToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.charappToolStripMenuItem.Text = "%charapp%"; this.charappToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // loadoutToolStripMenuItem // this.loadoutToolStripMenuItem.Name = "loadoutToolStripMenuItem"; - this.loadoutToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.loadoutToolStripMenuItem.Size = new System.Drawing.Size(256, 22); this.loadoutToolStripMenuItem.Text = "%loadout%"; this.loadoutToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // - // localizeonlineclothingToolStripMenuItem + // localizeContentProviderLoaderToolStripMenuItem // - this.localizeonlineclothingToolStripMenuItem.Name = "localizeonlineclothingToolStripMenuItem"; - this.localizeonlineclothingToolStripMenuItem.Size = new System.Drawing.Size(210, 22); - this.localizeonlineclothingToolStripMenuItem.Text = "%localizeonlineclothing%"; - this.localizeonlineclothingToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); + this.localizeContentProviderLoaderToolStripMenuItem.Name = "localizeContentProviderLoaderToolStripMenuItem"; + this.localizeContentProviderLoaderToolStripMenuItem.Size = new System.Drawing.Size(256, 22); + this.localizeContentProviderLoaderToolStripMenuItem.Text = "%localizeContentProviderLoader%"; + this.localizeContentProviderLoaderToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // nameToolStripMenuItem // @@ -1086,14 +1088,14 @@ partial class ClientinfoEditor // argsToolStripMenuItem // this.argsToolStripMenuItem.Name = "argsToolStripMenuItem"; - this.argsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.argsToolStripMenuItem.Size = new System.Drawing.Size(116, 22); this.argsToolStripMenuItem.Text = "%args%"; this.argsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // documentationToolStripMenuItem1 // this.documentationToolStripMenuItem1.Name = "documentationToolStripMenuItem1"; - this.documentationToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.documentationToolStripMenuItem1.Size = new System.Drawing.Size(157, 22); this.documentationToolStripMenuItem1.Text = "Documentation"; this.documentationToolStripMenuItem1.Click += new System.EventHandler(this.documentationToolStripMenuItem_Click); // @@ -1250,6 +1252,13 @@ partial class ClientinfoEditor this.label3.TabIndex = 37; this.label3.Text = "EXE Name:"; // + // jSONToolStripMenuItem + // + this.jSONToolStripMenuItem.Name = "jSONToolStripMenuItem"; + this.jSONToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.jSONToolStripMenuItem.Text = "JSON"; + this.jSONToolStripMenuItem.Click += new System.EventHandler(this.jSONToolStripMenuItem_Click); + // // ClientinfoEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1406,7 +1415,7 @@ partial class ClientinfoEditor private System.Windows.Forms.ToolStripMenuItem tshirttexidlocalToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem shirttexidlocalToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem pantstexidlocalToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem localizeonlineclothingToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem localizeContentProviderLoaderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem newguiToolStripMenuItem; private System.Windows.Forms.CheckBox checkBox8; private System.Windows.Forms.TextBox textBox2; @@ -1418,4 +1427,5 @@ partial class ClientinfoEditor private System.Windows.Forms.ToolStripMenuItem userbxassetforgenerationToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem generatescriptToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem serverToolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem jSONToolStripMenuItem; } diff --git a/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs b/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs index 6e9a542..87b1ca4 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/ClientinfoCreator.cs @@ -345,7 +345,42 @@ public partial class ClientinfoEditor : Form } } - void TextBox4TextChanged(object sender, EventArgs e) + private void jSONToolStripMenuItem_Click(object sender, EventArgs e) + { + using (var sfd = new SaveFileDialog()) + { + sfd.Filter = "Configuration File (*.json)|*.json"; + sfd.FilterIndex = 1; + string filename = "clientinfo.son"; + sfd.FileName = filename; + sfd.Title = "Save " + filename; + + if (sfd.ShowDialog() == DialogResult.OK) + { + //WRITE + string section = "ClientInfo"; + JSONFile json = new JSONFile(sfd.FileName, section); + + json.JsonWriteValue(section, "UsesPlayerName", SelectedClientInfo.UsesPlayerName.ToString()); + json.JsonWriteValue(section, "UsesID", SelectedClientInfo.UsesID.ToString()); + json.JsonWriteValue(section, "Warning", SelectedClientInfo.Warning.ToString()); + json.JsonWriteValue(section, "LegacyMode", SelectedClientInfo.LegacyMode.ToString()); + json.JsonWriteValue(section, "ClientMD5", SelectedClientInfo.ClientMD5.ToString()); + json.JsonWriteValue(section, "ScriptMD5", SelectedClientInfo.ScriptMD5.ToString()); + json.JsonWriteValue(section, "Description", SelectedClientInfo.Description.ToString()); + json.JsonWriteValue(section, "Locked", Locked.ToString()); + json.JsonWriteValue(section, "Fix2007", SelectedClientInfo.Fix2007.ToString()); + json.JsonWriteValue(section, "AlreadyHasSecurity", SelectedClientInfo.AlreadyHasSecurity.ToString()); + json.JsonWriteValue(section, "ClientLoadOptions", ((int)SelectedClientInfo.ClientLoadOptions).ToString()); + json.JsonWriteValue(section, "SeperateFolders", SelectedClientInfo.SeperateFolders.ToString()); + json.JsonWriteValue(section, "UsesCustomClientEXEName", SelectedClientInfo.UsesCustomClientEXEName.ToString()); + json.JsonWriteValue(section, "CustomClientEXEName", SelectedClientInfo.CustomClientEXEName.ToString()); + json.JsonWriteValue(section, "CommandLineArgs", SelectedClientInfo.CommandLineArgs.ToString()); + } + } + } + + void TextBox4TextChanged(object sender, EventArgs e) { SelectedClientInfo.CommandLineArgs = textBox4.Text; } @@ -583,7 +618,7 @@ public partial class ClientinfoEditor : Form textBox4.Text = SelectedClientInfo.CommandLineArgs; textBox5.Text = SelectedClientInfo.Warning; } - #endregion + #endregion } #endregion diff --git a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs index b599073..0e109ae 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs @@ -52,7 +52,7 @@ System.Windows.Forms.ListViewItem listViewItem12 = new System.Windows.Forms.ListViewItem(new string[] { "ClientScript Tester"}, "ClientScriptTester.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F)); System.Windows.Forms.ListViewItem listViewItem13 = new System.Windows.Forms.ListViewItem(new string[] { - "XML Content Editor"}, 9, System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F)); + "JSON 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(); diff --git a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx index bcc263f..ccbde72 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx +++ b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACw - FgAAAk1TRnQBSQFMAgEBDQEAAVABAAFQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + FgAAAk1TRnQBSQFMAgEBDQEAAVgBAAFYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -154,9 +154,9 @@ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wYAAd0BtAHdBf8B3QG0 - Ad01AAG0AdYBtAHuAQcB+ALrAbQB1gG0NAAB/wHxAbQB8AH0AfMB6wJtAfABtAHxNAAB/wHvAvgC6wHt - AfcB6wH0MgABGwdSARwBkgHtAfcB6wH0MgABUgblAVkBUgH0AfgB7wHrAfQyAAFSAeUCWAM3AeUBUgH0 - AfgB7wHrAfQyAAFSAeUBWAOgATcB5QFSAf8B7AHvAfgB9DIAAVIB5QVeAeUBUgH/AewB7wH4AfQyAAFS + Ad01AAG0AdYBtAG8AQcB7ALrAbQB1gG0NAAB/wHxAbQB8AH0AfMB6wJtAfABtAHxNAAB/wHvAuwC6wHt + AfcB6wH0MgABGwdSARwBkgHtAfcB6wH0MgABUgblAVkBUgH0AewB7wHrAfQyAAFSAeUCWAM3AeUBUgH0 + AewB7wHrAfQyAAFSAeUBWAOgATcB5QFSAf8B7AHvAewB9DIAAVIB5QVeAeUBUgH/AewB7wHsAfQyAAFS AeUFWAHlAVIB/wHtAe8B7AH0MgABUgHlAVgDoAFYAeUBUgH/Ae0B7wHsAfQyAAFSBOUCXgHlAVIB/wGS Ae8B7AH0MgABeQdYAXkB8gHtAe8B7AH0MgABGwFSAVgBHAH3BZIC7wHsAfQzAAHzAZkBHAH3Ae8FBwHv Ae0B/zQAAv8B9AHvAvcEkgG8Af9aAAH/AZgaAASzAa0BxwEABa0BvAS1CrQBvAUAA20CSQFtDAACcgsA diff --git a/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.Designer.cs b/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.Designer.cs index a9b9f9f..4c71746 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.Designer.cs @@ -180,7 +180,7 @@ 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.Text = "JSON Content Editor"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.XMLContentEditor_OnClosing); this.XMLStrip.ResumeLayout(false); this.XMLStrip.PerformLayout(); diff --git a/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.cs b/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.cs index 2a89255..94cc4ef 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.cs @@ -1,4 +1,5 @@ #region Usings +using Newtonsoft.Json; using Novetus.Core; using System; using System.Collections.Generic; @@ -163,7 +164,7 @@ public partial class XMLContentEditor : Form case XMLContentType.ContentProviders: if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName)) { - contentProviders = OnlineClothing.GetContentProviders(); + contentProviders = ContentProviderLoader.GetContentProviders(); } else { @@ -280,40 +281,19 @@ public partial class XMLContentEditor : Form } } + string fileName = ""; //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(); - } + string jsonProviders = JsonConvert.SerializeObject(providerList, Newtonsoft.Json.Formatting.Indented); + File.WriteAllText(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName, jsonProviders); + fileName = GlobalPaths.ContentProviderXMLName; 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(); - } + string jsonColors = JsonConvert.SerializeObject(providerList, Newtonsoft.Json.Formatting.Indented); + File.WriteAllText(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName, jsonColors); + fileName = GlobalPaths.PartColorXMLName; break; default: break; @@ -322,19 +302,6 @@ public partial class XMLContentEditor : Form providerList.Clear(); partColorList.Clear(); - string fileName = ""; - switch (ListType) - { - case XMLContentType.ContentProviders: - fileName = GlobalPaths.ContentProviderXMLName; - break; - case XMLContentType.PartColors: - fileName = GlobalPaths.PartColorXMLName; - break; - default: - break; - } - if (!noReload) { MessageBox.Show(fileName + " has been saved! The list will now reload.", "XML Content Editor - File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information); @@ -345,12 +312,6 @@ public partial class XMLContentEditor : Form MessageBox.Show(fileName + " has been saved!", "XML Content Editor - File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information); } } - - //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."; - } #endregion } #endregion diff --git a/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.resx b/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.resx index 287f054..5b5e05f 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.resx +++ b/Novetus/NovetusLauncher/Forms/SDK/XMLContentEditor.resx @@ -124,7 +124,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAPZJREFUOE9jGJ5AHYgXAvE5IN4ExM5ATDTQBeKXQFwMxIZAHAXED6E0UWAzEKdB + wgAADsIBFShKgAAAAPZJREFUOE9jGJ5AHYgXAvE5IN4ExM5ATDTQBeKXQFwMxIZAHAXED6E0UWAzEKdB mHCgD8TPgZgFzCMAQLaLQ5go4C4QK0OY+MFVIDaBMOGAg4GB8QMbF78QlI8bMDIyFACpw0AsCBaAOHs6 IyPTWyEFdX+IEH7AyMLM2A+k3wHxfiB+zMzE9FVSTHy/nLjAdnENgwiQIoJAlJtNVkhIKIhXWNpIXlRo iayijo+SmMBEGVESDIGBadk2nHJSoptltUx9FEUFJnKxcTwQtkiWh0oTB2CGsLGw72JkZv3DqRNKmgEg diff --git a/README-AND-CREDITS.TXT b/README-AND-CREDITS.TXT index c1554e7..60cdbd9 100644 --- a/README-AND-CREDITS.TXT +++ b/README-AND-CREDITS.TXT @@ -289,7 +289,7 @@ The ROBLOX Corporation does not support or endorse the creation of Novetus. Bitl Development Studio is not affiliated with the ROBLOX Corporation or its subsidiaries. Bitl Development Studio does not own the majority of the places or items included with Novetus. Novetus is not associated with Novetus Engineering LLC. -This item is not authorized for posting on Steam, except under Bitl Development Studio or the ROBLOX Corporation.​ +This item is not authorized for posting on Steam.​ Novetus uses the majority of the Whimsee's Map Pack in the "full" version. Credits go to Whimsee and many other people for making that pack possible. Thank you to everyone who has contributed a map, item, or client including cole and many other people. LUA scripts were used to build a client that can connect to LAN and the Internet. diff --git a/changelog.txt b/changelog.txt index 398d10b..b2f97ce 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,11 @@ -EDGE Snapshot v24.8788.21050.1 +EDGE Snapshot v24.8790.38152.1 +Enhancements: +- Added a revamped Novetus Dependency Installer based off of NSIS that streamlines the installation of Novetus' dependencies. +- Replaced most INI and XML files with JSON files. + Fixes: - Fixed a bug where selecting an Extra item in the Extras panel would be slightly broken when "Show Hats" is enabled. +- Fixed buggy item description behavior. --------------------------------------------------------------------------- EDGE Snapshot v24.8786.38141.3 Fixes: diff --git a/scripts/launcher/ContentProviders.xml b/old/ContentProviders.xml similarity index 100% rename from scripts/launcher/ContentProviders.xml rename to old/ContentProviders.xml diff --git a/scripts/launcher/PartColors.xml b/old/PartColors.xml similarity index 100% rename from scripts/launcher/PartColors.xml rename to old/PartColors.xml diff --git a/scripts/NovetusDependencyInstaller.nsi b/scripts/NovetusDependencyInstaller.nsi new file mode 100644 index 0000000..0f404d4 --- /dev/null +++ b/scripts/NovetusDependencyInstaller.nsi @@ -0,0 +1,69 @@ +; Script generated by the HM NIS Edit Script Wizard. + +; HM NIS Edit Wizard helper defines +!define PRODUCT_NAME "Novetus Dependencies" +!define PRODUCT_VERSION "1.0" +!define PRODUCT_PUBLISHER "Bitl Development Studio" + +; MUI 1.67 compatible ------ +!include "MUI.nsh" + +; MUI Settings +!define MUI_ABORTWARNING +!define MUI_ICON "G:\Projects\GitHub\Novetus\Novetus_src\Graphics\NovetusIcon.ico" +!define MUI_WELCOMEFINISHPAGE_BITMAP "G:\Projects\GitHub\Novetus\Novetus_src\Graphics\Novetus_Installer_WizardImage.bmp" + +; Welcome page +!insertmacro MUI_PAGE_WELCOME +; Components page +!insertmacro MUI_PAGE_COMPONENTS +; Instfiles page +!insertmacro MUI_PAGE_INSTFILES +; MediaPlayer +!define MUI_PAGE_HEADER_TEXT "Windows Media Player" +!define MUI_PAGE_HEADER_SUBTEXT "If you don't have Windows Media Player binaries installed, please follow these directions." +!define MUI_LICENSEPAGE_TEXT_TOP "Instructions:" +!define MUI_LICENSEPAGE_TEXT_BOTTOM "Please make sure you have this dependency installed before continuing." +!define MUI_LICENSEPAGE_BUTTON "Next >" +!insertmacro MUI_PAGE_LICENSE "WMP_instructions.txt" +; Finish page +!insertmacro MUI_PAGE_FINISH + +; Language files +!insertmacro MUI_LANGUAGE "English" + +; MUI end ------ + +Name "${PRODUCT_NAME}" +OutFile "Novetus_Dependency_Installer.exe" +ShowInstDetails show +RequestExecutionLevel user + +Section ".NET Framework 4.5.1" SEC01 + DetailPrint "Installing .NET Framework 4.5.1..." + ExecWait '"$EXEDIR\_redist\NET Framework\NDP451-KB2858728-x86-x64-AllOS-ENU.exe" /q /norestart' +SectionEnd + +Section ".NET Framework 2.0" SEC02 + DetailPrint "Installing .NET Framework 2.0..." + ExecWait '"$EXEDIR\_redist\NET Framework\NetFx20SP2_x86.exe" /q' + ExecWait '"$EXEDIR\_redist\NET Framework\NetFx20SP2_x64.exe" /q' +SectionEnd + +Section "Visual C++ 2005 Redistributables" SEC03 + DetailPrint "Installing Visual C++ 2005 Redistributables..." + ExecWait '"$EXEDIR\_redist\Visual C++ Redistributables\vcredist2005_x86.exe" /q /r:n' +SectionEnd + +Section "Visual C++ 2008 Redistributables" SEC04 + DetailPrint "Installing Visual C++ 2008 Redistributables..." + ExecWait '"$EXEDIR\_redist\Visual C++ Redistributables\vcredist2008_x86.exe" /q /norestart' +SectionEnd + +; Section descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Used for running the Novetus Launcher." + !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Used for running the Novetus SDK's Script Generator application." + !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Used for running 2007 clients." + !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Used for running 2008 clients and above." +!insertmacro MUI_FUNCTION_DESCRIPTION_END \ No newline at end of file diff --git a/scripts/WMP_instructions.txt b/scripts/WMP_instructions.txt new file mode 100644 index 0000000..d7e8d01 --- /dev/null +++ b/scripts/WMP_instructions.txt @@ -0,0 +1,3 @@ +Please install the Windows Media Player through Windows' "Add a feature" utility. +Windows 7+: Go to the Control Panel, Programs and Features, go to "Turn Windows features on and off", and enable Windows Media Player in Media Features. +Windows 10+: Go to the Settings app, Apps, Optional Features, then search "Windows Media Player", then select it and press Install. \ No newline at end of file diff --git a/scripts/batch/clean_junk.bat b/scripts/batch/clean_junk.bat index d91f835..b0e7b25 100644 --- a/scripts/batch/clean_junk.bat +++ b/scripts/batch/clean_junk.bat @@ -107,6 +107,8 @@ del /s /q config\saved.txt del /s /q config\ReShade.ini del /s /q config\config.ini del /s /q config\config_customization.ini +del /s /q config\config.json +del /s /q config\config_customization.json del /s /q config\initialfilelist.txt del /s /q config\BadgeDatabase.ini diff --git a/scripts/batch/github_sync.bat b/scripts/batch/github_sync.bat index 77814ff..ebfe81a 100644 --- a/scripts/batch/github_sync.bat +++ b/scripts/batch/github_sync.bat @@ -108,8 +108,8 @@ if not exist "%launcherscriptdir%" mkdir "%launcherscriptdir%" XCOPY "%cd%\Novetus\config\launcherdata\3DView.rbxl" "%launcherscriptdir%" /y XCOPY "%cd%\Novetus\config\launcherdata\Appreciation.rbxl" "%launcherscriptdir%" /y -XCOPY "%cd%\Novetus\config\ContentProviders.xml" "%launcherscriptdir%" /y -XCOPY "%cd%\Novetus\config\PartColors.xml" "%launcherscriptdir%" /y +XCOPY "%cd%\Novetus\config\ContentProviders.json" "%launcherscriptdir%" /y +XCOPY "%cd%\Novetus\config\PartColors.json" "%launcherscriptdir%" /y XCOPY "%cd%\Novetus\config\splashes.txt" "%launcherscriptdir%" /y XCOPY "%cd%\Novetus\config\splashes-special.txt" "%launcherscriptdir%" /y XCOPY "%cd%\Novetus\config\names-special.txt" "%launcherscriptdir%" /y @@ -149,8 +149,8 @@ XCOPY "%cd%\dev_menu.bat" "%scriptsdir%\batch" /y XCOPY "%cd%\Novetus\clean_junk.bat" "%scriptsdir%\batch" /y XCOPY "%cd%\github_sync.bat" "%scriptsdir%\batch" /y XCOPY "%cd%\assetfixer_gauntlet.lua" "%scriptsdir%" /y -XCOPY "%cd%\NovetusInstaller.nsi" "%scriptsdir%" /y -XCOPY "%cd%\Novetus\Novetus_dependency_installer.bat" "%scriptsdir%\batch" /y +XCOPY "%cd%\NovetusDependencyInstaller.nsi" "%scriptsdir%" /y +XCOPY "%cd%\WMP_instructions.txt" "%scriptsdir%" /y XCOPY "%cd%\Novetus\misc\documentation.txt" "%dest%" /y XCOPY "%cd%\Novetus\misc\consolehelp.txt" "%dest%" /y XCOPY /c "%cd%\Novetus\.itch.toml" "%dest%" /y diff --git a/scripts/launcher/ContentProviders.json b/scripts/launcher/ContentProviders.json new file mode 100644 index 0000000..2c1d733 --- /dev/null +++ b/scripts/launcher/ContentProviders.json @@ -0,0 +1,22 @@ +[ + { + "Name": "Roblox (Asset Delivery, Incompatible w/ older clients)", + "URL": "https://assetdelivery.roblox.com/v1/asset/?id=", + "Icon": "roblox.png" + }, + { + "Name": "Roblox (Web Proxy Required)", + "URL": "http://www.roblox.com/asset?id=", + "Icon": "roblox.png" + }, + { + "Name": "Imgur (HTTP)", + "URL": "http://i.imgur.com/", + "Icon": "imgur.png" + }, + { + "Name": "Imgur (HTTPS, Incompatible w/ older clients)", + "URL": "https://i.imgur.com/", + "Icon": "imgur.png" + } +] \ No newline at end of file diff --git a/scripts/launcher/PartColors.json b/scripts/launcher/PartColors.json new file mode 100644 index 0000000..a7b1004 --- /dev/null +++ b/scripts/launcher/PartColors.json @@ -0,0 +1,697 @@ +[ + { + "ColorName": "[Classic Colors]White", + "ColorID": "1", + "ColorRGB": "[242, 243, 243]" + }, + { + "ColorName": "[Classic Colors]Light stone grey", + "ColorID": "208", + "ColorRGB": "[229, 228, 223]" + }, + { + "ColorName": "[Classic Colors]Medium stone grey", + "ColorID": "194", + "ColorRGB": "[163, 162, 165]" + }, + { + "ColorName": "[Classic Colors]Dark stone grey", + "ColorID": "199", + "ColorRGB": "[99, 95, 98]" + }, + { + "ColorName": "[Classic Colors]Black", + "ColorID": "26", + "ColorRGB": "[27, 42, 53]" + }, + { + "ColorName": "[Classic Colors]Bright red", + "ColorID": "21", + "ColorRGB": "[196, 40, 28]" + }, + { + "ColorName": "[Classic Colors]Bright yellow", + "ColorID": "24", + "ColorRGB": "[245, 205, 48]" + }, + { + "ColorName": "[Classic Colors]Cool yellow", + "ColorID": "226", + "ColorRGB": "[253, 234, 141]" + }, + { + "ColorName": "[Classic Colors]Bright blue", + "ColorID": "23", + "ColorRGB": "[13, 105, 172]" + }, + { + "ColorName": "[Classic Colors]Bright bluish green", + "ColorID": "107", + "ColorRGB": "[0, 143, 156]" + }, + { + "ColorName": "[Classic Colors]Medium blue", + "ColorID": "102", + "ColorRGB": "[110, 153, 202]" + }, + { + "ColorName": "[Classic Colors]Pastel Blue", + "ColorID": "11", + "ColorRGB": "[128, 187, 219]" + }, + { + "ColorName": "[Classic Colors]Light blue", + "ColorID": "45", + "ColorRGB": "[180, 210, 228]" + }, + { + "ColorName": "[Classic Colors]Sand blue", + "ColorID": "135", + "ColorRGB": "[116, 134, 157]" + }, + { + "ColorName": "[Classic Colors]Bright orange", + "ColorID": "106", + "ColorRGB": "[206, 125, 63]" + }, + { + "ColorName": "[Classic Colors]Br. yellowish orange", + "ColorID": "105", + "ColorRGB": "[225, 154, 66]" + }, + { + "ColorName": "[Classic Colors]Earth green", + "ColorID": "141", + "ColorRGB": "[36, 65, 43]" + }, + { + "ColorName": "[Classic Colors]Dark green", + "ColorID": "28", + "ColorRGB": "[40, 127, 71]" + }, + { + "ColorName": "[Classic Colors]Bright green", + "ColorID": "37", + "ColorRGB": "[75, 151, 75]" + }, + { + "ColorName": "[Classic Colors]Br. yellowish green", + "ColorID": "119", + "ColorRGB": "[164, 189, 71]" + }, + { + "ColorName": "[Classic Colors]Medium green", + "ColorID": "29", + "ColorRGB": "[161, 196, 140]" + }, + { + "ColorName": "[Classic Colors]Sand green", + "ColorID": "151", + "ColorRGB": "[120, 144, 130]" + }, + { + "ColorName": "[Classic Colors]Dark orange", + "ColorID": "38", + "ColorRGB": "[160, 95, 53]" + }, + { + "ColorName": "[Classic Colors]Reddish brown", + "ColorID": "192", + "ColorRGB": "[105, 64, 40]" + }, + { + "ColorName": "[Classic Colors]Bright violet", + "ColorID": "104", + "ColorRGB": "[107, 50, 124]" + }, + { + "ColorName": "[Classic Colors]Light reddish violet", + "ColorID": "9", + "ColorRGB": "[232, 186, 200]" + }, + { + "ColorName": "[Classic Colors]Medium red", + "ColorID": "101", + "ColorRGB": "[218, 134, 122]" + }, + { + "ColorName": "[Classic Colors]Brick yellow", + "ColorID": "5", + "ColorRGB": "[215, 197, 154]" + }, + { + "ColorName": "[Classic Colors]Sand red", + "ColorID": "153", + "ColorRGB": "[149, 121, 119]" + }, + { + "ColorName": "[Classic Colors]Brown", + "ColorID": "217", + "ColorRGB": "[124, 92, 70]" + }, + { + "ColorName": "[Classic Colors]Nougat", + "ColorID": "18", + "ColorRGB": "[204, 142, 105]" + }, + { + "ColorName": "[2009+ Colors]Institutional white", + "ColorID": "1001", + "ColorRGB": "[248, 248, 248]" + }, + { + "ColorName": "[2009+ Colors]Mid gray", + "ColorID": "1002", + "ColorRGB": "[205, 205, 205]" + }, + { + "ColorName": "[2009+ Colors]Really black", + "ColorID": "1003", + "ColorRGB": "[17, 17, 17]" + }, + { + "ColorName": "[2009+ Colors]Grime", + "ColorID": "1022", + "ColorRGB": "[127, 142, 100]" + }, + { + "ColorName": "[2009+ Colors]Lavender", + "ColorID": "1023", + "ColorRGB": "[140, 91, 159]" + }, + { + "ColorName": "[2009+ Colors]Neon orange", + "ColorID": "1005", + "ColorRGB": "[216, 148, 13]" + }, + { + "ColorName": "[2009+ Colors]Teal", + "ColorID": "1018", + "ColorRGB": "[18, 238, 212]" + }, + { + "ColorName": "[2009+ Colors]Pastel brown", + "ColorID": "1030", + "ColorRGB": "[255, 204, 153]" + }, + { + "ColorName": "[2009+ Colors]Pastel yellow", + "ColorID": "1029", + "ColorRGB": "[255, 255, 204]" + }, + { + "ColorName": "[2009+ Colors]Pastel orange", + "ColorID": "1025", + "ColorRGB": "[255, 201, 201]" + }, + { + "ColorName": "[2009+ Colors]Pink", + "ColorID": "1016", + "ColorRGB": "[255, 102, 204]" + }, + { + "ColorName": "[2009+ Colors]Pastel violet", + "ColorID": "1026", + "ColorRGB": "[177, 167, 255]" + }, + { + "ColorName": "[2009+ Colors]Pastel light blue", + "ColorID": "1024", + "ColorRGB": "[175, 221, 255]" + }, + { + "ColorName": "[2009+ Colors]Pastel blue-green", + "ColorID": "1027", + "ColorRGB": "[159, 243, 233]" + }, + { + "ColorName": "[2009+ Colors]Pastel green", + "ColorID": "1028", + "ColorRGB": "[204, 255, 204]" + }, + { + "ColorName": "[2009+ Colors]Olive", + "ColorID": "1008", + "ColorRGB": "[193, 190, 66]" + }, + { + "ColorName": "[2009+ Colors]New Yeller", + "ColorID": "1009", + "ColorRGB": "[255, 255, 0]" + }, + { + "ColorName": "[2009+ Colors]Really red", + "ColorID": "1004", + "ColorRGB": "[255, 0, 0]" + }, + { + "ColorName": "[2009+ Colors]Hot pink", + "ColorID": "1032", + "ColorRGB": "[255, 0, 191]" + }, + { + "ColorName": "[2009+ Colors]Really blue", + "ColorID": "1010", + "ColorRGB": "[0, 0, 255]" + }, + { + "ColorName": "[2009+ Colors]Toothpaste", + "ColorID": "1019", + "ColorRGB": "[0, 255, 255]" + }, + { + "ColorName": "[2009+ Colors]Lime green", + "ColorID": "1020", + "ColorRGB": "[0, 255, 0]" + }, + { + "ColorName": "[2009+ Colors]Royal purple", + "ColorID": "1031", + "ColorRGB": "[98, 37, 209]" + }, + { + "ColorName": "[2009+ Colors]Alder", + "ColorID": "1006", + "ColorRGB": "[180, 128, 255]" + }, + { + "ColorName": "[2009+ Colors]Cyan", + "ColorID": "1013", + "ColorRGB": "[4, 175, 236]" + }, + { + "ColorName": "[2009+ Colors]Camo", + "ColorID": "1021", + "ColorRGB": "[58, 125, 21]" + }, + { + "ColorName": "[2009+ Colors]CGA brown", + "ColorID": "1014", + "ColorRGB": "[170, 85, 0]" + }, + { + "ColorName": "[2009+ Colors]Dusty Rose", + "ColorID": "1007", + "ColorRGB": "[163, 75, 75]" + }, + { + "ColorName": "[2009+ Colors]Magenta", + "ColorID": "1015", + "ColorRGB": "[170, 0, 170]" + }, + { + "ColorName": "[2009+ Colors]Deep blue", + "ColorID": "1012", + "ColorRGB": "[33, 84, 185]" + }, + { + "ColorName": "[2009+ Colors]Navy blue", + "ColorID": "1011", + "ColorRGB": "[0, 32, 96]" + }, + { + "ColorName": "[Unused Colors]Light orange", + "ColorID": "125", + "ColorRGB": "[234, 184, 146]" + }, + { + "ColorName": "[Unused Colors]Med. reddish violet", + "ColorID": "22", + "ColorRGB": "[196, 112, 160]" + }, + { + "ColorName": "[Unused Colors]Dark nougat", + "ColorID": "128", + "ColorRGB": "[174, 122, 89]" + }, + { + "ColorName": "[Unused Colors]Grey", + "ColorID": "2", + "ColorRGB": "[161, 165, 162]" + }, + { + "ColorName": "[Unused Colors]Light yellow", + "ColorID": "3", + "ColorRGB": "[249, 233, 153]" + }, + { + "ColorName": "[Unused Colors]Light green (Mint)", + "ColorID": "6", + "ColorRGB": "[194, 218, 184]" + }, + { + "ColorName": "[Unused Colors]Light orange brown", + "ColorID": "12", + "ColorRGB": "[203, 132, 66]" + }, + { + "ColorName": "[Unused Colors]Earth orange", + "ColorID": "25", + "ColorRGB": "[98, 71, 50]" + }, + { + "ColorName": "[Unused Colors]Dark grey", + "ColorID": "27", + "ColorRGB": "[109, 110, 108]" + }, + { + "ColorName": "[Unused Colors]Lig. Yellowich orange", + "ColorID": "36", + "ColorRGB": "[243, 207, 155]" + }, + { + "ColorName": "[Unused Colors]Light bluish violet", + "ColorID": "39", + "ColorRGB": "[193, 202, 222]" + }, + { + "ColorName": "[Unused Colors]Transparent", + "ColorID": "40", + "ColorRGB": "[236, 236, 236]" + }, + { + "ColorName": "[Unused Colors]Tr. Red", + "ColorID": "41", + "ColorRGB": "[205, 84, 75]" + }, + { + "ColorName": "[Unused Colors]Tr. Lg blue", + "ColorID": "42", + "ColorRGB": "[193, 223, 240]" + }, + { + "ColorName": "[Unused Colors]Tr. Blue", + "ColorID": "43", + "ColorRGB": "[123, 182, 232]" + }, + { + "ColorName": "[Unused Colors]Tr. Yellow", + "ColorID": "44", + "ColorRGB": "[247, 241, 141]" + }, + { + "ColorName": "[Unused Colors]Tr. Flu. Reddish orange", + "ColorID": "47", + "ColorRGB": "[217, 133, 108]" + }, + { + "ColorName": "[Unused Colors]Tr. Green", + "ColorID": "48", + "ColorRGB": "[132, 182, 141]" + }, + { + "ColorName": "[Unused Colors]Tr. Flu. Green", + "ColorID": "49", + "ColorRGB": "[248, 241, 132]" + }, + { + "ColorName": "[Unused Colors]Phosph. White", + "ColorID": "50", + "ColorRGB": "[236, 232, 222]" + }, + { + "ColorName": "[Unused Colors]Light red", + "ColorID": "100", + "ColorRGB": "[238, 196, 182]" + }, + { + "ColorName": "[Unused Colors]Light grey", + "ColorID": "103", + "ColorRGB": "[199, 193, 183]" + }, + { + "ColorName": "[Unused Colors]Earth yellow", + "ColorID": "108", + "ColorRGB": "[104, 92, 67]" + }, + { + "ColorName": "[Unused Colors]Bright bluish violet", + "ColorID": "110", + "ColorRGB": "[67, 84, 147]" + }, + { + "ColorName": "[Unused Colors]Tr. Brown", + "ColorID": "111", + "ColorRGB": "[191, 183, 177]" + }, + { + "ColorName": "[Unused Colors]Medium bluish violet", + "ColorID": "112", + "ColorRGB": "[104, 116, 172]" + }, + { + "ColorName": "[Unused Colors]Tr. Medi. reddish violet", + "ColorID": "113", + "ColorRGB": "[229, 173, 200]" + }, + { + "ColorName": "[Unused Colors]Med. yellowish green", + "ColorID": "115", + "ColorRGB": "[199, 210, 60]" + }, + { + "ColorName": "[Unused Colors]Med. bluish green", + "ColorID": "116", + "ColorRGB": "[85, 165, 175]" + }, + { + "ColorName": "[Unused Colors]Light bluish green", + "ColorID": "118", + "ColorRGB": "[183, 215, 213]" + }, + { + "ColorName": "[Unused Colors]Lig. yellowish green", + "ColorID": "120", + "ColorRGB": "[217, 228, 167]" + }, + { + "ColorName": "[Unused Colors]Med. yellowish orange", + "ColorID": "121", + "ColorRGB": "[231, 172, 88]" + }, + { + "ColorName": "[Unused Colors]Br. reddish orange", + "ColorID": "123", + "ColorRGB": "[211, 111, 76]" + }, + { + "ColorName": "[Unused Colors]Bright reddish violet", + "ColorID": "124", + "ColorRGB": "[146, 57, 120]" + }, + { + "ColorName": "[Unused Colors]Tr. Bright bluish violet", + "ColorID": "126", + "ColorRGB": "[165, 165, 203]" + }, + { + "ColorName": "[Unused Colors]Gold", + "ColorID": "127", + "ColorRGB": "[220, 188, 129]" + }, + { + "ColorName": "[Unused Colors]Silver", + "ColorID": "131", + "ColorRGB": "[156, 163, 168]" + }, + { + "ColorName": "[Unused Colors]Neon orange (2006)", + "ColorID": "133", + "ColorRGB": "[213, 115, 61]" + }, + { + "ColorName": "[Unused Colors]Neon green", + "ColorID": "134", + "ColorRGB": "[216, 221, 86]" + }, + { + "ColorName": "[Unused Colors]Sand violet", + "ColorID": "136", + "ColorRGB": "[135, 124, 144]" + }, + { + "ColorName": "[Unused Colors]Medium orange", + "ColorID": "137", + "ColorRGB": "[224, 152, 100]" + }, + { + "ColorName": "[Unused Colors]Sand yellow", + "ColorID": "138", + "ColorRGB": "[149, 138, 115]" + }, + { + "ColorName": "[Unused Colors]Earth blue", + "ColorID": "140", + "ColorRGB": "[32, 58, 86]" + }, + { + "ColorName": "[Unused Colors]Tr. Flu. Blue", + "ColorID": "143", + "ColorRGB": "[207, 226, 247]" + }, + { + "ColorName": "[Unused Colors]Sand blue metallic", + "ColorID": "145", + "ColorRGB": "[121, 136, 161]" + }, + { + "ColorName": "[Unused Colors]Sand violet metallic", + "ColorID": "146", + "ColorRGB": "[149, 142, 163]" + }, + { + "ColorName": "[Unused Colors]Dark red", + "ColorID": "154", + "ColorRGB": "[123, 46, 47]" + }, + { + "ColorName": "[Unused Colors]Tr. Flu. Yellow", + "ColorID": "157", + "ColorRGB": "[255, 246, 123]" + }, + { + "ColorName": "[Unused Colors]Tr. Flu. Red", + "ColorID": "158", + "ColorRGB": "[225, 164, 194]" + }, + { + "ColorName": "[Unused Colors]Gun metallic", + "ColorID": "168", + "ColorRGB": "[117, 108, 98]" + }, + { + "ColorName": "[Unused Colors]Red flip/flop", + "ColorID": "176", + "ColorRGB": "[151, 105, 91]" + }, + { + "ColorName": "[Unused Colors]Yellow flip/flop", + "ColorID": "178", + "ColorRGB": "[180, 132, 85]" + }, + { + "ColorName": "[Unused Colors]Silver flip/flop", + "ColorID": "179", + "ColorRGB": "[137, 135, 136]" + }, + { + "ColorName": "[Unused Colors]Curry", + "ColorID": "180", + "ColorRGB": "[215, 169, 75]" + }, + { + "ColorName": "[Unused Colors]Fire Yellow", + "ColorID": "190", + "ColorRGB": "[249, 214, 46]" + }, + { + "ColorName": "[Unused Colors]Flame yellowish orange", + "ColorID": "191", + "ColorRGB": "[232, 171, 45]" + }, + { + "ColorName": "[Unused Colors]Royal blue", + "ColorID": "195", + "ColorRGB": "[70, 103, 164]" + }, + { + "ColorName": "[Unused Colors]Dark Royal blue", + "ColorID": "196", + "ColorRGB": "[35, 71, 139]" + }, + { + "ColorName": "[Unused Colors]Bright reddish lilac", + "ColorID": "198", + "ColorRGB": "[142, 66, 133]" + }, + { + "ColorName": "[Unused Colors]Lemon metalic", + "ColorID": "200", + "ColorRGB": "[130, 138, 93]" + }, + { + "ColorName": "[Unused Colors]Dark Curry", + "ColorID": "209", + "ColorRGB": "[176, 142, 68]" + }, + { + "ColorName": "[Unused Colors]Faded green", + "ColorID": "210", + "ColorRGB": "[112, 149, 120]" + }, + { + "ColorName": "[Unused Colors]Turquoise", + "ColorID": "211", + "ColorRGB": "[121, 181, 181]" + }, + { + "ColorName": "[Unused Colors]Light Royal blue", + "ColorID": "212", + "ColorRGB": "[159, 195, 233]" + }, + { + "ColorName": "[Unused Colors]Medium Royal blue", + "ColorID": "213", + "ColorRGB": "[108, 129, 183]" + }, + { + "ColorName": "[Unused Colors]Rust", + "ColorID": "216", + "ColorRGB": "[144, 76, 42]" + }, + { + "ColorName": "[Unused Colors]Reddish lilac", + "ColorID": "218", + "ColorRGB": "[150, 112, 159]" + }, + { + "ColorName": "[Unused Colors]Lilac", + "ColorID": "219", + "ColorRGB": "[107, 98, 155]" + }, + { + "ColorName": "[Unused Colors]Light lilac", + "ColorID": "220", + "ColorRGB": "[167, 169, 206]" + }, + { + "ColorName": "[Unused Colors]Bright purple", + "ColorID": "221", + "ColorRGB": "[205, 98, 152]" + }, + { + "ColorName": "[Unused Colors]Light purple", + "ColorID": "222", + "ColorRGB": "[228, 173, 200]" + }, + { + "ColorName": "[Unused Colors]Light pink", + "ColorID": "223", + "ColorRGB": "[220, 144, 149]" + }, + { + "ColorName": "[Unused Colors]Light brick yellow", + "ColorID": "224", + "ColorRGB": "[240, 213, 160]" + }, + { + "ColorName": "[Unused Colors]Warm yellowish orange", + "ColorID": "225", + "ColorRGB": "[235, 184, 127]" + }, + { + "ColorName": "[Unused Colors]Dove blue", + "ColorID": "232", + "ColorRGB": "[125, 187, 221]" + }, + { + "ColorName": "[Unused Colors]Medium lilac", + "ColorID": "268", + "ColorRGB": "[52, 43, 117]" + }, + { + "ColorName": "[Unused Colors]Deep orange (2009+)", + "ColorID": "1005", + "ColorRGB": "[255, 176, 0]" + } +] \ No newline at end of file