Merge pull request #6851 from atlimit8/BuildingCompleteForProduction
Use INotifyBuildComplete for Production & AnnounceOnBuild
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user