Draw order generator renderables above the shroud.

This commit is contained in:
Paul Chote
2016-08-22 18:38:25 +01:00
parent b016638ebe
commit d2f5fe7380
13 changed files with 40 additions and 37 deletions

View File

@@ -111,9 +111,6 @@ namespace OpenRA.Graphics
worldRenderables = worldRenderables.Concat(World.Effects.SelectMany(e => e.Render(this)));
worldRenderables = worldRenderables.OrderBy(RenderableScreenZPositionComparisonKey);
if (World.OrderGenerator != null)
worldRenderables = worldRenderables.Concat(World.OrderGenerator.RenderAfterWorld(this, World));
Game.Renderer.WorldVoxelRenderer.BeginFrame();
var renderables = worldRenderables.Select(r => r.PrepareRender(this)).ToList();
Game.Renderer.WorldVoxelRenderer.EndFrame();
@@ -185,10 +182,15 @@ namespace OpenRA.Graphics
.Where(e => e != null)
.SelectMany(e => e.RenderAboveShroud(this));
var aboveShroudOrderGenerator = SpriteRenderable.None;
if (World.OrderGenerator != null)
aboveShroudOrderGenerator = World.OrderGenerator.RenderAboveShroud(this, World);
Game.Renderer.WorldVoxelRenderer.BeginFrame();
var finalOverlayRenderables = aboveShroud
.Concat(aboveShroudSelected)
.Concat(aboveShroudEffects)
.Concat(aboveShroudOrderGenerator)
.Select(r => r.PrepareRender(this));
Game.Renderer.WorldVoxelRenderer.EndFrame();

View File

@@ -19,7 +19,7 @@ namespace OpenRA
IEnumerable<Order> Order(World world, CPos cell, int2 worldPixel, MouseInput mi);
void Tick(World world);
IEnumerable<IRenderable> Render(WorldRenderer wr, World world);
IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr, World world);
IEnumerable<IRenderable> RenderAboveShroud(WorldRenderer wr, World world);
string GetCursor(World world, CPos cell, int2 worldPixel, MouseInput mi);
}
}

View File

@@ -61,7 +61,7 @@ namespace OpenRA.Orders
public virtual void Tick(World world) { }
public virtual IEnumerable<IRenderable> Render(WorldRenderer wr, World world) { yield break; }
public virtual IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr, World world) { yield break; }
public virtual IEnumerable<IRenderable> RenderAboveShroud(WorldRenderer wr, World world) { yield break; }
public virtual string GetCursor(World world, CPos cell, int2 worldPixel, MouseInput mi)
{