Convert WarheadDebugOverlay to IRenderAboveShroud.
This commit is contained in:
@@ -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; } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user