Migrate traits to IRenderAnnotations.

This commit is contained in:
Paul Chote
2019-09-14 09:26:14 +01:00
committed by abcdefg30
parent edaa7918fc
commit 1dc84f48de
19 changed files with 90 additions and 79 deletions

View File

@@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Traits
public object Create(ActorInitializer init) { return new CombatDebugOverlay(init.Self); }
}
public class CombatDebugOverlay : IRenderAboveShroud, INotifyDamage, INotifyCreated
public class CombatDebugOverlay : IRenderAnnotations, INotifyDamage, INotifyCreated
{
static readonly WVec TargetPosHLine = new WVec(0, 128, 0);
static readonly WVec TargetPosVLine = new WVec(128, 0, 0);
@@ -52,14 +52,11 @@ namespace OpenRA.Mods.Common.Traits
allBlockers = self.TraitsImplementing<IBlocksProjectiles>().ToArray();
}
IEnumerable<IRenderable> IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr)
IEnumerable<IRenderable> IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr)
{
if (debugVis == null || !debugVis.CombatGeometry || self.World.FogObscures(self))
yield break;
var wcr = Game.Renderer.WorldRgbaColorRenderer;
var iz = 1 / wr.Viewport.Zoom;
var blockers = allBlockers.Where(Exts.IsTraitEnabled).ToList();
if (blockers.Count > 0)
{
@@ -80,13 +77,13 @@ namespace OpenRA.Mods.Common.Traits
}
foreach (var attack in self.TraitsImplementing<AttackBase>().Where(x => !x.IsTraitDisabled))
foreach (var r in RenderArmaments(self, attack, wr, wcr, iz))
foreach (var r in RenderArmaments(self, attack))
yield return r;
}
bool IRenderAboveShroud.SpatiallyPartitionable { get { return true; } }
bool IRenderAnnotations.SpatiallyPartitionable { get { return true; } }
IEnumerable<IRenderable> RenderArmaments(Actor self, AttackBase attack, WorldRenderer wr, RgbaColorRenderer wcr, float iz)
IEnumerable<IRenderable> RenderArmaments(Actor self, AttackBase attack)
{
// Fire ports on garrisonable structures
var garrison = attack as AttackGarrisoned;