Skip to content

Commit cc5619e

Browse files
pchotereaperrr
authored andcommitted
Fix WithCargo desync.
1 parent 086889a commit cc5619e

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

OpenRA.Mods.Cnc/Traits/Render/WithCargo.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class WithCargoInfo : ITraitInfo, Requires<CargoInfo>, Requires<IBodyOrie
2929
public object Create(ActorInitializer init) { return new WithCargo(init.Self, this); }
3030
}
3131

32-
public class WithCargo : IRenderModifier
32+
public class WithCargo : IRenderModifier, ITick
3333
{
3434
readonly Cargo cargo;
3535
readonly IFacing facing;
@@ -45,6 +45,19 @@ public WithCargo(Actor self, WithCargoInfo info)
4545
body = self.Trait<IBodyOrientation>();
4646
}
4747

48+
public void Tick(Actor self)
49+
{
50+
if (facing == null)
51+
return;
52+
53+
foreach (var c in cargo.Passengers)
54+
{
55+
var cargoFacing = c.TraitOrDefault<IFacing>();
56+
if (cargoFacing != null)
57+
cargoFacing.Facing = facing.Facing;
58+
}
59+
}
60+
4861
public IEnumerable<IRenderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<IRenderable> r)
4962
{
5063
foreach (var rr in r)
@@ -55,10 +68,6 @@ public IEnumerable<IRenderable> ModifyRender(Actor self, WorldRenderer wr, IEnum
5568
var i = 0;
5669
foreach (var c in cargo.Passengers)
5770
{
58-
var cargoFacing = c.TraitOrDefault<IFacing>();
59-
if (facing != null && cargoFacing != null)
60-
cargoFacing.Facing = facing.Facing;
61-
6271
var cargoPassenger = c.Trait<Passenger>();
6372
if (cargoInfo.DisplayTypes.Contains(cargoPassenger.Info.CargoType))
6473
{

0 commit comments

Comments
 (0)