diff --git a/OpenRA.Mods.TS/Traits/Render/WithVoxelWalkerBody.cs b/OpenRA.Mods.TS/Traits/Render/WithVoxelWalkerBody.cs index b92f31d624..6ce8ea49df 100644 --- a/OpenRA.Mods.TS/Traits/Render/WithVoxelWalkerBody.cs +++ b/OpenRA.Mods.TS/Traits/Render/WithVoxelWalkerBody.cs @@ -16,7 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.TS.Traits { - public class WithVoxelWalkerBodyInfo : ITraitInfo, Requires, Requires + public class WithVoxelWalkerBodyInfo : ITraitInfo, Requires, Requires, Requires { public readonly int TickRate = 5; public object Create(ActorInitializer init) { return new WithVoxelWalkerBody(init.Self, this); } @@ -26,6 +26,8 @@ namespace OpenRA.Mods.TS.Traits { WithVoxelWalkerBodyInfo info; IMove movement; + IFacing facing; + int oldFacing; int2 size; uint tick, frame, frames; @@ -33,6 +35,7 @@ namespace OpenRA.Mods.TS.Traits { this.info = info; movement = self.Trait(); + facing = self.Trait(); var body = self.Trait(); var rv = self.Trait(); @@ -53,8 +56,9 @@ namespace OpenRA.Mods.TS.Traits public void Tick(Actor self) { - if (movement.IsMoving) + if (movement.IsMoving || facing.Facing != oldFacing) tick++; + oldFacing = facing.Facing; if (tick < info.TickRate) return;