Move INotifyDamageStateChanged to mod code and require explicit implementation

This commit is contained in:
reaperrr
2016-10-20 21:41:25 +02:00
parent 7955aeb1c3
commit 77a134da91
6 changed files with 13 additions and 5 deletions

View File

@@ -130,7 +130,6 @@ namespace OpenRA.Traits
public interface INotifyAddedToWorld { void AddedToWorld(Actor self); }
public interface INotifyRemovedFromWorld { void RemovedFromWorld(Actor self); }
public interface INotifyDamage { void Damaged(Actor self, AttackInfo e); }
public interface INotifyDamageStateChanged { void DamageStateChanged(Actor self, AttackInfo e); }
public interface INotifyKilled { void Killed(Actor self, AttackInfo e); }
public interface INotifyActorDisposing { void Disposing(Actor self); }
public interface INotifyAppliedDamage { void AppliedDamage(Actor self, Actor damaged, AttackInfo e); }

View File

@@ -308,7 +308,7 @@ namespace OpenRA.Mods.Common.Traits
}
}
public void DamageStateChanged(Actor self, AttackInfo e)
void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
{
Do((b, d) => b.UpdateState());

View File

@@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Traits
this.info = info;
}
public void DamageStateChanged(Actor self, AttackInfo e)
void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
{
if (!self.IsInWorld)
return;

View File

@@ -113,7 +113,7 @@ namespace OpenRA.Mods.Common.Traits.Render
return RenderSprites.NormalizeSequence(DefaultAnimation, self.GetDamageState(), sequence);
}
public virtual void DamageStateChanged(Actor self, AttackInfo e)
protected virtual void DamageStateChanged(Actor self)
{
if (DefaultAnimation.CurrentSequence != null)
DefaultAnimation.ReplaceAnim(NormalizeSequence(self, DefaultAnimation.CurrentSequence.Name));
@@ -128,6 +128,11 @@ namespace OpenRA.Mods.Common.Traits.Render
DefaultAnimation.ReplaceAnim(sequence);
}
void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
{
DamageStateChanged(self);
}
void INotifyBuildComplete.BuildingComplete(Actor self) { buildComplete = true; }
void INotifySold.Selling(Actor self) { buildComplete = false; }
void INotifySold.Sold(Actor self) { }

View File

@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
this.info = info;
}
public void DamageStateChanged(Actor self, AttackInfo e)
void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
{
var rand = Game.CosmeticRandom;

View File

@@ -72,6 +72,10 @@ namespace OpenRA.Mods.Common.Traits
[RequireExplicitImplementation]
public interface INotifyBuildComplete { void BuildingComplete(Actor self); }
[RequireExplicitImplementation]
public interface INotifyDamageStateChanged { void DamageStateChanged(Actor self, AttackInfo e); }
public interface INotifyBuildingPlaced { void BuildingPlaced(Actor self); }
public interface INotifyRepair { void Repairing(Actor self, Actor target); }
public interface INotifyBurstComplete { void FiredBurst(Actor self, Target target, Armament a); }