Merge pull request #6851 from atlimit8/BuildingCompleteForProduction

Use INotifyBuildComplete for Production & AnnounceOnBuild
This commit is contained in:
obrakmann
2014-10-29 16:38:20 +01:00
2 changed files with 6 additions and 6 deletions

View File

@@ -13,14 +13,11 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA namespace OpenRA.Mods.RA
{ {
[Desc("Play the Build voice of this actor when trained.")] [Desc("Play the Build voice of this actor when trained.")]
public class AnnounceOnBuildInfo : ITraitInfo public class AnnounceOnBuildInfo : TraitInfo<AnnounceOnBuild> { }
{
public object Create(ActorInitializer init) { return new AnnounceOnBuild(init.self); }
}
public class AnnounceOnBuild public class AnnounceOnBuild : INotifyBuildComplete
{ {
public AnnounceOnBuild(Actor self) public void BuildingComplete(Actor self)
{ {
Sound.PlayVoice("Build", self, self.Owner.Country.Race); Sound.PlayVoice("Build", self, self.Owner.Country.Race);
} }

View File

@@ -105,6 +105,9 @@ namespace OpenRA.Mods.RA
var bi = newUnit.Info.Traits.GetOrDefault<BuildableInfo>(); var bi = newUnit.Info.Traits.GetOrDefault<BuildableInfo>();
if (bi != null && bi.InitialActivity != null) if (bi != null && bi.InitialActivity != null)
newUnit.QueueActivity(Game.CreateObject<Activity>(bi.InitialActivity)); newUnit.QueueActivity(Game.CreateObject<Activity>(bi.InitialActivity));
foreach (var t in newUnit.TraitsImplementing<INotifyBuildComplete>())
t.BuildingComplete(newUnit);
}); });
} }