Rename and tweak post-render interfaces.

This commit is contained in:
Paul Chote
2016-08-22 16:50:49 +01:00
parent f1990853df
commit 11805bb567
24 changed files with 129 additions and 143 deletions

View File

@@ -41,25 +41,23 @@ namespace OpenRA.Mods.Common.Traits.Render
public int[] SelectionBoxBounds { get { return VisualBounds; } }
}
public class SelectionDecorations : IPostRenderSelection, ITick
public class SelectionDecorations : IRenderAboveShroudWhenSelected, ITick
{
// depends on the order of pips in TraitsInterfaces.cs!
static readonly string[] PipStrings = { "pip-empty", "pip-green", "pip-yellow", "pip-red", "pip-gray", "pip-blue", "pip-ammo", "pip-ammoempty" };
public readonly SelectionDecorationsInfo Info;
readonly Actor self;
readonly Animation pipImages;
public SelectionDecorations(Actor self, SelectionDecorationsInfo info)
{
this.self = self;
Info = info;
pipImages = new Animation(self.World, Info.Image);
}
IEnumerable<WPos> ActivityTargetPath()
IEnumerable<WPos> ActivityTargetPath(Actor self)
{
if (!self.IsInWorld || self.IsDead)
yield break;
@@ -75,7 +73,7 @@ namespace OpenRA.Mods.Common.Traits.Render
}
}
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr)
IEnumerable<IRenderable> IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr)
{
if (self.World.FogObscures(self))
yield break;
@@ -90,18 +88,18 @@ namespace OpenRA.Mods.Common.Traits.Render
yield break;
if (self.World.LocalPlayer != null && self.World.LocalPlayer.PlayerActor.Trait<DeveloperMode>().PathDebug)
yield return new TargetLineRenderable(ActivityTargetPath(), Color.Green);
yield return new TargetLineRenderable(ActivityTargetPath(self), Color.Green);
var b = self.VisualBounds;
var pos = wr.ScreenPxPosition(self.CenterPosition);
var bl = wr.Viewport.WorldToViewPx(pos + new int2(b.Left, b.Bottom));
var pal = wr.Palette(Info.Palette);
foreach (var r in DrawPips(wr, self, bl, pal))
foreach (var r in DrawPips(self, wr, bl, pal))
yield return r;
}
IEnumerable<IRenderable> DrawPips(WorldRenderer wr, Actor self, int2 basePosition, PaletteReference palette)
IEnumerable<IRenderable> DrawPips(Actor self, WorldRenderer wr, int2 basePosition, PaletteReference palette)
{
var pipSources = self.TraitsImplementing<IPips>();
if (!pipSources.Any())