]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add support for rotatable tiles in map renderer (#37342)
authorSlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Thu, 15 May 2025 00:12:14 +0000 (02:12 +0200)
committerGitHub <noreply@github.com>
Thu, 15 May 2025 00:12:14 +0000 (20:12 -0400)
* Initial commit

* Fixyfixfix

Content.MapRenderer/Painters/TilePainter.cs

index 4856c181da62f67b6311722fdc35f128570942af..114db8cb5eb8392ec8dd7eb98fac89f3013a052f 100644 (file)
@@ -54,7 +54,27 @@ namespace Content.MapRenderer.Painters
 
                 var x = (int) (tile.X + xOffset + customOffset.X);
                 var y = (int) (tile.Y + yOffset + customOffset.Y);
-                var image = images[path][tile.Tile.Variant];
+                var image = images[path][tile.Tile.Variant].CloneAs<Rgba32>();
+
+                switch (tile.Tile.RotationMirroring % 4)
+                {
+                    case 0:
+                        break;
+                    case 1:
+                        image.Mutate(o => o.Rotate(90f));
+                        break;
+                    case 2:
+                        image.Mutate(o => o.Rotate(180f));
+                        break;
+                    case 3:
+                        image.Mutate(o => o.Rotate(270f));
+                        break;
+                }
+
+                if (tile.Tile.RotationMirroring > 3)
+                {
+                    image.Mutate(o => o.Flip(FlipMode.Horizontal));
+                }
 
                 gridCanvas.Mutate(o => o.DrawImage(image, new Point(x * tileSize, y * tileSize), 1));