Improve Rectangle HitShape debug overlay

Showing vertical sides, too.
This commit is contained in:
reaperrr
2019-12-30 12:46:00 +01:00
committed by abcdefg30
parent 9dcba8710b
commit 46384d25f2

View File

@@ -43,6 +43,8 @@ namespace OpenRA.Mods.Common.HitShapes
WVec[] combatOverlayVertsTop; WVec[] combatOverlayVertsTop;
WVec[] combatOverlayVertsBottom; WVec[] combatOverlayVertsBottom;
WVec[] combatOverlayVertsSide1;
WVec[] combatOverlayVertsSide2;
public RectangleShape() { } public RectangleShape() { }
@@ -73,7 +75,7 @@ namespace OpenRA.Mods.Common.HitShapes
new WVec(TopLeft.X, TopLeft.Y, VerticalTopOffset), new WVec(TopLeft.X, TopLeft.Y, VerticalTopOffset),
new WVec(BottomRight.X, TopLeft.Y, VerticalTopOffset), new WVec(BottomRight.X, TopLeft.Y, VerticalTopOffset),
new WVec(BottomRight.X, BottomRight.Y, VerticalTopOffset), new WVec(BottomRight.X, BottomRight.Y, VerticalTopOffset),
new WVec(TopLeft.X, BottomRight.Y, VerticalTopOffset) new WVec(TopLeft.X, BottomRight.Y, VerticalTopOffset),
}; };
combatOverlayVertsBottom = new WVec[] combatOverlayVertsBottom = new WVec[]
@@ -81,7 +83,23 @@ namespace OpenRA.Mods.Common.HitShapes
new WVec(TopLeft.X, TopLeft.Y, VerticalBottomOffset), new WVec(TopLeft.X, TopLeft.Y, VerticalBottomOffset),
new WVec(BottomRight.X, TopLeft.Y, VerticalBottomOffset), new WVec(BottomRight.X, TopLeft.Y, VerticalBottomOffset),
new WVec(BottomRight.X, BottomRight.Y, VerticalBottomOffset), new WVec(BottomRight.X, BottomRight.Y, VerticalBottomOffset),
new WVec(TopLeft.X, BottomRight.Y, VerticalBottomOffset) new WVec(TopLeft.X, BottomRight.Y, VerticalBottomOffset),
};
combatOverlayVertsSide1 = new WVec[]
{
new WVec(TopLeft.X, TopLeft.Y, VerticalBottomOffset),
new WVec(TopLeft.X, TopLeft.Y, VerticalTopOffset),
new WVec(TopLeft.X, BottomRight.Y, VerticalTopOffset),
new WVec(TopLeft.X, BottomRight.Y, VerticalBottomOffset),
};
combatOverlayVertsSide2 = new WVec[]
{
new WVec(BottomRight.X, TopLeft.Y, VerticalBottomOffset),
new WVec(BottomRight.X, TopLeft.Y, VerticalTopOffset),
new WVec(BottomRight.X, BottomRight.Y, VerticalTopOffset),
new WVec(BottomRight.X, BottomRight.Y, VerticalBottomOffset),
}; };
} }
@@ -113,9 +131,13 @@ namespace OpenRA.Mods.Common.HitShapes
var vertsTop = combatOverlayVertsTop.Select(v => origin + v.Rotate(orientation)).ToArray(); var vertsTop = combatOverlayVertsTop.Select(v => origin + v.Rotate(orientation)).ToArray();
var vertsBottom = combatOverlayVertsBottom.Select(v => origin + v.Rotate(orientation)).ToArray(); var vertsBottom = combatOverlayVertsBottom.Select(v => origin + v.Rotate(orientation)).ToArray();
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(vertsTop, origin, 1, Color.Yellow);
yield return new PolygonAnnotationRenderable(vertsBottom, 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); yield return new CircleAnnotationRenderable(origin, OuterRadius, 1, Color.LimeGreen);
} }
} }