Add InitialActor to Carryall.
This commit is contained in:
committed by
Paul Chote
parent
9ee7294c81
commit
df94f0ec8b
@@ -23,6 +23,10 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Transports actors with the `Carryable` trait.")]
|
[Desc("Transports actors with the `Carryable` trait.")]
|
||||||
public class CarryallInfo : TraitInfo, Requires<BodyOrientationInfo>, Requires<AircraftInfo>
|
public class CarryallInfo : TraitInfo, Requires<BodyOrientationInfo>, Requires<AircraftInfo>
|
||||||
{
|
{
|
||||||
|
[ActorReference(typeof(CarryableInfo))]
|
||||||
|
[Desc("Actor type that is initially spawned into this actor.")]
|
||||||
|
public readonly string InitialActor = null;
|
||||||
|
|
||||||
[Desc("Delay (in ticks) on the ground while attaching an actor to the carryall.")]
|
[Desc("Delay (in ticks) on the ground while attaching an actor to the carryall.")]
|
||||||
public readonly int BeforeLoadDelay = 0;
|
public readonly int BeforeLoadDelay = 0;
|
||||||
|
|
||||||
@@ -110,6 +114,18 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
move = self.Trait<IMove>();
|
move = self.Trait<IMove>();
|
||||||
facing = self.Trait<IFacing>();
|
facing = self.Trait<IFacing>();
|
||||||
this.self = self;
|
this.self = self;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(info.InitialActor))
|
||||||
|
{
|
||||||
|
var unit = self.World.CreateActor(false, info.InitialActor.ToLowerInvariant(), new TypeDictionary
|
||||||
|
{
|
||||||
|
new ParentActorInit(self),
|
||||||
|
new OwnerInit(self.Owner)
|
||||||
|
});
|
||||||
|
|
||||||
|
unit.Trait<Carryable>().Attached(self);
|
||||||
|
AttachCarryable(self, unit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ITick.Tick(Actor self)
|
void ITick.Tick(Actor self)
|
||||||
|
|||||||
Reference in New Issue
Block a user