diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index 1d84308a23..b3e0b7bb02 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -162,6 +162,7 @@
+
diff --git a/OpenRA.Mods.RA/Render/WithRotor.cs b/OpenRA.Mods.Common/Traits/Render/WithRotor.cs
old mode 100755
new mode 100644
similarity index 91%
rename from OpenRA.Mods.RA/Render/WithRotor.cs
rename to OpenRA.Mods.Common/Traits/Render/WithRotor.cs
index 78dc4da03f..e1ac419f1e
--- a/OpenRA.Mods.RA/Render/WithRotor.cs
+++ b/OpenRA.Mods.Common/Traits/Render/WithRotor.cs
@@ -12,10 +12,9 @@ using System;
using System.Collections.Generic;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Graphics;
-using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Render
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Displays a helicopter rotor overlay.")]
public class WithRotorInfo : ITraitInfo, IRenderActorPreviewSpritesInfo, Requires, Requires
@@ -64,7 +63,7 @@ namespace OpenRA.Mods.RA.Render
rotorAnim.PlayRepeating(info.Sequence);
rs.Add(info.Id, new AnimationWithOffset(rotorAnim,
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
- null, () => false, p => WithTurret.ZOffsetFromCenter(self, p, 1)));
+ null, () => false, p => ZOffsetFromCenter(self, p, 1)));
}
public void Tick(Actor self)
@@ -75,5 +74,11 @@ namespace OpenRA.Mods.RA.Render
rotorAnim.ReplaceAnim(isFlying ? info.Sequence : info.GroundSequence);
}
+
+ static public int ZOffsetFromCenter(Actor self, WPos pos, int offset)
+ {
+ var delta = self.CenterPosition - pos;
+ return delta.Y + delta.Z + offset;
+ }
}
}
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index 62f6595828..1112c60346 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -239,7 +239,6 @@
-