Render disabled targetable positions in gray

Instead of not rendering them at all.
Also moved their debug overlay to HitShape.
This commit is contained in:
reaperrr
2021-06-25 14:56:32 +02:00
committed by Paul Chote
parent feba9f2b9f
commit 9371cecc00
2 changed files with 17 additions and 9 deletions

View File

@@ -28,9 +28,6 @@ namespace OpenRA.Mods.Common.Traits
public class CombatDebugOverlay : IRenderAnnotations, 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);
readonly DebugVisualizations debugVis; readonly DebugVisualizations debugVis;
readonly IHealthInfo healthInfo; readonly IHealthInfo healthInfo;
readonly Lazy<BodyOrientation> coords; readonly Lazy<BodyOrientation> coords;
@@ -70,14 +67,12 @@ namespace OpenRA.Mods.Common.Traits
} }
foreach (var s in shapes) foreach (var s in shapes)
{
foreach (var a in s.RenderDebugAnnotations(self, wr))
yield return a;
foreach (var r in s.RenderDebugOverlay(self, wr)) foreach (var r in s.RenderDebugOverlay(self, wr))
yield return r; yield return r;
var positions = Target.FromActor(self).Positions;
foreach (var p in positions)
{
yield return new LineAnnotationRenderable(p - TargetPosHLine, p + TargetPosHLine, 1, Color.Lime);
yield return new LineAnnotationRenderable(p - TargetPosVLine, p + TargetPosVLine, 1, Color.Lime);
} }
foreach (var attack in self.TraitsImplementing<AttackBase>().Where(x => !x.IsTraitDisabled)) foreach (var attack in self.TraitsImplementing<AttackBase>().Where(x => !x.IsTraitDisabled))

View File

@@ -12,6 +12,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Mods.Common.Graphics;
using OpenRA.Mods.Common.HitShapes; using OpenRA.Mods.Common.HitShapes;
using OpenRA.Primitives; using OpenRA.Primitives;
using OpenRA.Traits; using OpenRA.Traits;
@@ -131,6 +132,18 @@ namespace OpenRA.Mods.Common.Traits
return Info.Type.DistanceFromEdge(pos, origin, orientation); return Info.Type.DistanceFromEdge(pos, origin, orientation);
} }
public IEnumerable<IRenderable> RenderDebugAnnotations(Actor self, WorldRenderer wr)
{
var targetPosHLine = new WVec(0, 128, 0);
var targetPosVLine = new WVec(128, 0, 0);
var targetPosColor = IsTraitDisabled ? Color.Gainsboro : Color.Lime;
foreach (var p in TargetablePositions(self))
{
yield return new LineAnnotationRenderable(p - targetPosHLine, p + targetPosHLine, 1, targetPosColor);
yield return new LineAnnotationRenderable(p - targetPosVLine, p + targetPosVLine, 1, targetPosColor);
}
}
public IEnumerable<IRenderable> RenderDebugOverlay(Actor self, WorldRenderer wr) public IEnumerable<IRenderable> RenderDebugOverlay(Actor self, WorldRenderer wr)
{ {
var origin = turret != null ? self.CenterPosition + turret.Position(self) : self.CenterPosition; var origin = turret != null ? self.CenterPosition + turret.Position(self) : self.CenterPosition;