Show disabled HitShapes in gray
Instead of disabling their debug overlay entirely.
This commit is contained in:
@@ -13,6 +13,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Graphics;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA.Mods.Common.HitShapes
|
||||
@@ -92,7 +93,7 @@ namespace OpenRA.Mods.Common.HitShapes
|
||||
return DistanceFromEdge((pos - new WPos(origin.X, origin.Y, pos.Z)).Rotate(-orientation));
|
||||
}
|
||||
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(WorldRenderer wr, WPos origin, WRot orientation)
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(HitShape hs, WorldRenderer wr, WPos origin, WRot orientation)
|
||||
{
|
||||
var a = origin + new WVec(PointA.X, PointA.Y, VerticalTopOffset).Rotate(orientation);
|
||||
var b = origin + new WVec(PointB.X, PointB.Y, VerticalTopOffset).Rotate(orientation);
|
||||
@@ -104,15 +105,17 @@ namespace OpenRA.Mods.Common.HitShapes
|
||||
var offset2 = new WVec(aa.Y - bb.Y, bb.X - aa.X, 0);
|
||||
offset2 = offset2 * Radius.Length / offset2.Length;
|
||||
|
||||
yield return new CircleAnnotationRenderable(a, Radius, 1, Color.Yellow);
|
||||
yield return new CircleAnnotationRenderable(b, Radius, 1, Color.Yellow);
|
||||
yield return new CircleAnnotationRenderable(aa, Radius, 1, Color.Yellow);
|
||||
yield return new CircleAnnotationRenderable(bb, Radius, 1, Color.Yellow);
|
||||
yield return new CircleAnnotationRenderable(origin, OuterRadius, 1, Color.LimeGreen);
|
||||
yield return new LineAnnotationRenderable(a - offset1, b - offset1, 1, Color.Yellow);
|
||||
yield return new LineAnnotationRenderable(a + offset1, b + offset1, 1, Color.Yellow);
|
||||
yield return new LineAnnotationRenderable(aa - offset2, bb - offset2, 1, Color.Yellow);
|
||||
yield return new LineAnnotationRenderable(aa + offset2, bb + offset2, 1, Color.Yellow);
|
||||
var shapeColor = hs.IsTraitDisabled ? Color.LightGray : Color.Yellow;
|
||||
|
||||
yield return new CircleAnnotationRenderable(a, Radius, 1, shapeColor);
|
||||
yield return new CircleAnnotationRenderable(b, Radius, 1, shapeColor);
|
||||
yield return new CircleAnnotationRenderable(aa, Radius, 1, shapeColor);
|
||||
yield return new CircleAnnotationRenderable(bb, Radius, 1, shapeColor);
|
||||
yield return new CircleAnnotationRenderable(origin, OuterRadius, 1, hs.IsTraitDisabled ? Color.Gray : Color.LimeGreen);
|
||||
yield return new LineAnnotationRenderable(a - offset1, b - offset1, 1, shapeColor);
|
||||
yield return new LineAnnotationRenderable(a + offset1, b + offset1, 1, shapeColor);
|
||||
yield return new LineAnnotationRenderable(aa - offset2, bb - offset2, 1, shapeColor);
|
||||
yield return new LineAnnotationRenderable(aa + offset2, bb + offset2, 1, shapeColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Graphics;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA.Mods.Common.HitShapes
|
||||
@@ -56,10 +57,11 @@ namespace OpenRA.Mods.Common.HitShapes
|
||||
return DistanceFromEdge(pos - new WPos(origin.X, origin.Y, pos.Z));
|
||||
}
|
||||
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(WorldRenderer wr, WPos origin, WRot orientation)
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(HitShape hs, WorldRenderer wr, WPos origin, WRot orientation)
|
||||
{
|
||||
yield return new CircleAnnotationRenderable(origin + new WVec(0, 0, VerticalTopOffset), Radius, 1, Color.Yellow);
|
||||
yield return new CircleAnnotationRenderable(origin + new WVec(0, 0, VerticalBottomOffset), Radius, 1, Color.Yellow);
|
||||
var shapeColor = hs.IsTraitDisabled ? Color.LightGray : Color.Yellow;
|
||||
yield return new CircleAnnotationRenderable(origin + new WVec(0, 0, VerticalTopOffset), Radius, 1, shapeColor);
|
||||
yield return new CircleAnnotationRenderable(origin + new WVec(0, 0, VerticalBottomOffset), Radius, 1, shapeColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
using System.Collections.Generic;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
|
||||
namespace OpenRA.Mods.Common.HitShapes
|
||||
{
|
||||
@@ -22,6 +23,6 @@ namespace OpenRA.Mods.Common.HitShapes
|
||||
WDist DistanceFromEdge(WPos pos, WPos origin, WRot orientation);
|
||||
|
||||
void Initialize();
|
||||
IEnumerable<IRenderable> RenderDebugOverlay(WorldRenderer wr, WPos origin, WRot orientation);
|
||||
IEnumerable<IRenderable> RenderDebugOverlay(HitShape hs, WorldRenderer wr, WPos origin, WRot orientation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Graphics;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA.Mods.Common.HitShapes
|
||||
@@ -112,15 +113,17 @@ namespace OpenRA.Mods.Common.HitShapes
|
||||
return DistanceFromEdge((pos - new WPos(origin.X, origin.Y, pos.Z)).Rotate(-orientation));
|
||||
}
|
||||
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(WorldRenderer wr, WPos actorPos, WRot orientation)
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(HitShape hs, WorldRenderer wr, WPos actorPos, WRot orientation)
|
||||
{
|
||||
orientation += WRot.FromYaw(LocalYaw);
|
||||
var vertsTop = combatOverlayVertsTop.Select(v => actorPos + v.Rotate(orientation)).ToArray();
|
||||
var vertsBottom = combatOverlayVertsBottom.Select(v => actorPos + v.Rotate(orientation)).ToArray();
|
||||
|
||||
yield return new PolygonAnnotationRenderable(vertsTop, actorPos, 1, Color.Yellow);
|
||||
yield return new PolygonAnnotationRenderable(vertsBottom, actorPos, 1, Color.Yellow);
|
||||
yield return new CircleAnnotationRenderable(actorPos, OuterRadius, 1, Color.LimeGreen);
|
||||
var shapeColor = hs.IsTraitDisabled ? Color.LightGray : Color.Yellow;
|
||||
|
||||
yield return new PolygonAnnotationRenderable(vertsTop, actorPos, 1, shapeColor);
|
||||
yield return new PolygonAnnotationRenderable(vertsBottom, actorPos, 1, shapeColor);
|
||||
yield return new CircleAnnotationRenderable(actorPos, OuterRadius, 1, hs.IsTraitDisabled ? Color.Gray : Color.LimeGreen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Graphics;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Primitives;
|
||||
|
||||
namespace OpenRA.Mods.Common.HitShapes
|
||||
@@ -125,7 +126,7 @@ namespace OpenRA.Mods.Common.HitShapes
|
||||
return DistanceFromEdge((pos - new WPos(origin.X, origin.Y, pos.Z)).Rotate(-orientation));
|
||||
}
|
||||
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(WorldRenderer wr, WPos origin, WRot orientation)
|
||||
IEnumerable<IRenderable> IHitShape.RenderDebugOverlay(HitShape hs, WorldRenderer wr, WPos origin, WRot orientation)
|
||||
{
|
||||
orientation += WRot.FromYaw(LocalYaw);
|
||||
|
||||
@@ -134,11 +135,13 @@ namespace OpenRA.Mods.Common.HitShapes
|
||||
var side1 = combatOverlayVertsSide1.Select(v => origin + v.Rotate(orientation)).ToArray();
|
||||
var side2 = combatOverlayVertsSide2.Select(v => origin + v.Rotate(orientation)).ToArray();
|
||||
|
||||
yield return new PolygonAnnotationRenderable(vertsTop, origin, 1, Color.Yellow);
|
||||
yield return new PolygonAnnotationRenderable(vertsBottom, origin, 1, Color.Yellow);
|
||||
yield return new PolygonAnnotationRenderable(side1, origin, 1, Color.Yellow);
|
||||
yield return new PolygonAnnotationRenderable(side2, origin, 1, Color.Yellow);
|
||||
yield return new CircleAnnotationRenderable(origin, OuterRadius, 1, Color.LimeGreen);
|
||||
var shapeColor = hs.IsTraitDisabled ? Color.LightGray : Color.Yellow;
|
||||
|
||||
yield return new PolygonAnnotationRenderable(vertsTop, origin, 1, shapeColor);
|
||||
yield return new PolygonAnnotationRenderable(vertsBottom, origin, 1, shapeColor);
|
||||
yield return new PolygonAnnotationRenderable(side1, origin, 1, shapeColor);
|
||||
yield return new PolygonAnnotationRenderable(side2, origin, 1, shapeColor);
|
||||
yield return new CircleAnnotationRenderable(origin, OuterRadius, 1, hs.IsTraitDisabled ? Color.Gray : Color.LimeGreen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user