Use INotifyOwnerChanged for updating internal references.

This commit is contained in:
Paul Chote
2014-10-13 19:43:11 +13:00
parent 8508fc5155
commit a08a3a3869
12 changed files with 45 additions and 33 deletions

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.RA.Power
public object Create(ActorInitializer init) { return new AffectedByPowerOutage(init.self); }
}
public class AffectedByPowerOutage : INotifyCapture, ISelectionBar, IPowerModifier, IDisable
public class AffectedByPowerOutage : INotifyOwnerChanged, ISelectionBar, IPowerModifier, IDisable
{
PowerManager playerPower;
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Power
get { return playerPower.PowerOutageRemainingTicks > 0; }
}
public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner)
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{
playerPower = newOwner.PlayerActor.Trait<PowerManager>();
}

View File

@@ -22,7 +22,7 @@ namespace OpenRA.Mods.RA.Power
public object Create(ActorInitializer init) { return new Power(init.self, this); }
}
public class Power : INotifyCapture
public class Power : INotifyOwnerChanged
{
readonly PowerInfo info;
readonly Lazy<IPowerModifier[]> powerModifiers;
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA.Power
powerModifiers = Exts.Lazy(() => self.TraitsImplementing<IPowerModifier>().ToArray());
}
public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner)
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{
PlayerPower = newOwner.PlayerActor.Trait<PowerManager>();
}

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Mods.RA.Power
public object Create(ActorInitializer init) { return new RequiresPower(init.self); }
}
class RequiresPower : IDisable, INotifyCapture
class RequiresPower : IDisable, INotifyOwnerChanged
{
PowerManager playerPower;
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA.Power
get { return playerPower.PowerProvided < playerPower.PowerDrained; }
}
public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner)
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{
playerPower = newOwner.PlayerActor.Trait<PowerManager>();
}