From a480b2e2fdffb264c5079a905caaf2139b1c2e7c Mon Sep 17 00:00:00 2001 From: Kara Date: Thu, 14 Jul 2022 08:38:21 -0700 Subject: [PATCH] Guard against weird renderer bug (#9720) --- Content.MapRenderer/Painters/EntityPainter.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Content.MapRenderer/Painters/EntityPainter.cs b/Content.MapRenderer/Painters/EntityPainter.cs index 4de2617c9d..0ef968b2d5 100644 --- a/Content.MapRenderer/Painters/EntityPainter.cs +++ b/Content.MapRenderer/Painters/EntityPainter.cs @@ -112,7 +112,14 @@ public sealed class EntityPainter var (x, y, width, height) = GetRsiFrame(rsi, image, entity, layer, dir); - image.Mutate(o => o.Crop(new Rectangle(x, y, width, height))); + var rect = new Rectangle(x, y, width, height); + if (!new Rectangle(Point.Empty, image.Size()).Contains(rect)) + { + Console.WriteLine($"Invalid layer {rsi!.Path}/{layer.RsiState.Name}.png for entity {_sEntityManager.ToPrettyString(entity.Sprite.Owner)} at ({entity.X}, {entity.Y})"); + return; + } + + image.Mutate(o => o.Crop(rect)); var colorMix = entity.Sprite.Color * layer.Color; var imageColor = Color.FromRgba(colorMix.RByte, colorMix.GByte, colorMix.BByte, colorMix.AByte);