From 19036d1927eb216eed733ce01656c7d52aa261f1 Mon Sep 17 00:00:00 2001 From: teees Date: Mon, 14 Dec 2015 11:38:31 +0100 Subject: [PATCH] Disable WithVoxelTurret until build/transform complete --- .../Traits/Render/WithVoxelTurret.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Render/WithVoxelTurret.cs b/OpenRA.Mods.Common/Traits/Render/WithVoxelTurret.cs index 3dd37e9ec1..e8ca5f1fd0 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithVoxelTurret.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithVoxelTurret.cs @@ -45,12 +45,15 @@ namespace OpenRA.Mods.Common.Traits } } - public class WithVoxelTurret : UpgradableTrait + public class WithVoxelTurret : UpgradableTrait, INotifyBuildComplete, INotifySold, INotifyTransform { readonly Actor self; readonly Turreted turreted; readonly BodyOrientation body; + // TODO: This should go away once https://github.com/OpenRA/OpenRA/issues/7035 is implemented + bool buildComplete; + public WithVoxelTurret(Actor self, WithVoxelTurretInfo info) : base(info) { @@ -58,11 +61,12 @@ namespace OpenRA.Mods.Common.Traits body = self.Trait(); turreted = self.TraitsImplementing() .First(tt => tt.Name == Info.Turret); + buildComplete = !self.Info.HasTraitInfo(); // always render instantly for units var rv = self.Trait(); rv.Add(new VoxelAnimation(VoxelProvider.GetVoxel(rv.Image, Info.Sequence), () => turreted.Position(self), TurretRotation, - () => IsTraitDisabled, () => 0)); + () => IsTraitDisabled || !buildComplete, () => 0)); } IEnumerable TurretRotation() @@ -72,5 +76,12 @@ namespace OpenRA.Mods.Common.Traits yield return turreted.LocalOrientation(self) + WRot.FromYaw(b.Yaw - qb.Yaw); yield return qb; } + + void INotifyBuildComplete.BuildingComplete(Actor self) { buildComplete = true; } + void INotifySold.Selling(Actor self) { buildComplete = false; } + void INotifySold.Sold(Actor self) { } + void INotifyTransform.BeforeTransform(Actor self) { buildComplete = false; } + void INotifyTransform.OnTransform(Actor self) { } + void INotifyTransform.AfterTransform(Actor toActor) { } } }