From 89ba72d49b1dd6538ce416fc17e67a8a114f7061 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Sat, 12 Aug 2023 09:58:27 +0200 Subject: [PATCH] Moved Tile Json definitions to seperate files inside Internal/Json --- .../Additional-Popups/Animation/ChangeTile.cs | 3 +- PCK-Studio/Forms/Editor/AnimationEditor.cs | 3 +- PCK-Studio/Forms/Editor/TextureAtlasEditor.cs | 7 +-- .../Forms/Utilities/AnimationResources.cs | 45 ++----------------- PCK-Studio/Internal/Json/ColorEntry.cs | 21 +++++++++ PCK-Studio/Internal/Json/TileInfo.cs | 30 +++++++++++++ PCK-Studio/Internal/Json/Tiles.cs | 17 +++++++ PCK-Studio/PckStudio.csproj | 5 ++- 8 files changed, 83 insertions(+), 48 deletions(-) create mode 100644 PCK-Studio/Internal/Json/ColorEntry.cs create mode 100644 PCK-Studio/Internal/Json/TileInfo.cs create mode 100644 PCK-Studio/Internal/Json/Tiles.cs diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs index 638c7e39..4360de42 100644 --- a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs +++ b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.cs @@ -6,6 +6,7 @@ using MetroFramework.Forms; using PckStudio.Extensions; using PckStudio.Forms.Utilities; using PckStudio.Internal; +using PckStudio.Internal.Json; namespace PckStudio.Forms.Additional_Popups.Animation { @@ -50,7 +51,7 @@ namespace PckStudio.Forms.Additional_Popups.Animation private void GetTileDataToView(string key, TreeNodeCollection collection, Action additinalAction) { - List textureInfos = key switch + List textureInfos = key switch { "blocks" => AnimationResources.BlockTileInfos, "items" => AnimationResources.ItemTileInfos, diff --git a/PCK-Studio/Forms/Editor/AnimationEditor.cs b/PCK-Studio/Forms/Editor/AnimationEditor.cs index ce599ba5..5e170b2f 100644 --- a/PCK-Studio/Forms/Editor/AnimationEditor.cs +++ b/PCK-Studio/Forms/Editor/AnimationEditor.cs @@ -17,6 +17,7 @@ using PckStudio.Extensions; using PckStudio.Properties; using System.Diagnostics; using PckStudio.Internal; +using PckStudio.Internal.Json; namespace PckStudio.Forms.Editor { @@ -408,7 +409,7 @@ namespace PckStudio.Forms.Editor _ => throw new ArgumentOutOfRangeException(currentAnimation.Category.ToString()) }; - if (textureInfos.FirstOrDefault(p => p.InternalName == TileName) is AnimationResources.JsonTileInfo textureInfo) + if (textureInfos.FirstOrDefault(p => p.InternalName == TileName) is JsonTileInfo textureInfo) { tileLabel.Text = textureInfo.DisplayName; return; diff --git a/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs b/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs index ce29ee55..f45eafc1 100644 --- a/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs +++ b/PCK-Studio/Forms/Editor/TextureAtlasEditor.cs @@ -31,6 +31,7 @@ using OMI.Workers.Color; using PckStudio.Extensions; using PckStudio.Forms.Editor; using PckStudio.Forms.Utilities; +using PckStudio.Internal.Json; namespace PckStudio { @@ -55,14 +56,14 @@ namespace PckStudio private readonly List _tiles; private AtlasTile _selectedTile; - private class AtlasTile + private sealed class AtlasTile { internal readonly int Index; internal readonly Rectangle Area; - internal readonly AnimationResources.JsonTileInfo Tile; + internal readonly JsonTileInfo Tile; internal readonly Image Texture; - public AtlasTile(int index, Rectangle area, AnimationResources.JsonTileInfo tile, Image texture) + public AtlasTile(int index, Rectangle area, JsonTileInfo tile, Image texture) { Index = index; Area = area; diff --git a/PCK-Studio/Forms/Utilities/AnimationResources.cs b/PCK-Studio/Forms/Utilities/AnimationResources.cs index 8f269b70..5cd26f8e 100644 --- a/PCK-Studio/Forms/Utilities/AnimationResources.cs +++ b/PCK-Studio/Forms/Utilities/AnimationResources.cs @@ -10,54 +10,15 @@ using PckStudio.Extensions; using PckStudio.Forms.Editor; using System.Collections.Generic; using Newtonsoft.Json; +using PckStudio.Internal.Json; namespace PckStudio.Forms.Utilities { public static class AnimationResources { - internal class TileJson - { - [JsonProperty("blocks")] - public List Blocks { get; set; } - [JsonProperty("items")] - public List Items { get; set; } - } - private static TileJson _jsonData; - internal static TileJson JsonTileData => _jsonData ??= JsonConvert.DeserializeObject(Resources.tileData); - - internal class JsonTileInfo - { - [JsonProperty("displayName")] - public string DisplayName { get; set; } - - [JsonProperty("internalName")] - public string InternalName { get; set; } - - [JsonProperty("hasColourEntry", DefaultValueHandling = DefaultValueHandling.Populate)] - public bool HasColourEntry { get; set; } - - [JsonProperty("colourEntry", DefaultValueHandling = DefaultValueHandling.Populate)] - public JsonColorEntry ColourEntry { get; set; } - - public JsonTileInfo(string displayName, string internalName) - { - DisplayName = displayName; - InternalName = internalName; - } - } - - internal class JsonColorEntry - { - [JsonProperty("defaultName", Required = Required.Always)] - public string DefaultName { get; set; } - - [JsonProperty("isWaterColour", DefaultValueHandling = DefaultValueHandling.Populate)] - public bool IsWaterColour { get; set; } - - [JsonProperty("variants", DefaultValueHandling = DefaultValueHandling.Populate)] - public string[] Variants { get; set; } - } + private static JsonTiles _jsonData; + internal static JsonTiles JsonTileData => _jsonData ??= JsonConvert.DeserializeObject(Resources.tileData); internal static List ItemTileInfos => JsonTileData.Items; diff --git a/PCK-Studio/Internal/Json/ColorEntry.cs b/PCK-Studio/Internal/Json/ColorEntry.cs new file mode 100644 index 00000000..8523a311 --- /dev/null +++ b/PCK-Studio/Internal/Json/ColorEntry.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; + +namespace PckStudio.Internal.Json +{ + internal class JsonColorEntry + { + [JsonProperty("defaultName", Required = Required.Always)] + public string DefaultName { get; set; } + + [JsonProperty("isWaterColour", DefaultValueHandling = DefaultValueHandling.Populate)] + public bool IsWaterColour { get; set; } + + [JsonProperty("variants", DefaultValueHandling = DefaultValueHandling.Populate)] + public string[] Variants { get; set; } + } +} diff --git a/PCK-Studio/Internal/Json/TileInfo.cs b/PCK-Studio/Internal/Json/TileInfo.cs new file mode 100644 index 00000000..1ff8b0f0 --- /dev/null +++ b/PCK-Studio/Internal/Json/TileInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; + +namespace PckStudio.Internal.Json +{ + internal class JsonTileInfo + { + [JsonProperty("displayName")] + public string DisplayName { get; set; } + + [JsonProperty("internalName")] + public string InternalName { get; set; } + + [JsonProperty("hasColourEntry", DefaultValueHandling = DefaultValueHandling.Populate)] + public bool HasColourEntry { get; set; } + + [JsonProperty("colourEntry", DefaultValueHandling = DefaultValueHandling.Populate)] + public JsonColorEntry ColourEntry { get; set; } + + public JsonTileInfo(string displayName, string internalName) + { + DisplayName = displayName; + InternalName = internalName; + } + } +} diff --git a/PCK-Studio/Internal/Json/Tiles.cs b/PCK-Studio/Internal/Json/Tiles.cs new file mode 100644 index 00000000..e0943289 --- /dev/null +++ b/PCK-Studio/Internal/Json/Tiles.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; + +namespace PckStudio.Internal.Json +{ + internal class JsonTiles + { + [JsonProperty("blocks")] + public List Blocks { get; set; } + [JsonProperty("items")] + public List Items { get; set; } + } +} diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index 192dbc68..befbe069 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -191,6 +191,9 @@ + + + @@ -814,6 +817,6 @@ $([System.DateTime]::Now.ToString('yyyy-MM-dd')) - + \ No newline at end of file