diff --git a/OpenRA.Mods.Cnc/Traits/Render/RenderJammerCircle.cs b/OpenRA.Mods.Cnc/Traits/Render/RenderJammerCircle.cs index dc8a81ddfd..20cd072aa9 100644 --- a/OpenRA.Mods.Cnc/Traits/Render/RenderJammerCircle.cs +++ b/OpenRA.Mods.Cnc/Traits/Render/RenderJammerCircle.cs @@ -36,14 +36,14 @@ namespace OpenRA.Mods.Cnc.Traits foreach (var a in w.ActorsWithTrait()) if (a.Actor.Owner.IsAlliedWith(w.RenderPlayer)) - foreach (var r in a.Trait.RenderAboveShroud(a.Actor, wr)) + foreach (var r in a.Trait.RenderAnnotations(a.Actor, wr)) yield return r; } } - class RenderJammerCircle : IRenderAboveShroudWhenSelected + class RenderJammerCircle : IRenderAnnotationsWhenSelected { - public IEnumerable RenderAboveShroud(Actor self, WorldRenderer wr) + public IEnumerable RenderAnnotations(Actor self, WorldRenderer wr) { if (!self.Owner.IsAlliedWith(self.World.RenderPlayer)) yield break; @@ -60,6 +60,6 @@ namespace OpenRA.Mods.Cnc.Traits } } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return false; } } } } diff --git a/OpenRA.Mods.Cnc/Traits/Render/RenderShroudCircle.cs b/OpenRA.Mods.Cnc/Traits/Render/RenderShroudCircle.cs index f5eaf9b653..8894155b41 100644 --- a/OpenRA.Mods.Cnc/Traits/Render/RenderShroudCircle.cs +++ b/OpenRA.Mods.Cnc/Traits/Render/RenderShroudCircle.cs @@ -51,7 +51,7 @@ namespace OpenRA.Mods.Cnc.Traits public object Create(ActorInitializer init) { return new RenderShroudCircle(init.Self, this); } } - class RenderShroudCircle : INotifyCreated, IRenderAboveShroudWhenSelected + class RenderShroudCircle : INotifyCreated, IRenderAnnotationsWhenSelected { readonly RenderShroudCircleInfo info; WDist range; @@ -82,11 +82,11 @@ namespace OpenRA.Mods.Cnc.Traits info.ContrastColor); } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { return RangeCircleRenderables(self, wr); } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return false; } } } } diff --git a/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs b/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs index cbceaa485b..a9cbe44435 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs @@ -27,7 +27,7 @@ namespace OpenRA.Mods.Common.Traits public override object Create(ActorInitializer init) { return new BaseProvider(init.Self, this); } } - public class BaseProvider : PausableConditionalTrait, ITick, IRenderAboveShroudWhenSelected, ISelectionBar + public class BaseProvider : PausableConditionalTrait, ITick, IRenderAnnotationsWhenSelected, ISelectionBar { readonly DeveloperMode devMode; readonly Actor self; @@ -89,12 +89,12 @@ namespace OpenRA.Mods.Common.Traits Color.FromArgb(96, Color.Black)); } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { return RangeCircleRenderables(wr); } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return false; } } float ISelectionBar.GetValue() { diff --git a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs index 34f9403b6d..fd3babd045 100644 --- a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs @@ -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().ToArray(); } - IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable 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().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 RenderArmaments(Actor self, AttackBase attack, WorldRenderer wr, RgbaColorRenderer wcr, float iz) + IEnumerable RenderArmaments(Actor self, AttackBase attack) { // Fire ports on garrisonable structures var garrison = attack as AttackGarrisoned; diff --git a/OpenRA.Mods.Common/Traits/ExitsDebugOverlay.cs b/OpenRA.Mods.Common/Traits/ExitsDebugOverlay.cs index 5e555b2a99..5b29b66e0d 100644 --- a/OpenRA.Mods.Common/Traits/ExitsDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/ExitsDebugOverlay.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Traits object ITraitInfo.Create(ActorInitializer init) { return new ExitsDebugOverlay(init.Self, this); } } - public class ExitsDebugOverlay : IRenderAboveShroudWhenSelected + public class ExitsDebugOverlay : IRenderAnnotationsWhenSelected { readonly ExitsDebugOverlayManager manager; readonly ExitsDebugOverlayInfo info; @@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Traits exits = self.Info.TraitInfos().ToArray(); } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { if (manager == null || !manager.Enabled) yield break; @@ -101,6 +101,6 @@ namespace OpenRA.Mods.Common.Traits } } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return true; } } } } diff --git a/OpenRA.Mods.Common/Traits/Render/CustomTerrainDebugOverlay.cs b/OpenRA.Mods.Common/Traits/Render/CustomTerrainDebugOverlay.cs index 04e844a3c9..90ef34b04a 100644 --- a/OpenRA.Mods.Common/Traits/Render/CustomTerrainDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/Render/CustomTerrainDebugOverlay.cs @@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Traits public object Create(ActorInitializer init) { return new CustomTerrainDebugOverlay(init.Self, this); } } - class CustomTerrainDebugOverlay : IWorldLoaded, IChatCommand, IRenderAboveShroud + class CustomTerrainDebugOverlay : IWorldLoaded, IChatCommand, IRenderAnnotations { const string CommandName = "debugcustomterrain"; const string CommandDesc = "toggles the custom terrain debug overlay."; @@ -57,7 +57,7 @@ namespace OpenRA.Mods.Common.Traits Enabled ^= true; } - IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr) { if (!Enabled) yield break; @@ -78,6 +78,6 @@ namespace OpenRA.Mods.Common.Traits } } - bool IRenderAboveShroud.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotations.SpatiallyPartitionable { get { return false; } } } } diff --git a/OpenRA.Mods.Common/Traits/Render/DrawLineToTarget.cs b/OpenRA.Mods.Common/Traits/Render/DrawLineToTarget.cs index 37cc8935cb..d6eb5e6929 100644 --- a/OpenRA.Mods.Common/Traits/Render/DrawLineToTarget.cs +++ b/OpenRA.Mods.Common/Traits/Render/DrawLineToTarget.cs @@ -38,7 +38,7 @@ namespace OpenRA.Mods.Common.Traits public virtual object Create(ActorInitializer init) { return new DrawLineToTarget(init.Self, this); } } - public class DrawLineToTarget : IRenderAboveShroudWhenSelected, INotifySelected + public class DrawLineToTarget : IRenderAboveShroud, IRenderAnnotationsWhenSelected, INotifySelected { readonly DrawLineToTargetInfo info; readonly List renderableCache = new List(); @@ -63,7 +63,29 @@ namespace OpenRA.Mods.Common.Traits ShowTargetLines(self); } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) + { + if (!self.Owner.IsAlliedWith(self.World.LocalPlayer) || Game.Settings.Game.TargetLines == TargetLinesType.Disabled) + yield break; + + // Players want to see the lines when in waypoint mode. + var force = Game.GetModifierKeys().HasModifier(Modifiers.Shift) || self.World.OrderGenerator is ForceModifiersOrderGenerator; + + if (--lifetime <= 0 && !force) + yield break; + + var pal = wr.Palette(TileSet.TerrainPaletteInternalName); + var a = self.CurrentActivity; + for (; a != null; a = a.NextActivity) + if (!a.IsCanceling) + foreach (var n in a.TargetLineNodes(self)) + if (n.Tile != null && n.Target.Type != TargetType.Invalid) + yield return new SpriteRenderable(n.Tile, n.Target.CenterPosition, WVec.Zero, -511, pal, 1f, true); + } + + bool IRenderAboveShroud.SpatiallyPartitionable { get { return false; } } + + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { if (!self.Owner.IsAlliedWith(self.World.LocalPlayer) || Game.Settings.Game.TargetLines == TargetLinesType.Disabled) return Enumerable.Empty(); @@ -84,20 +106,13 @@ namespace OpenRA.Mods.Common.Traits foreach (var n in a.TargetLineNodes(self)) { - if (n.Target.Type != TargetType.Invalid) + if (n.Target.Type != TargetType.Invalid && n.Tile == null) { var lineWidth = renderableCache.Any() ? info.QueuedLineWidth : info.LineWidth; var markerWidth = renderableCache.Any() ? info.QueuedMarkerWidth : info.MarkerWidth; - var pal = wr.Palette(TileSet.TerrainPaletteInternalName); - var tile = n.Tile; var pos = n.Target.CenterPosition; - - if (tile == null) - renderableCache.Add(new TargetLineRenderable(new[] { prev, pos }, n.Color, lineWidth, markerWidth)); - else - renderableCache.Add(new SpriteRenderable(tile, pos, WVec.Zero, -511, pal, 1f, true)); - + renderableCache.Add(new TargetLineRenderable(new[] { prev, pos }, n.Color, lineWidth, markerWidth)); prev = pos; } } @@ -108,7 +123,7 @@ namespace OpenRA.Mods.Common.Traits return renderableCache; } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return false; } } } public static class LineTargetExts diff --git a/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs b/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs index 80336787e8..848dba38d3 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs @@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Traits.Render public object Create(ActorInitializer init) { return new RenderDebugState(init.Self, this); } } - class RenderDebugState : INotifyAddedToWorld, INotifyOwnerChanged, INotifyCreated, IRenderAboveShroudWhenSelected + class RenderDebugState : INotifyAddedToWorld, INotifyOwnerChanged, INotifyCreated, IRenderAnnotationsWhenSelected { readonly DebugVisualizations debugVis; readonly SpriteFont font; @@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.Traits.Render return self.EffectiveOwner != null && self.EffectiveOwner.Disguised ? self.EffectiveOwner.Owner.Color : self.Owner.Color; } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { if (debugVis == null || !debugVis.ActorTags) yield break; @@ -98,6 +98,6 @@ namespace OpenRA.Mods.Common.Traits.Render yield return new TextRenderable(font, self.CenterPosition + offset, 0, color, aiSquadInfo); } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return true; } } } } diff --git a/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs b/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs index 19bb81dcd6..72c67741dd 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderDetectionCircle.cs @@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.Traits.Render public object Create(ActorInitializer init) { return new RenderDetectionCircle(init.Self, this); } } - class RenderDetectionCircle : ITick, IRenderAboveShroudWhenSelected + class RenderDetectionCircle : ITick, IRenderAnnotationsWhenSelected { readonly RenderDetectionCircleInfo info; WAngle lineAngle; @@ -45,7 +45,7 @@ namespace OpenRA.Mods.Common.Traits.Render this.info = info; } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { if (!self.Owner.IsAlliedWith(self.World.RenderPlayer)) yield break; @@ -68,7 +68,7 @@ namespace OpenRA.Mods.Common.Traits.Render info.ContrastColor); } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return false; } } void ITick.Tick(Actor self) { diff --git a/OpenRA.Mods.Common/Traits/Render/RenderNameTag.cs b/OpenRA.Mods.Common/Traits/Render/RenderNameTag.cs index cda1921592..30c4ef65a1 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderNameTag.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderNameTag.cs @@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Traits.Render public object Create(ActorInitializer init) { return new RenderNameTag(init.Self, this); } } - class RenderNameTag : IRender + class RenderNameTag : IRenderAnnotations { readonly SpriteFont font; readonly Color color; @@ -48,19 +48,18 @@ namespace OpenRA.Mods.Common.Traits.Render decorationBounds = self.TraitsImplementing().ToArray(); } - public IEnumerable Render(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr) { + if (self.World.FogObscures(self)) + yield break; + var bounds = decorationBounds.FirstNonEmptyBounds(self, wr); var spaceBuffer = (int)(10 / wr.Viewport.Zoom); var effectPos = wr.ProjectedPosition(new int2((bounds.Left + bounds.Right) / 2, bounds.Y - spaceBuffer)); - return new IRenderable[] { new TextRenderable(font, effectPos, 0, color, name) }; + yield return new TextRenderable(font, effectPos, 0, color, name); } - IEnumerable IRender.ScreenBounds(Actor self, WorldRenderer wr) - { - // Name tags don't contribute to actor bounds - yield break; - } + bool IRenderAnnotations.SpatiallyPartitionable { get { return false; } } } } diff --git a/OpenRA.Mods.Common/Traits/Render/RenderRangeCircle.cs b/OpenRA.Mods.Common/Traits/Render/RenderRangeCircle.cs index 899a91fa52..41a988698c 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderRangeCircle.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderRangeCircle.cs @@ -77,7 +77,7 @@ namespace OpenRA.Mods.Common.Traits.Render } } - class RenderRangeCircle : IRenderAboveShroudWhenSelected + class RenderRangeCircle : IRenderAnnotationsWhenSelected { public readonly RenderRangeCircleInfo Info; readonly Actor self; @@ -108,11 +108,11 @@ namespace OpenRA.Mods.Common.Traits.Render Info.BorderColor); } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { return RangeCircleRenderables(wr); } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return false; } } } } diff --git a/OpenRA.Mods.Common/Traits/Render/SelectionDecorations.cs b/OpenRA.Mods.Common/Traits/Render/SelectionDecorations.cs index 261c730e5d..0b4291f6cf 100644 --- a/OpenRA.Mods.Common/Traits/Render/SelectionDecorations.cs +++ b/OpenRA.Mods.Common/Traits/Render/SelectionDecorations.cs @@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.Traits.Render public object Create(ActorInitializer init) { return new SelectionDecorations(init.Self, this); } } - public class SelectionDecorations : ISelectionDecorations, IRenderAboveShroud, INotifyCreated, ITick + public class SelectionDecorations : ISelectionDecorations, IRenderAnnotations, INotifyCreated, 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" }; @@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Traits.Render } } - IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr) { if (self.World.FogObscures(self)) return Enumerable.Empty(); @@ -83,7 +83,7 @@ namespace OpenRA.Mods.Common.Traits.Render return DrawDecorations(self, wr); } - bool IRenderAboveShroud.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotations.SpatiallyPartitionable { get { return true; } } IEnumerable DrawDecorations(Actor self, WorldRenderer wr) { diff --git a/OpenRA.Mods.Common/Traits/Render/WithDecoration.cs b/OpenRA.Mods.Common/Traits/Render/WithDecoration.cs index 6e25ee722b..64a90c81b6 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithDecoration.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithDecoration.cs @@ -82,7 +82,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithDecoration(init.Self, this); } } - public class WithDecoration : ConditionalTrait, ITick, IRenderAboveShroud, IRenderAboveShroudWhenSelected + public class WithDecoration : ConditionalTrait, ITick, IRenderAnnotations, IRenderAnnotationsWhenSelected { protected Animation anim; readonly IDecorationBounds[] decorationBounds; @@ -124,18 +124,18 @@ namespace OpenRA.Mods.Common.Traits.Render return wr.Palette(Info.Palette + (Info.IsPlayerPalette ? self.Owner.InternalName : "")); } - IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr) { return !Info.RequiresSelection ? RenderInner(self, wr) : SpriteRenderable.None; } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { return Info.RequiresSelection ? RenderInner(self, wr) : SpriteRenderable.None; } - bool IRenderAboveShroud.SpatiallyPartitionable { get { return true; } } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotations.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return true; } } IEnumerable RenderInner(Actor self, WorldRenderer wr) { diff --git a/OpenRA.Mods.Common/Traits/Render/WithRangeCircle.cs b/OpenRA.Mods.Common/Traits/Render/WithRangeCircle.cs index 0e4dea2c7f..a69827befe 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithRangeCircle.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithRangeCircle.cs @@ -62,7 +62,7 @@ namespace OpenRA.Mods.Common.Traits.Render public override object Create(ActorInitializer init) { return new WithRangeCircle(init.Self, this); } } - class WithRangeCircle : ConditionalTrait, IRenderAboveShroudWhenSelected, IRenderAboveShroud + class WithRangeCircle : ConditionalTrait, IRenderAnnotationsWhenSelected, IRenderAboveShroud { readonly Actor self; @@ -95,12 +95,12 @@ namespace OpenRA.Mods.Common.Traits.Render Color.FromArgb(96, Color.Black)); } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { return RenderRangeCircle(self, wr, RangeCircleVisibility.WhenSelected); } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return false; } } IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) { diff --git a/OpenRA.Mods.Common/Traits/Render/WithSpriteControlGroupDecoration.cs b/OpenRA.Mods.Common/Traits/Render/WithSpriteControlGroupDecoration.cs index d92449a65c..7d84d2b062 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithSpriteControlGroupDecoration.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithSpriteControlGroupDecoration.cs @@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.Traits.Render public object Create(ActorInitializer init) { return new WithSpriteControlGroupDecoration(init.Self, this); } } - public class WithSpriteControlGroupDecoration : IRenderAboveShroudWhenSelected + public class WithSpriteControlGroupDecoration : IRenderAnnotationsWhenSelected { public readonly WithSpriteControlGroupDecorationInfo Info; readonly IDecorationBounds[] decorationBounds; @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Traits.Render pipImages = new Animation(self.World, Info.Image); } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { if (self.Owner != wr.World.LocalPlayer) yield break; @@ -62,7 +62,7 @@ namespace OpenRA.Mods.Common.Traits.Render yield return r; } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return true; } } IEnumerable DrawControlGroup(Actor self, WorldRenderer wr, PaletteReference palette) { diff --git a/OpenRA.Mods.Common/Traits/Render/WithTextControlGroupDecoration.cs b/OpenRA.Mods.Common/Traits/Render/WithTextControlGroupDecoration.cs index 0b8fdce28a..a8097606ef 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithTextControlGroupDecoration.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithTextControlGroupDecoration.cs @@ -48,7 +48,7 @@ namespace OpenRA.Mods.Common.Traits.Render public object Create(ActorInitializer init) { return new WithTextControlGroupDecoration(init.Self, this); } } - public class WithTextControlGroupDecoration : IRenderAboveShroudWhenSelected, INotifyOwnerChanged + public class WithTextControlGroupDecoration : IRenderAnnotationsWhenSelected, INotifyOwnerChanged { readonly WithTextControlGroupDecorationInfo info; readonly IDecorationBounds[] decorationBounds; @@ -67,7 +67,7 @@ namespace OpenRA.Mods.Common.Traits.Render color = info.UsePlayerColor ? self.Owner.Color : info.Color; } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { if (self.Owner != wr.World.LocalPlayer) yield break; @@ -79,7 +79,7 @@ namespace OpenRA.Mods.Common.Traits.Render yield return r; } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return true; } } IEnumerable DrawControlGroup(Actor self, WorldRenderer wr) { diff --git a/OpenRA.Mods.Common/Traits/Render/WithTextDecoration.cs b/OpenRA.Mods.Common/Traits/Render/WithTextDecoration.cs index 9c87038748..ac3c709191 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithTextDecoration.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithTextDecoration.cs @@ -57,7 +57,7 @@ namespace OpenRA.Mods.Common.Traits.Render } } - public class WithTextDecoration : ConditionalTrait, IRender, IRenderAboveShroudWhenSelected, INotifyOwnerChanged + public class WithTextDecoration : ConditionalTrait, IRender, IRenderAnnotationsWhenSelected, INotifyOwnerChanged { readonly SpriteFont font; readonly IDecorationBounds[] decorationBounds; @@ -84,12 +84,12 @@ namespace OpenRA.Mods.Common.Traits.Render yield break; } - IEnumerable IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr) { return Info.RequiresSelection ? RenderInner(self, wr) : SpriteRenderable.None; } - bool IRenderAboveShroudWhenSelected.SpatiallyPartitionable { get { return true; } } + bool IRenderAnnotationsWhenSelected.SpatiallyPartitionable { get { return true; } } IEnumerable RenderInner(Actor self, WorldRenderer wr) { diff --git a/OpenRA.Mods.Common/Traits/World/TerrainGeometryOverlay.cs b/OpenRA.Mods.Common/Traits/World/TerrainGeometryOverlay.cs index 23766dde17..9326868e8e 100644 --- a/OpenRA.Mods.Common/Traits/World/TerrainGeometryOverlay.cs +++ b/OpenRA.Mods.Common/Traits/World/TerrainGeometryOverlay.cs @@ -22,7 +22,7 @@ namespace OpenRA.Mods.Common.Traits [Desc("Renders a debug overlay showing the terrain cells. Attach this to the world actor.")] public class TerrainGeometryOverlayInfo : TraitInfo { } - public class TerrainGeometryOverlay : IRenderAboveShroud, IWorldLoaded, IChatCommand + public class TerrainGeometryOverlay : IRenderAnnotations, IWorldLoaded, IChatCommand { const string CommandName = "terrainoverlay"; const string CommandDesc = "toggles the terrain geometry overlay."; @@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits Enabled ^= true; } - IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr) { if (!Enabled) yield break; @@ -98,6 +98,6 @@ namespace OpenRA.Mods.Common.Traits } } - bool IRenderAboveShroud.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotations.SpatiallyPartitionable { get { return false; } } } } diff --git a/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs b/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs index 87c966d122..e1914d1f1c 100644 --- a/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/World/WarheadDebugOverlay.cs @@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Traits public object Create(ActorInitializer init) { return new WarheadDebugOverlay(this); } } - public class WarheadDebugOverlay : IRenderAboveShroud + public class WarheadDebugOverlay : IRenderAnnotations { class WHImpact { @@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Traits impacts.Add(new WHImpact(pos, range, info.DisplayDuration, color)); } - IEnumerable IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr) + IEnumerable IRenderAnnotations.RenderAnnotations(Actor self, WorldRenderer wr) { foreach (var i in impacts) { @@ -83,6 +83,6 @@ namespace OpenRA.Mods.Common.Traits impacts.RemoveAll(i => i.Time == 0); } - bool IRenderAboveShroud.SpatiallyPartitionable { get { return false; } } + bool IRenderAnnotations.SpatiallyPartitionable { get { return false; } } } }