diff --git a/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeAscendancyClass.cs b/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeAscendancyClass.cs index 8c3701ce..adaaa5cd 100644 --- a/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeAscendancyClass.cs +++ b/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeAscendancyClass.cs @@ -16,7 +16,7 @@ public class JsonPassiveTreeAscendancyClass public string FlavourText { get; set; } = string.Empty; [JsonProperty("flavourTextRect")] - [JsonConverter(typeof(PassiveTreeRectangleFConverter))] + [JsonConverter(typeof(PassiveTreeFlavourTextBoundsConverter))] public RectangleF FlavourTextBounds { get; set; } = RectangleF.Empty; [JsonProperty("flavourTextColour")] diff --git a/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeSkillSprite.cs b/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeSkillSprite.cs index f87bf74d..ed6657c1 100644 --- a/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeSkillSprite.cs +++ b/PoESkillTree.Engine.GameModel/PassiveTree/Base/JsonPassiveTreeSkillSprite.cs @@ -10,16 +10,16 @@ public class JsonPassiveTreeSkillSprite [JsonProperty("filename")] public string FileName { get; set; } = string.Empty; - [JsonProperty("coords", ItemConverterType = typeof(PassiveTreeRectangleFConverter))] + [JsonProperty("coords", ItemConverterType = typeof(PassiveTreeSkillSpriteCoordsConverter))] public Dictionary Coords { get; set; } = new Dictionary(); } public class JsonPassiveTreeOldSkillSprite : JsonPassiveTreeSkillSprite { - [JsonProperty("notableCoords", ItemConverterType = typeof(PassiveTreeRectangleFConverter))] + [JsonProperty("notableCoords", ItemConverterType = typeof(PassiveTreeSkillSpriteCoordsConverter))] public Dictionary NotableCoords { get; private set; } = new Dictionary(); - [JsonProperty("keystoneCoords", ItemConverterType = typeof(PassiveTreeRectangleFConverter))] + [JsonProperty("keystoneCoords", ItemConverterType = typeof(PassiveTreeSkillSpriteCoordsConverter))] public Dictionary KeystoneCoords { get; private set; } = new Dictionary(); } } diff --git a/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeFlavourTextBoundsConverter.cs b/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeFlavourTextBoundsConverter.cs new file mode 100644 index 00000000..c41477c3 --- /dev/null +++ b/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeFlavourTextBoundsConverter.cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Drawing; +using System.Linq; + +namespace PoESkillTree.Engine.GameModel.PassiveTree.Converters +{ + public class PassiveTreeFlavourTextBoundsConverter : PassiveTreeRectangleFConverter + { + public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) + { + var jObject = new JObject(); + if (value is RectangleF rectangle) + { + jObject.Add("x", rectangle.X); + jObject.Add("y", rectangle.Y); + jObject.Add("width", rectangle.Width); + jObject.Add("height", rectangle.Height); + } + + jObject.WriteTo(writer); + } + } +} diff --git a/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeRectangleFConverter.cs b/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeRectangleFConverter.cs index 159b2529..282aa446 100644 --- a/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeRectangleFConverter.cs +++ b/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeRectangleFConverter.cs @@ -6,7 +6,7 @@ namespace PoESkillTree.Engine.GameModel.PassiveTree.Converters { - public class PassiveTreeRectangleFConverter : JsonConverter + public abstract class PassiveTreeRectangleFConverter : JsonConverter { public override bool CanConvert(Type objectType) => typeof(RectangleF).IsAssignableFrom(objectType); public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) @@ -31,19 +31,5 @@ public class PassiveTreeRectangleFConverter : JsonConverter return RectangleF.Empty; } - - public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) - { - var jObject = new JObject(); - if (value is RectangleF rectangle) - { - jObject.Add("x", rectangle.X); - jObject.Add("y", rectangle.Y); - jObject.Add("width", rectangle.Width); - jObject.Add("height", rectangle.Height); - } - - jObject.WriteTo(writer); - } } } diff --git a/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeSkillSpriteCoordsConverter.cs b/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeSkillSpriteCoordsConverter.cs new file mode 100644 index 00000000..c4a80fe8 --- /dev/null +++ b/PoESkillTree.Engine.GameModel/PassiveTree/Converters/PassiveTreeSkillSpriteCoordsConverter.cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Drawing; +using System.Linq; + +namespace PoESkillTree.Engine.GameModel.PassiveTree.Converters +{ + public class PassiveTreeSkillSpriteCoordsConverter : PassiveTreeRectangleFConverter + { + public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) + { + var jObject = new JObject(); + if (value is RectangleF rectangle) + { + jObject.Add("x", rectangle.X); + jObject.Add("y", rectangle.Y); + jObject.Add("w", rectangle.Width); + jObject.Add("h", rectangle.Height); + } + + jObject.WriteTo(writer); + } + } +}