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)
|
private (float x, float y) TransformLocalPosition(Vector2 position, IMapGrid grid)
|
||||||
{
|
{
|
||||||
var xOffset = (int) Math.Abs(grid.LocalAABB.Left);
|
var xOffset = (int) -grid.LocalAABB.Left;
|
||||||
var yOffset = (int) Math.Abs(grid.LocalAABB.Bottom);
|
var yOffset = (int) -grid.LocalAABB.Bottom;
|
||||||
var tileSize = grid.TileSize;
|
var tileSize = grid.TileSize;
|
||||||
|
|
||||||
var x = ((float) Math.Floor(position.X) + xOffset) * tileSize * TilePainter.TileImageSize;
|
var x = ((float) Math.Floor(position.X) + xOffset) * tileSize * TilePainter.TileImageSize;
|
||||||
|
|||||||
@@ -111,6 +111,13 @@ namespace Content.MapRenderer.Painters
|
|||||||
|
|
||||||
foreach (var grid in grids)
|
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 tileXSize = grid.TileSize * TilePainter.TileImageSize;
|
||||||
var tileYSize = grid.TileSize * TilePainter.TileImageSize;
|
var tileYSize = grid.TileSize * TilePainter.TileImageSize;
|
||||||
|
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ namespace Content.MapRenderer.Painters
|
|||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
|
|
||||||
var bounds = grid.LocalAABB;
|
var bounds = grid.LocalAABB;
|
||||||
var xOffset = Math.Abs(bounds.Left);
|
var xOffset = -bounds.Left;
|
||||||
var yOffset = Math.Abs(bounds.Bottom);
|
var yOffset = -bounds.Bottom;
|
||||||
var tileSize = grid.TileSize * TileImageSize;
|
var tileSize = grid.TileSize * TileImageSize;
|
||||||
|
|
||||||
var images = GetTileImages(_sTileDefinitionManager, _cResourceCache, tileSize);
|
var images = GetTileImages(_sTileDefinitionManager, _cResourceCache, tileSize);
|
||||||
|
|||||||
Reference in New Issue
Block a user