diff --git a/OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs b/OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs index 7c1f189779..13f31b2783 100644 --- a/OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs +++ b/OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs @@ -29,7 +29,7 @@ namespace OpenRA.Mods.Cnc.Traits public object Create(ActorInitializer init) { return new WithCargo(init.Self, this); } } - public class WithCargo : IRenderModifier + public class WithCargo : IRenderModifier, ITick { readonly Cargo cargo; readonly IFacing facing; @@ -45,6 +45,19 @@ namespace OpenRA.Mods.Cnc.Traits body = self.Trait(); } + public void Tick(Actor self) + { + if (facing == null) + return; + + foreach (var c in cargo.Passengers) + { + var cargoFacing = c.TraitOrDefault(); + if (cargoFacing != null) + cargoFacing.Facing = facing.Facing; + } + } + public IEnumerable ModifyRender(Actor self, WorldRenderer wr, IEnumerable r) { foreach (var rr in r) @@ -55,10 +68,6 @@ namespace OpenRA.Mods.Cnc.Traits var i = 0; foreach (var c in cargo.Passengers) { - var cargoFacing = c.TraitOrDefault(); - if (facing != null && cargoFacing != null) - cargoFacing.Facing = facing.Facing; - var cargoPassenger = c.Trait(); if (cargoInfo.DisplayTypes.Contains(cargoPassenger.Info.CargoType)) {