#67 fixed: spinners work again

This commit is contained in:
Chris Forbes
2009-11-01 22:30:28 +13:00
parent 33ef0f6e61
commit e62a0bc717
4 changed files with 16 additions and 4 deletions

View File

@@ -50,6 +50,7 @@ namespace OpenRa.Game.GameRules
public readonly int[] PrimaryOffset = { 0, 0 };
public readonly int[] SecondaryOffset = null;
public readonly int Recoil = 0;
public readonly int[] ScreenSpaceTurretOffset = { 0, 0 };
public UnitInfo(string name) { Name = name; }

View File

@@ -16,7 +16,11 @@ namespace OpenRa.Game.Traits
: base(self)
{
turretAnim = new Animation(self.unitInfo.Name);
turretAnim.PlayFetchIndex("turret", () => self.traits.Get<Turreted>().turretFacing / 8);
if (self.traits.Contains<Turreted>())
turretAnim.PlayFetchIndex("turret",
() => self.traits.Get<Turreted>().turretFacing / 8);
else
turretAnim.PlayRepeating("turret"); /* not really a turret; it's a spinner */
}
public override IEnumerable<Pair<Sprite, float2>> Render(Actor self)

View File

@@ -87,7 +87,9 @@ namespace OpenRa.Game.Traits
var bodyFacing = self.traits.Get<Mobile>().facing;
var quantizedFacing = bodyFacing - bodyFacing % ru.anim.CurrentSequence.Length;
return (RotateVectorByFacing(new float2(offset[0], offset[1]), quantizedFacing, .7f) + GetRecoil(self, recoil));
return (RotateVectorByFacing(new float2(offset[0], offset[1]), quantizedFacing, .7f) + GetRecoil(self, recoil))
+ new float2(self.unitInfo.ScreenSpaceTurretOffset[0],
self.unitInfo.ScreenSpaceTurretOffset[1]);
}
public static Pair<Sprite, float2> Centered(Sprite s, float2 location)

View File

@@ -33,10 +33,14 @@ Description=Mammoth Tank
Traits=Mobile, Turreted, AttackTurreted, RenderUnitTurreted
[MRJ]
Description=Radar Jammer
Traits=Mobile, Turreted, RenderUnitTurreted ; temporary. It's not a turret, it's a spinney-thing
Traits=Mobile, RenderUnitTurreted
PrimaryOffset=0,4
ScreenSpaceTurretOffset=0,-6
[MGG]
Description=Mobile Gap Generator
Traits=Mobile, Turreted, RenderUnitTurreted ; temporary. It's not a turret, it's a spinney-thing
Traits=Mobile, RenderUnitTurreted
PrimaryOffset=0,6
ScreenSpaceTurretOffset=0,-3
[ARTY]
Description=Artillery
Traits=Mobile, RenderUnit
@@ -49,6 +53,7 @@ Traits=Mobile, McvDeploy, RenderUnit
[JEEP]
Description=Ranger
Traits=Mobile, Turreted, AttackTurreted, RenderUnitTurreted
ScreenSpaceTurretOffset=0,-2
[APC]
Description=Armored Personnel Carrier
Traits=Mobile, RenderUnit