Create FrozenActor.RefreshState method for better encapsulation and reuse of this logic.

This commit is contained in:
RoosterDragon
2015-12-31 01:40:49 +00:00
parent 3026bdcea5
commit c98df23b57
2 changed files with 28 additions and 24 deletions

View File

@@ -37,8 +37,6 @@ namespace OpenRA.Mods.Common.Traits
readonly PPos[] footprint;
PlayerDictionary<FrozenState> frozenStates;
ITooltip tooltip;
Health health;
bool isRendering;
class FrozenState
@@ -65,9 +63,6 @@ namespace OpenRA.Mods.Common.Traits
public void Created(Actor self)
{
tooltip = self.TraitsImplementing<ITooltip>().FirstOrDefault();
health = self.TraitOrDefault<Health>();
frozenStates = new PlayerDictionary<FrozenState>(self.World, (player, playerIndex) =>
{
var frozenActor = new FrozenActor(self, footprint, player.Shroud, startsRevealed);
@@ -81,20 +76,7 @@ namespace OpenRA.Mods.Common.Traits
void UpdateFrozenActor(Actor self, FrozenActor frozenActor, int playerIndex)
{
VisibilityHash |= 1 << (playerIndex % 32);
frozenActor.Owner = self.Owner;
if (health != null)
{
frozenActor.HP = health.HP;
frozenActor.DamageState = health.DamageState;
}
if (tooltip != null)
{
frozenActor.TooltipInfo = tooltip.TooltipInfo;
frozenActor.TooltipOwner = tooltip.Owner;
}
frozenActor.RefreshState();
}
bool IsVisibleInner(Actor self, Player byPlayer)