Sort renderables in-place in WorldRenderer.GenerateRenderables

This commit is contained in:
RoosterDragon
2020-10-11 11:54:35 +01:00
committed by abcdefg30
parent 2adee1e374
commit 71e3ca4493
5 changed files with 8 additions and 6 deletions

View File

@@ -95,7 +95,7 @@ namespace OpenRA.Mods.Common.Traits
foreach (var r in RenderFootprint(wr, topLeft, footprint, info.FootprintUnderPreview))
yield return r;
foreach (var r in previewRenderables.OrderBy(WorldRenderer.RenderableScreenZPositionComparisonKey))
foreach (var r in previewRenderables.OrderBy(WorldRenderer.RenderableZPositionComparisonKey))
yield return r;
if (info.FootprintOverPreview != PlaceBuildingCellType.None)

View File

@@ -249,7 +249,7 @@ namespace OpenRA.Mods.Common.Traits
var offset = body.LocalToWorld(CarryableOffset.Rotate(body.QuantizeOrientation(self, self.Orientation)));
var previewRenderables = carryablePreview
.SelectMany(p => p.Render(wr, self.CenterPosition + offset))
.OrderBy(WorldRenderer.RenderableScreenZPositionComparisonKey);
.OrderBy(WorldRenderer.RenderableZPositionComparisonKey);
foreach (var r in previewRenderables)
yield return r;

View File

@@ -147,7 +147,7 @@ namespace OpenRA.Mods.Common.Traits
return terrainOrResourcePreview;
if (Type == EditorCursorType.Actor)
return Actor.Render().OrderBy(WorldRenderer.RenderableScreenZPositionComparisonKey);
return Actor.Render().OrderBy(WorldRenderer.RenderableZPositionComparisonKey);
return NoRenderables;
}

View File

@@ -67,7 +67,7 @@ namespace OpenRA.Mods.Common.Widgets
renderables = preview
.SelectMany(p => p.RenderUI(worldRenderer, origin, scale))
.OrderBy(WorldRenderer.RenderableScreenZPositionComparisonKey)
.OrderBy(WorldRenderer.RenderableZPositionComparisonKey)
.Select(r => r.PrepareRender(worldRenderer))
.ToArray();
}