Convert WarheadDebugOverlay to IRenderAboveShroud.

This commit is contained in:
Paul Chote
2019-09-03 20:47:52 +01:00
committed by teinarss
parent 999ad0e18a
commit b3984c8db4

View File

@@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Traits
public object Create(ActorInitializer init) { return new WarheadDebugOverlay(this); } public object Create(ActorInitializer init) { return new WarheadDebugOverlay(this); }
} }
public class WarheadDebugOverlay : IRenderAboveWorld public class WarheadDebugOverlay : IRenderAboveShroud
{ {
class WHImpact class WHImpact
{ {
@@ -61,23 +61,18 @@ namespace OpenRA.Mods.Common.Traits
impacts.Add(new WHImpact(pos, range, info.DisplayDuration, color)); impacts.Add(new WHImpact(pos, range, info.DisplayDuration, color));
} }
void IRenderAboveWorld.RenderAboveWorld(Actor self, WorldRenderer wr) IEnumerable<IRenderable> IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr)
{ {
foreach (var i in impacts) foreach (var i in impacts)
{ {
var alpha = 255.0f * i.Time / info.DisplayDuration; var alpha = 255.0f * i.Time / info.DisplayDuration;
var rangeStep = alpha / i.Range.Length; var rangeStep = alpha / i.Range.Length;
RangeCircleRenderable.DrawRangeCircle(wr, i.CenterPosition, i.OuterRange, yield return new CircleAnnotationRenderable(i.CenterPosition, i.OuterRange, 1, Color.FromArgb((int)alpha, i.Color));
1, Color.FromArgb((int)alpha, i.Color), 0, i.Color);
foreach (var r in i.Range) foreach (var r in i.Range)
{ {
var tl = wr.Screen3DPosition(i.CenterPosition - new WVec(r.Length, r.Length, 0)); yield return new CircleAnnotationRenderable(i.CenterPosition, r, 1, Color.FromArgb((int)alpha, i.Color), true);
var br = wr.Screen3DPosition(i.CenterPosition + new WVec(r.Length, r.Length, 0));
Game.Renderer.WorldRgbaColorRenderer.FillEllipse(tl, br, Color.FromArgb((int)alpha, i.Color));
alpha -= rangeStep; alpha -= rangeStep;
} }
@@ -87,5 +82,7 @@ namespace OpenRA.Mods.Common.Traits
impacts.RemoveAll(i => i.Time == 0); impacts.RemoveAll(i => i.Time == 0);
} }
bool IRenderAboveShroud.SpatiallyPartitionable { get { return false; } }
} }
} }