Move INotifySold to Common and require explicit implementation
This commit is contained in:
@@ -143,7 +143,6 @@ namespace OpenRA.Traits
|
||||
public interface INotifyCreated { void Created(Actor self); }
|
||||
public interface INotifyAddedToWorld { void AddedToWorld(Actor self); }
|
||||
public interface INotifyRemovedFromWorld { void RemovedFromWorld(Actor self); }
|
||||
public interface INotifySold { void Selling(Actor self); void Sold(Actor self); }
|
||||
public interface INotifyDamage { void Damaged(Actor self, AttackInfo e); }
|
||||
public interface INotifyDamageStateChanged { void DamageStateChanged(Actor self, AttackInfo e); }
|
||||
public interface INotifyRepair { void Repairing(Actor self, Actor target); }
|
||||
|
||||
@@ -143,7 +143,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
readonly Actor self;
|
||||
public readonly bool SkipMakeAnimation;
|
||||
|
||||
/* shared activity lock: undeploy, sell, capture, etc */
|
||||
// Shared activity lock: undeploy, sell, capture, etc.
|
||||
[Sync] public bool Locked = true;
|
||||
|
||||
public bool Lock()
|
||||
@@ -181,7 +181,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
return OccupiedCells().Select(c => self.World.Map.CenterOfCell(c.First));
|
||||
}
|
||||
|
||||
public void Created(Actor self)
|
||||
void INotifyCreated.Created(Actor self)
|
||||
{
|
||||
if (SkipMakeAnimation || !self.Info.HasTraitInfo<WithMakeAnimationInfo>())
|
||||
NotifyBuildingComplete(self);
|
||||
@@ -199,7 +199,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
self.World.ScreenMap.Add(self);
|
||||
}
|
||||
|
||||
public void RemovedFromWorld(Actor self)
|
||||
void INotifyRemovedFromWorld.RemovedFromWorld(Actor self)
|
||||
{
|
||||
self.World.ActorMap.RemoveInfluence(self, this);
|
||||
self.World.ActorMap.RemovePosition(self, this);
|
||||
@@ -220,7 +220,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
notify.BuildingComplete(self);
|
||||
}
|
||||
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
if (Info.RemoveSmudgesOnSell)
|
||||
RemoveSmudges();
|
||||
@@ -228,9 +228,9 @@ namespace OpenRA.Mods.Common.Traits
|
||||
BuildComplete = false;
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
|
||||
public void BeforeTransform(Actor self)
|
||||
void INotifyTransform.BeforeTransform(Actor self)
|
||||
{
|
||||
if (Info.RemoveSmudgesOnTransform)
|
||||
RemoveSmudges();
|
||||
@@ -239,8 +239,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
Game.Sound.PlayToPlayer(self.Owner, s, self.CenterPosition);
|
||||
}
|
||||
|
||||
public void OnTransform(Actor self) { }
|
||||
public void AfterTransform(Actor self) { }
|
||||
void INotifyTransform.OnTransform(Actor self) { }
|
||||
void INotifyTransform.AfterTransform(Actor self) { }
|
||||
|
||||
public void RemoveSmudges()
|
||||
{
|
||||
|
||||
@@ -168,8 +168,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
}
|
||||
}
|
||||
|
||||
public void Selling(Actor self) { CancelDock(self); }
|
||||
public void Sold(Actor self)
|
||||
void INotifySold.Selling(Actor self) { CancelDock(self); }
|
||||
void INotifySold.Sold(Actor self)
|
||||
{
|
||||
foreach (var harv in GetLinkedHarvesters())
|
||||
harv.Trait.UnlinkProc(harv.Actor, self);
|
||||
|
||||
@@ -76,9 +76,13 @@ namespace OpenRA.Mods.Common.Traits
|
||||
reservedForAircraft.UnReserve();
|
||||
}
|
||||
|
||||
public void Selling(Actor self) { Sold(self); }
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
if (reservedForAircraft != null)
|
||||
reservedForAircraft.UnReserve();
|
||||
}
|
||||
|
||||
public void Sold(Actor self)
|
||||
void INotifySold.Sold(Actor self)
|
||||
{
|
||||
if (reservedForAircraft != null)
|
||||
reservedForAircraft.UnReserve();
|
||||
|
||||
@@ -356,8 +356,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
cargo.Clear();
|
||||
}
|
||||
|
||||
public void Selling(Actor self) { }
|
||||
public void Sold(Actor self)
|
||||
void INotifySold.Selling(Actor self) { }
|
||||
void INotifySold.Sold(Actor self)
|
||||
{
|
||||
if (!Info.EjectOnSell || cargo == null)
|
||||
return;
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
correctFaction = factionsList.Count == 0 || factionsList.Contains(self.Owner.Faction.InternalName);
|
||||
}
|
||||
|
||||
public void Selling(Actor self) { }
|
||||
void INotifySold.Selling(Actor self) { }
|
||||
|
||||
void Emit(Actor self)
|
||||
{
|
||||
@@ -85,6 +85,6 @@ namespace OpenRA.Mods.Common.Traits
|
||||
}
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { Emit(self); }
|
||||
void INotifySold.Sold(Actor self) { Emit(self); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,8 +139,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
}
|
||||
|
||||
public void Killed(Actor killed, AttackInfo e) { if (killed == self) { ClearQueue(); Enabled = false; } }
|
||||
public void Selling(Actor self) { ClearQueue(); Enabled = false; }
|
||||
public void Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self) { ClearQueue(); Enabled = false; }
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
|
||||
public void BeforeTransform(Actor self) { ClearQueue(); Enabled = false; }
|
||||
public void OnTransform(Actor self) { }
|
||||
|
||||
@@ -60,8 +60,8 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
overlay.ReplaceAnim(RenderSprites.NormalizeSequence(overlay, e.DamageState, info.Sequence));
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
charging = false;
|
||||
}
|
||||
|
||||
@@ -71,8 +71,8 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
buildComplete = true)));
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
@@ -59,11 +59,11 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
buildComplete = true;
|
||||
}
|
||||
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,8 +105,8 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
buildComplete = true;
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
desiredFrame = door.CurrentSequence.Length - 1;
|
||||
}
|
||||
|
||||
public void Selling(Actor self) { buildComplete = false; }
|
||||
public void Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self) { buildComplete = false; }
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,8 +97,8 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
self.World.AddFrameEndTask(w => SelectQueue(self));
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
@@ -47,11 +47,11 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
buildComplete = true;
|
||||
}
|
||||
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
}
|
||||
}
|
||||
@@ -47,11 +47,11 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
buildComplete = true;
|
||||
}
|
||||
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
}
|
||||
}
|
||||
@@ -65,8 +65,8 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
buildComplete = true)));
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
playerResources = newOwner.PlayerActor.Trait<PlayerResources>();
|
||||
}
|
||||
|
||||
public void Selling(Actor self) { rs.Remove(anim); }
|
||||
public void Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self) { rs.Remove(anim); }
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,13 @@ namespace OpenRA.Mods.Common.Traits
|
||||
IEnumerable<IRenderable> Render(WorldRenderer wr, World w, ActorInfo ai, WPos centerPosition);
|
||||
}
|
||||
|
||||
[RequireExplicitImplementation]
|
||||
public interface INotifySold
|
||||
{
|
||||
void Selling(Actor self);
|
||||
void Sold(Actor self);
|
||||
}
|
||||
|
||||
[RequireExplicitImplementation]
|
||||
public interface INotifyAttack
|
||||
{
|
||||
|
||||
@@ -75,8 +75,8 @@ namespace OpenRA.Mods.D2k.Traits.Render
|
||||
buildComplete = true)));
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
public void Selling(Actor self)
|
||||
void INotifySold.Sold(Actor self) { }
|
||||
void INotifySold.Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
@@ -86,8 +86,8 @@ namespace OpenRA.Mods.RA.Traits
|
||||
|
||||
public void Killed(Actor self, AttackInfo e) { RemoveGps(self); }
|
||||
|
||||
public void Selling(Actor self) { }
|
||||
public void Sold(Actor self) { RemoveGps(self); }
|
||||
void INotifySold.Selling(Actor self) { }
|
||||
void INotifySold.Sold(Actor self) { RemoveGps(self); }
|
||||
|
||||
void RemoveGps(Actor self)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user