Merge pull request #9172 from Mailaender/fix-withcargo-desync

Fixed a desync involving WithCargo
This commit is contained in:
reaperrr
2015-08-28 15:05:55 +02:00
2 changed files with 15 additions and 6 deletions

View File

@@ -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<IBodyOrientation>();
}
public void Tick(Actor self)
{
if (facing == null)
return;
foreach (var c in cargo.Passengers)
{
var cargoFacing = c.TraitOrDefault<IFacing>();
if (cargoFacing != null)
cargoFacing.Facing = facing.Facing;
}
}
public IEnumerable<IRenderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<IRenderable> 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<IFacing>();
if (facing != null && cargoFacing != null)
cargoFacing.Facing = facing.Facing;
var cargoPassenger = c.Trait<Passenger>();
if (cargoInfo.DisplayTypes.Contains(cargoPassenger.Info.CargoType))
{

View File

@@ -41,7 +41,7 @@ LST:
Tooltip:
Name: Landing Craft
Buildable:
Queue: Vehicle
Queue: Vehicle.GDI
BuildPaletteOrder: 1000
Prerequisites: ~disabled
Mobile: