Change IOrderGenerator.RenderAfterWorld to return Renderables.

This commit is contained in:
Paul Chote
2014-07-21 23:49:41 +12:00
parent da6ecbf92e
commit 0884722c4b
14 changed files with 32 additions and 31 deletions

View File

@@ -91,6 +91,9 @@ namespace OpenRA.Graphics
var effectRenderables = world.Effects
.SelectMany(e => e.Render(this));
if (world.OrderGenerator != null)
effectRenderables = effectRenderables.Concat(world.OrderGenerator.RenderAfterWorld(this, world));
// Iterating via foreach() copies the structs, so enumerate by index
var renderables = worldRenderables.Concat(effectRenderables).ToList();
@@ -124,9 +127,6 @@ namespace OpenRA.Graphics
if (a.Actor.IsInWorld && !a.Actor.Destroyed)
a.Trait.RenderAfterWorld(this, a.Actor);
if (world.OrderGenerator != null)
world.OrderGenerator.RenderAfterWorld(this, world);
var renderShroud = world.RenderPlayer != null ? world.RenderPlayer.Shroud : null;
foreach (var a in world.ActorsWithTrait<IRenderShroud>())

View File

@@ -65,7 +65,7 @@ namespace OpenRA.Orders
public virtual void Tick(World world) { }
public IEnumerable<IRenderable> Render(WorldRenderer wr, World world) { yield break; }
public void RenderAfterWorld(WorldRenderer wr, World world) { }
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr, World world) { yield break; }
public string GetCursor(World world, CPos xy, MouseInput mi) { return world.Map.Contains(xy) ? cursor : "generic-blocked"; }
}
}

View File

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

View File

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