ActorMap, avoid IPositionable trait lookup.
This commit is contained in:
committed by
Matthias Mailänder
parent
d72b1ffd49
commit
7c0f6ead3a
@@ -65,8 +65,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!info.ValidTargets.Overlaps(collector.GetEnabledTargetTypes()))
|
||||
return false;
|
||||
|
||||
var positionable = collector.TraitOrDefault<IPositionable>();
|
||||
if (positionable == null)
|
||||
if (collector.OccupiesSpace is not IPositionable positionable)
|
||||
return false;
|
||||
|
||||
return collector.World.Map.FindTilesInCircle(collector.Location, info.MaxRadius)
|
||||
@@ -83,7 +82,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public override void Activate(Actor collector)
|
||||
{
|
||||
var positionable = collector.Trait<IPositionable>();
|
||||
var positionable = collector.OccupiesSpace as IPositionable;
|
||||
var candidateCells = collector.World.Map.FindTilesInCircle(collector.Location, info.MaxRadius)
|
||||
.Where(c => positionable.CanEnterCell(c)).Shuffle(collector.World.SharedRandom)
|
||||
.ToArray();
|
||||
|
||||
Reference in New Issue
Block a user