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

@@ -79,7 +79,7 @@ namespace OpenRA.Mods.RA
}
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)
{

View File

@@ -170,10 +170,10 @@ namespace OpenRA.Mods.RA
CPos lastMousePos;
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)
{
if (!minelayer.IsInWorld)
return;
yield break;
var movement = minelayer.Trait<IPositionable>();
var minefield = GetMinefieldCells(minefieldStart, lastMousePos,
@@ -183,8 +183,8 @@ namespace OpenRA.Mods.RA
foreach (var c in minefield)
{
var tile = movement.CanEnterCell(c) ? tileOk : tileBlocked;
new SpriteRenderable(tile, world.Map.CenterOfCell(c),
WVec.Zero, -511, pal, 1f, true).Render(wr);
yield return new SpriteRenderable(tile, world.Map.CenterOfCell(c),
WVec.Zero, -511, pal, 1f, true);
}
}

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA.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.ShroudObscures(xy) ? "ability" : "generic-blocked"; }
}
}

View File

@@ -80,7 +80,7 @@ namespace OpenRA.Mods.RA.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)
{
var xy = wr.Viewport.ViewToWorld(Viewport.LastMousePos);
var topLeft = xy - FootprintUtils.AdjustForBuildingSize(BuildingInfo);
@@ -90,7 +90,7 @@ namespace OpenRA.Mods.RA.Orders
var actorInfo = rules.Actors[Building];
foreach (var dec in actorInfo.Traits.WithInterface<IPlaceBuildingDecoration>())
foreach (var r in dec.Render(wr, world, actorInfo, world.Map.CenterOfCell(xy)))
r.Render(wr);
yield return r;
var cells = new Dictionary<CPos, bool>();
// Linebuild for walls.
@@ -120,7 +120,7 @@ namespace OpenRA.Mods.RA.Orders
var offset = world.Map.CenterOfCell(topLeft) + FootprintUtils.CenterOffset(world, BuildingInfo) - WPos.Zero;
foreach (var r in preview)
r.OffsetBy(offset).Render(wr);
yield return r.OffsetBy(offset);
var res = world.WorldActor.Trait<ResourceLayer>();
var isCloseEnough = BuildingInfo.IsCloseEnoughToBase(world, world.LocalPlayer, Building, topLeft);
@@ -132,8 +132,8 @@ namespace OpenRA.Mods.RA.Orders
foreach (var c in cells)
{
var tile = c.Value ? buildOk : buildBlocked;
new SpriteRenderable(tile, world.Map.CenterOfCell(c.Key),
WVec.Zero, -511, pal, 1f, true).Render(wr);
yield return new SpriteRenderable(tile, world.Map.CenterOfCell(c.Key),
WVec.Zero, -511, pal, 1f, true);
}
}

View File

@@ -54,7 +54,7 @@ namespace OpenRA.Mods.RA.Orders
}
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)
{

View File

@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Orders
}
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)
{

View File

@@ -173,21 +173,21 @@ namespace OpenRA.Mods.RA
yield break;
}
public void RenderAfterWorld(WorldRenderer wr, World world)
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr, World world)
{
if (!self.IsInWorld || self.Owner != self.World.LocalPlayer)
return;
yield break;
if (!self.Trait<PortableChrono>().Info.HasDistanceLimit)
return;
yield break;
new RangeCircleRenderable(
yield return new RangeCircleRenderable(
self.CenterPosition,
WRange.FromCells(self.Trait<PortableChrono>().Info.MaxDistance),
0,
Color.FromArgb(128, Color.LawnGreen),
Color.FromArgb(96, Color.Black)
).Render(wr);
);
}
public string GetCursor(World world, CPos xy, MouseInput mi)

View File

@@ -121,13 +121,14 @@ namespace OpenRA.Mods.RA
world.CancelInputMode();
}
public void RenderAfterWorld(WorldRenderer wr, World world)
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr, World world)
{
var xy = wr.Viewport.ViewToWorld(Viewport.LastMousePos);
var targetUnits = power.UnitsInRange(xy);
foreach (var unit in targetUnits)
if (manager.self.Owner.Shroud.IsTargetable(unit))
new SelectionBoxRenderable(unit, Color.Red).Render(wr);
yield return new SelectionBoxRenderable(unit, Color.Red);
}
public IEnumerable<IRenderable> Render(WorldRenderer wr, World world)
@@ -203,11 +204,11 @@ namespace OpenRA.Mods.RA
world.CancelInputMode();
}
public void RenderAfterWorld(WorldRenderer wr, World world)
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr, World world)
{
foreach (var unit in power.UnitsInRange(sourceLocation))
if (manager.self.Owner.Shroud.IsTargetable(unit))
new SelectionBoxRenderable(unit, Color.Red).Render(wr);
yield return new SelectionBoxRenderable(unit, Color.Red);
}
public IEnumerable<IRenderable> Render(WorldRenderer wr, World world)

View File

@@ -98,11 +98,11 @@ namespace OpenRA.Mods.RA
world.CancelInputMode();
}
public void RenderAfterWorld(WorldRenderer wr, World world)
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr, World world)
{
var xy = wr.Viewport.ViewToWorld(Viewport.LastMousePos);
foreach (var unit in power.UnitsInRange(xy))
new SelectionBoxRenderable(unit, Color.Red).Render(wr);
yield return new SelectionBoxRenderable(unit, Color.Red);
}
public IEnumerable<IRenderable> Render(WorldRenderer wr, World world)

View File

@@ -258,7 +258,7 @@ namespace OpenRA.Mods.RA
}
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"; }
}
}