Cache DetectCloaked traits in RenderDetectionCircle

This commit is contained in:
abcdefg30
2022-01-24 17:28:15 +01:00
committed by reaperrr
parent 13fbc412d2
commit 7c085e49c7

View File

@@ -44,11 +44,13 @@ namespace OpenRA.Mods.Common.Traits.Render
class RenderDetectionCircle : ITick, IRenderAnnotationsWhenSelected
{
readonly RenderDetectionCircleInfo info;
readonly DetectCloaked[] detectCloaked;
WAngle lineAngle;
public RenderDetectionCircle(Actor self, RenderDetectionCircleInfo info)
{
this.info = info;
detectCloaked = self.TraitsImplementing<DetectCloaked>().ToArray();
}
IEnumerable<IRenderable> IRenderAnnotationsWhenSelected.RenderAnnotations(Actor self, WorldRenderer wr)
@@ -56,7 +58,7 @@ namespace OpenRA.Mods.Common.Traits.Render
if (!self.Owner.IsAlliedWith(self.World.RenderPlayer))
yield break;
var range = self.TraitsImplementing<DetectCloaked>()
var range = detectCloaked
.Select(a => a.Range)
.Append(WDist.Zero).Max();