Cache FrozenActorLayer on the Player object.
This avoids unnecessary trait queries.
This commit is contained in:
committed by
Oliver Brakmann
parent
f238e2c5cc
commit
3e490e5843
@@ -53,7 +53,7 @@ namespace OpenRA.Mods.Cnc.Effects
|
||||
visibilityModifiers = actor.TraitsImplementing<IVisibilityModifier>().ToArray();
|
||||
|
||||
dotStates = new PlayerDictionary<DotState>(actor.World,
|
||||
p => new DotState(actor, p.PlayerActor.Trait<GpsWatcher>(), p.PlayerActor.TraitOrDefault<FrozenActorLayer>()));
|
||||
p => new DotState(actor, p.PlayerActor.Trait<GpsWatcher>(), p.FrozenActorLayer));
|
||||
}
|
||||
|
||||
bool ShouldRender(DotState state, Player toPlayer)
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
||||
public readonly GpsWatcher GpsWatcher;
|
||||
public Traits(Player player, FrozenUnderFogUpdatedByGps frozenUnderFogUpdatedByGps)
|
||||
{
|
||||
FrozenActorLayer = player.PlayerActor.TraitOrDefault<FrozenActorLayer>();
|
||||
FrozenActorLayer = player.FrozenActorLayer;
|
||||
GpsWatcher = player.PlayerActor.TraitOrDefault<GpsWatcher>();
|
||||
GpsWatcher.RegisterForOnGpsRefreshed(frozenUnderFogUpdatedByGps.self, frozenUnderFogUpdatedByGps);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user