Add plumbing to make Turn uninterruptible

This commit is contained in:
reaperrr
2018-06-09 18:25:50 +02:00
committed by Paul Chote
parent c93333a816
commit e167d1f848

View File

@@ -21,22 +21,25 @@ namespace OpenRA.Mods.Common.Activities
readonly IFacing facing;
readonly int desiredFacing;
public Turn(Actor self, int desiredFacing)
public Turn(Actor self, int desiredFacing, bool isInterruptible = true)
{
disablable = self.TraitOrDefault<IMove>() as IDisabledTrait;
facing = self.Trait<IFacing>();
this.desiredFacing = desiredFacing;
IsInterruptible = isInterruptible;
}
public override Activity Tick(Actor self)
{
if (IsCanceled)
if (IsInterruptible && IsCanceled)
return NextActivity;
if (disablable != null && disablable.IsTraitDisabled)
return this;
if (desiredFacing == facing.Facing)
return NextActivity;
facing.Facing = Util.TickFacing(facing.Facing, desiredFacing, facing.TurnSpeed);
return this;