Fix map rendering (#8514)
* Fix negative grids * Map renderer: skip, and warn on empty grids. * Fix local transform
This commit is contained in:
@@ -138,8 +138,8 @@ namespace Content.MapRenderer.Painters
|
||||
|
||||
private (float x, float y) TransformLocalPosition(Vector2 position, IMapGrid grid)
|
||||
{
|
||||
var xOffset = (int) Math.Abs(grid.LocalAABB.Left);
|
||||
var yOffset = (int) Math.Abs(grid.LocalAABB.Bottom);
|
||||
var xOffset = (int) -grid.LocalAABB.Left;
|
||||
var yOffset = (int) -grid.LocalAABB.Bottom;
|
||||
var tileSize = grid.TileSize;
|
||||
|
||||
var x = ((float) Math.Floor(position.X) + xOffset) * tileSize * TilePainter.TileImageSize;
|
||||
|
||||
@@ -111,6 +111,13 @@ namespace Content.MapRenderer.Painters
|
||||
|
||||
foreach (var grid in grids)
|
||||
{
|
||||
// Skip empty grids
|
||||
if (grid.LocalAABB.IsEmpty())
|
||||
{
|
||||
Console.WriteLine($"Warning: Grid {grid.Index} was empty. Skipping image rendering.");
|
||||
continue;;
|
||||
}
|
||||
|
||||
var tileXSize = grid.TileSize * TilePainter.TileImageSize;
|
||||
var tileYSize = grid.TileSize * TilePainter.TileImageSize;
|
||||
|
||||
|
||||
@@ -32,8 +32,8 @@ namespace Content.MapRenderer.Painters
|
||||
stopwatch.Start();
|
||||
|
||||
var bounds = grid.LocalAABB;
|
||||
var xOffset = Math.Abs(bounds.Left);
|
||||
var yOffset = Math.Abs(bounds.Bottom);
|
||||
var xOffset = -bounds.Left;
|
||||
var yOffset = -bounds.Bottom;
|
||||
var tileSize = grid.TileSize * TileImageSize;
|
||||
|
||||
var images = GetTileImages(_sTileDefinitionManager, _cResourceCache, tileSize);
|
||||
|
||||
Reference in New Issue
Block a user