From 24277ba4946d032a583c238b40e900c58feef5bd Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 27 Jun 2024 22:24:11 +0200 Subject: [PATCH] Allow AutoTiling overlayTextures to return null texture regions --- CHANGELOG.md | 1 + MLEM/Graphics/AutoTiling.cs | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2492978..17a2081 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ Additions Improvements - Allow NumberExtensions.GetPoints to include bottom and right coordinates +- Allow AutoTiling overlayTextures to return null texture regions ### MLEM.Ui Additions diff --git a/MLEM/Graphics/AutoTiling.cs b/MLEM/Graphics/AutoTiling.cs index fb5f3f0..2934483 100644 --- a/MLEM/Graphics/AutoTiling.cs +++ b/MLEM/Graphics/AutoTiling.cs @@ -131,8 +131,11 @@ namespace MLEM.Graphics { /// public static void DrawExtendedAutoTileCorner(SpriteBatch batch, Vector2 pos, Func overlayTextures, ConnectsTo connectsTo, Color overlayColor, Direction2 corner, Vector2? origin = null, Vector2? scale = null, float layerDepth = 0) { var src = AutoTiling.CalculateExtendedAutoTileOffset(connectsTo, corner); - if (src >= 0) - batch.Draw(overlayTextures(src), pos, overlayColor, 0, origin ?? Vector2.Zero, scale ?? Vector2.One, SpriteEffects.None, layerDepth); + if (src >= 0) { + var tex = overlayTextures(src); + if (tex != null) + batch.Draw(tex, pos, overlayColor, 0, origin ?? Vector2.Zero, scale ?? Vector2.One, SpriteEffects.None, layerDepth); + } } /// @@ -174,8 +177,11 @@ namespace MLEM.Graphics { public static void AddExtendedAutoTileCorner(StaticSpriteBatch batch, Vector2 pos, Func overlayTextures, ConnectsTo connectsTo, Color overlayColor, Direction2 corner, Vector2? origin = null, Vector2? scale = null, float layerDepth = 0, ICollection items = null) { var src = AutoTiling.CalculateExtendedAutoTileOffset(connectsTo, corner); if (src >= 0) { - var o4 = batch.Add(overlayTextures(src), pos, overlayColor, 0, origin ?? Vector2.Zero, scale ?? Vector2.One, SpriteEffects.None, layerDepth); - items?.Add(o4); + var tex = overlayTextures(src); + if (tex != null) { + var o4 = batch.Add(tex, pos, overlayColor, 0, origin ?? Vector2.Zero, scale ?? Vector2.One, SpriteEffects.None, layerDepth); + items?.Add(o4); + } } }