From fa1cafd751ee481b45adafda99f0d6195d5bfd99 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 10 Jul 2024 12:03:24 +0200 Subject: [PATCH] Added compatibility for MonoGame.Extended 4.0.0 and FNA.Extended --- .gitmodules | 3 ++ CHANGELOG.md | 5 ++++ .../Extensions/SpriteBatchExtensions.cs | 7 +++-- MLEM.Extended/Extensions/TextureExtensions.cs | 29 +++++++------------ MLEM.Extended/Font/GenericBitmapFont.cs | 4 +-- MLEM.Extended/MLEM.Extended.FNA.csproj | 5 ++++ MLEM.Extended/MLEM.Extended.csproj | 11 ++++--- MLEM.Extended/Tiled/TiledExtensions.cs | 2 +- MLEM.FNA.sln | 12 +++++++- ThirdParty/FNA | 2 +- ThirdParty/FontStashSharp | 2 +- ThirdParty/MonoGame.Extended | 1 + 12 files changed, 52 insertions(+), 31 deletions(-) create mode 160000 ThirdParty/MonoGame.Extended diff --git a/.gitmodules b/.gitmodules index 7515ff9..1b8f888 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "FontStashSharp"] path = ThirdParty/FontStashSharp url = https://github.com/FontStashSharp/FontStashSharp +[submodule "ThirdParty/MonoGame.Extended"] + path = ThirdParty/MonoGame.Extended + url = https://github.com/craftworkgames/MonoGame.Extended diff --git a/CHANGELOG.md b/CHANGELOG.md index 17a2081..5ec39b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,11 @@ Fixes - Fixed auto-sized elements sometimes updating their location based on outdated parent positions - Fixed Panel.ScrollToElement not scrolling correctly when the panel's area is dirty +### MLEM.Extended +Improvements +- **Added compatibility for MonoGame.Extended 4.0.0** +- Added compatibility for FNA.Extended + ## 6.3.1 No code changes diff --git a/MLEM.Extended/Extensions/SpriteBatchExtensions.cs b/MLEM.Extended/Extensions/SpriteBatchExtensions.cs index d72c511..1e6f52e 100644 --- a/MLEM.Extended/Extensions/SpriteBatchExtensions.cs +++ b/MLEM.Extended/Extensions/SpriteBatchExtensions.cs @@ -1,7 +1,8 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using MLEM.Extensions; -using MonoGame.Extended; +using ShapeExtensions = MonoGame.Extended.ShapeExtensions; +using RectangleF = MonoGame.Extended.RectangleF; namespace MLEM.Extended.Extensions { /// @@ -54,11 +55,11 @@ namespace MLEM.Extended.Extensions { public static void DrawGrid(this SpriteBatch batch, Vector2 start, Vector2 tileSize, Point tileCount, Color gridColor, float gridThickness = 1) { for (var y = 0; y < tileCount.Y; y++) { for (var x = 0; x < tileCount.X; x++) - batch.DrawRectangle(start + new Vector2(x, y) * tileSize, tileSize, gridColor, gridThickness / 2); + ShapeExtensions.DrawRectangle(batch, start + new Vector2(x, y) * tileSize, tileSize, gridColor, gridThickness / 2); } var size = tileSize * tileCount.ToVector2() + new Vector2(gridThickness); - batch.DrawRectangle(start - new Vector2(gridThickness / 2), size, gridColor, gridThickness / 2); + ShapeExtensions.DrawRectangle(batch, start - new Vector2(gridThickness / 2), size, gridColor, gridThickness / 2); } } diff --git a/MLEM.Extended/Extensions/TextureExtensions.cs b/MLEM.Extended/Extensions/TextureExtensions.cs index 44418ab..31907b8 100644 --- a/MLEM.Extended/Extensions/TextureExtensions.cs +++ b/MLEM.Extended/Extensions/TextureExtensions.cs @@ -1,6 +1,8 @@ using MLEM.Extensions; using MLEM.Textures; -using MonoGame.Extended.TextureAtlases; +using MonoGame.Extended.Graphics; +using NinePatch = MLEM.Textures.NinePatch; +using ExtNinePatch = MonoGame.Extended.Graphics.NinePatch; namespace MLEM.Extended.Extensions { /// @@ -9,38 +11,29 @@ namespace MLEM.Extended.Extensions { public static class TextureExtensions { /// - /// Converts a MLEM to a MonoGame.Extended . + /// Converts a MLEM to a MonoGame.Extended . /// /// The nine patch to convert /// The converted nine patch - public static NinePatchRegion2D ToExtended(this NinePatch patch) { - return new NinePatchRegion2D(patch.Region.ToExtended(), patch.Padding.Left.Floor(), patch.Padding.Top.Floor(), patch.Padding.Right.Floor(), patch.Padding.Bottom.Floor()); + public static ExtNinePatch ToExtended(this NinePatch patch) { + return patch.Region.ToExtended().CreateNinePatch(patch.Padding.Left.Floor(), patch.Padding.Top.Floor(), patch.Padding.Right.Floor(), patch.Padding.Bottom.Floor()); } /// - /// Converts a MLEM to a MonoGame.Extended . + /// Converts a MLEM to a MonoGame.Extended . /// /// The nine patch to convert /// The converted nine patch - public static TextureRegion2D ToExtended(this TextureRegion region) { - return new TextureRegion2D(region.Name, region.Texture, region.U, region.V, region.Width, region.Height); + public static Texture2DRegion ToExtended(this TextureRegion region) { + return new Texture2DRegion(region.Texture, region.U, region.V, region.Width, region.Height, region.Name); } /// - /// Converts a MonoGame.Extended to a MLEM . - /// - /// The nine patch to convert - /// The converted nine patch - public static NinePatch ToMlem(this NinePatchRegion2D patch) { - return new NinePatch(((TextureRegion2D) patch).ToMlem(), patch.LeftPadding, patch.RightPadding, patch.TopPadding, patch.BottomPadding); - } - - /// - /// Converts a MonoGame.Extended to a MLEM . + /// Converts a MonoGame.Extended to a MLEM . /// /// The nine patch to convert /// The converted nine patch - public static TextureRegion ToMlem(this TextureRegion2D region) { + public static TextureRegion ToMlem(this Texture2DRegion region) { return new TextureRegion(region.Texture, region.Bounds) {Name = region.Name}; } diff --git a/MLEM.Extended/Font/GenericBitmapFont.cs b/MLEM.Extended/Font/GenericBitmapFont.cs index 5caf097..52a368b 100644 --- a/MLEM.Extended/Font/GenericBitmapFont.cs +++ b/MLEM.Extended/Font/GenericBitmapFont.cs @@ -33,8 +33,8 @@ namespace MLEM.Extended.Font { /// protected override float MeasureCharacter(int codePoint) { - var region = this.Font.GetCharacterRegion(codePoint); - return region != null ? new Vector2(region.XAdvance, region.Height).X : 0; + var region = this.Font.GetCharacter(codePoint); + return region != null ? new Vector2(region.XAdvance, region.TextureRegion.Height).X : 0; } /// diff --git a/MLEM.Extended/MLEM.Extended.FNA.csproj b/MLEM.Extended/MLEM.Extended.FNA.csproj index 1b70a8a..48dfa26 100644 --- a/MLEM.Extended/MLEM.Extended.FNA.csproj +++ b/MLEM.Extended/MLEM.Extended.FNA.csproj @@ -24,13 +24,18 @@ + + all + all all + + diff --git a/MLEM.Extended/MLEM.Extended.csproj b/MLEM.Extended/MLEM.Extended.csproj index 0c1c934..6ede548 100644 --- a/MLEM.Extended/MLEM.Extended.csproj +++ b/MLEM.Extended/MLEM.Extended.csproj @@ -21,10 +21,7 @@ - - all - - + all @@ -35,6 +32,12 @@ + + + + + + diff --git a/MLEM.Extended/Tiled/TiledExtensions.cs b/MLEM.Extended/Tiled/TiledExtensions.cs index cb1d575..5bca79d 100644 --- a/MLEM.Extended/Tiled/TiledExtensions.cs +++ b/MLEM.Extended/Tiled/TiledExtensions.cs @@ -145,7 +145,7 @@ namespace MLEM.Extended.Tiled { var tilesetTile = tileset.Tiles.FirstOrDefault(t => t.LocalTileIdentifier == localId); if (tilesetTile == null && createStub) { if (!TiledExtensions.StubTilesetTiles.TryGetValue(localId, out tilesetTile)) { - tilesetTile = new TiledMapTilesetTile(localId); + tilesetTile = new TiledMapTilesetTile(localId, null, null); TiledExtensions.StubTilesetTiles.Add(localId, tilesetTile); } } diff --git a/MLEM.FNA.sln b/MLEM.FNA.sln index f1f9d6b..98718e1 100644 --- a/MLEM.FNA.sln +++ b/MLEM.FNA.sln @@ -20,7 +20,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA", "ThirdParty\FNA\FNA.c EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FontStashSharp.FNA", "ThirdParty\FontStashSharp\src\XNA\FontStashSharp.FNA.csproj", "{39249E92-EBF2-4951-A086-AB4951C3CCE1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA.Core", "ThirdParty\FNA\FNA.Core.csproj", "{458FFA5E-A1C4-4B23-A5D8-259385FEECED}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA.Extended", "ThirdParty\MonoGame.Extended\source\MonoGame.Extended\FNA.Extended.csproj", "{B7F73499-9BF0-487D-B20E-B4B67EB3A4EA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA.NetStandard", "ThirdParty\FNA\FNA.NetStandard.csproj", "{1A736385-E931-40A9-BBE0-A9286AB2F6B2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -72,5 +74,13 @@ Global {458FFA5E-A1C4-4B23-A5D8-259385FEECED}.Debug|Any CPU.Build.0 = Debug|x64 {458FFA5E-A1C4-4B23-A5D8-259385FEECED}.Release|Any CPU.ActiveCfg = Release|x64 {458FFA5E-A1C4-4B23-A5D8-259385FEECED}.Release|Any CPU.Build.0 = Release|x64 + {B7F73499-9BF0-487D-B20E-B4B67EB3A4EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7F73499-9BF0-487D-B20E-B4B67EB3A4EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7F73499-9BF0-487D-B20E-B4B67EB3A4EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7F73499-9BF0-487D-B20E-B4B67EB3A4EA}.Release|Any CPU.Build.0 = Release|Any CPU + {1A736385-E931-40A9-BBE0-A9286AB2F6B2}.Debug|Any CPU.ActiveCfg = Debug|x64 + {1A736385-E931-40A9-BBE0-A9286AB2F6B2}.Debug|Any CPU.Build.0 = Debug|x64 + {1A736385-E931-40A9-BBE0-A9286AB2F6B2}.Release|Any CPU.ActiveCfg = Release|x64 + {1A736385-E931-40A9-BBE0-A9286AB2F6B2}.Release|Any CPU.Build.0 = Release|x64 EndGlobalSection EndGlobal diff --git a/ThirdParty/FNA b/ThirdParty/FNA index 354e216..31dab88 160000 --- a/ThirdParty/FNA +++ b/ThirdParty/FNA @@ -1 +1 @@ -Subproject commit 354e2161b759fa052b25e94209d6ea463aaf098f +Subproject commit 31dab885817ddaece9758f480027373f0ad74bea diff --git a/ThirdParty/FontStashSharp b/ThirdParty/FontStashSharp index 2d40e9f..c5ab7bc 160000 --- a/ThirdParty/FontStashSharp +++ b/ThirdParty/FontStashSharp @@ -1 +1 @@ -Subproject commit 2d40e9f0f681595dbd4341a3e5a64ed6e31f9556 +Subproject commit c5ab7bc22a0db85d1b43880a016ee1c968e522e8 diff --git a/ThirdParty/MonoGame.Extended b/ThirdParty/MonoGame.Extended new file mode 160000 index 0000000..4beea37 --- /dev/null +++ b/ThirdParty/MonoGame.Extended @@ -0,0 +1 @@ +Subproject commit 4beea37b25f014ef4925365ea56ade23028af3d7