facings for the rest of mods/ra.

This commit is contained in:
Bob
2010-02-11 13:27:10 +13:00
parent 31f4e23081
commit bb18e426cd
8 changed files with 61 additions and 59 deletions

View File

@@ -5,15 +5,20 @@ namespace OpenRa.Traits
{
public class RenderBuildingInfo : RenderSimpleInfo
{
public override object Create(Actor self) { return new RenderBuilding(self); }
public override object Create(Actor self) { return new RenderBuilding(self);}
}
public class RenderBuilding : RenderSimple, INotifyDamage, INotifySold
{
static readonly int[] bibStarts = { 0, 0, 1, 5, 11 };
public RenderBuilding(Actor self)
: base(self)
public RenderBuilding( Actor self )
: this( self, () => 0 )
{
}
public RenderBuilding(Actor self, Func<int> baseFacing)
: base(self, baseFacing)
{
if( Game.skipMakeAnims )
Complete( self );

View File

@@ -9,7 +9,7 @@ namespace OpenRa.Traits
class RenderBuildingTurreted : RenderBuilding, INotifyBuildComplete
{
public RenderBuildingTurreted(Actor self)
: base(self)
: base(self, () => self.traits.Get<Turreted>().turretFacing)
{
}

View File

@@ -11,9 +11,8 @@ namespace OpenRa.Traits
public class RenderInfantry : RenderSimple, INotifyAttack, INotifyDamage
{
public RenderInfantry(Actor self)
: base(self)
: base(self, () => self.traits.Get<Unit>().Facing)
{
anim = new Animation( GetImage( self ), () => self.traits.Get<Unit>().Facing );
anim.PlayFacing("stand",
() => self.traits.Get<Unit>().Facing);
}

View File

@@ -21,9 +21,9 @@ namespace OpenRa.Traits
return self.Info.Traits.Get<RenderSimpleInfo>().Image ?? self.Info.Name;
}
public RenderSimple(Actor self)
public RenderSimple(Actor self, Func<int> baseFacing)
{
anims.Add( "", new Animation( GetImage(self) ) );
anims.Add( "", new Animation( GetImage(self), baseFacing ) );
}
public virtual IEnumerable<Renderable> Render( Actor self )

View File

@@ -13,9 +13,8 @@ namespace OpenRa.Traits
class RenderUnit : RenderSimple, INotifyDamage
{
public RenderUnit(Actor self)
: base(self)
: base(self, () => self.traits.Get<Unit>().Facing)
{
anim = new Animation( GetImage( self ), () => self.traits.Get<Unit>().Facing );
PlayFacingAnim(self);
anims.Add( "smoke", new AnimationWithOffset( new Animation( "smoke_m" ), null, () => !isSmoking ) );

View File

@@ -19,9 +19,9 @@ namespace OpenRa.Traits
var attack = self.traits.Get<AttackBase>();
var attackInfo = self.Info.Traits.Get<AttackBaseInfo>();
var muzzleFlash = new Animation(GetImage(self));
var muzzleFlash = new Animation(GetImage(self), ()=>unit.Facing);
muzzleFlash.PlayFetchIndex("muzzle",
() => (Util.QuantizeFacing(unit.Facing, 8)) * 6 + (int)(attack.primaryRecoil * 5.9f));
() => (int)(attack.primaryRecoil * 5.9f));
anims.Add( "muzzle", new AnimationWithOffset(
muzzleFlash,
() => attackInfo.PrimaryOffset.AbsOffset(),

View File

@@ -19,7 +19,7 @@ namespace OpenRa.Traits
var attack = self.traits.GetOrDefault<AttackBase>();
var attackInfo = self.Info.Traits.Get<AttackBaseInfo>();
var turretAnim = new Animation(GetImage(self));
var turretAnim = new Animation(GetImage(self), () => turreted.turretFacing );
turretAnim.PlayFacing( "turret", () => turreted.turretFacing );
if( attackInfo.PrimaryOffset != null )
@@ -36,10 +36,9 @@ namespace OpenRa.Traits
if( attackInfo.MuzzleFlash )
{
var muzzleFlash = new Animation( GetImage(self) );
var muzzleFlash = new Animation( GetImage(self), () => self.traits.Get<Turreted>().turretFacing );
muzzleFlash.PlayFetchIndex( "muzzle",
() => ( Util.QuantizeFacing( self.traits.Get<Turreted>().turretFacing, 8 ) ) * 6
+ (int)( attack.primaryRecoil * 5.9f ) ); /* hack: recoil can be 1.0f, but don't overflow into next anim */
() => (int)( attack.primaryRecoil * 5.9f ) ); /* hack: recoil can be 1.0f, but don't overflow into next anim */
anims.Add( "muzzle_flash", new AnimationWithOffset(
muzzleFlash,
() => Util.GetTurretPosition(self, unit, attackInfo.PrimaryOffset, attack.primaryRecoil),

View File

@@ -150,22 +150,22 @@
</unit>
<!-- allied gun turret -->
<unit name="gun">
<sequence name="idle" start="0" length="32" />
<sequence name="recoil" start="32" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="recoil" start="32" facings="32" />
<sequence name="make" start="0" length="20" src="gunmake" />
<sequence name="damaged-idle" start="64" length="32" />
<sequence name="damaged-recoil" start="96" length="32" />
</unit>
<!-- AA gun -->
<unit name="agun">
<sequence name="idle" start="0" length="32" />
<sequence name="damaged-idle" start="32" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="damaged-idle" start="32" facings="32" />
<sequence name="make" start="0" length="*" src="agunmake" />
</unit>
<!-- sam site -->
<unit name="sam">
<sequence name="idle" start="0" length="32" />
<sequence name="damaged-idle" start="34" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="damaged-idle" start="34" facings="32" />
<sequence name="make" start="0" length="*" src="sammake" />
</unit>
<!-- flame turret -->
@@ -226,80 +226,80 @@
</unit>
<!-- mcv -->
<unit name="mcv">
<sequence name="idle" start="0" length="*" />
<sequence name="idle" start="0" facings="32" />
</unit>
<!-- truck -->
<unit name="truk">
<sequence name="idle" start="0" length="*" />
<sequence name="idle" start="0" facings="32" />
</unit>
<!-- harv -->
<unit name="harv">
<sequence name="idle" start="0" length="1" facings="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="harvest" start="32" length="8" facings="8" />
<sequence name="empty" start="96" length="15" />
</unit>
<!-- light tank -->
<unit name="1tnk">
<sequence name="idle" start="0" length="32" />
<sequence name="turret" start="32" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="turret" start="32" facings="32" />
</unit>
<!-- medium tank -->
<unit name="2tnk">
<sequence name="idle" start="0" length="32" />
<sequence name="turret" start="32" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="turret" start="32" facings="32" />
</unit>
<!-- heavy tank -->
<unit name="3tnk">
<sequence name="idle" start="0" length="32" />
<sequence name="turret" start="32" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="turret" start="32" facings="32" />
</unit>
<!-- mammoth tank -->
<unit name="4tnk">
<sequence name="idle" start="0" length="32" />
<sequence name="turret" start="32" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="turret" start="32" facings="32" />
</unit>
<!-- v2 rocket launcher -->
<unit name="v2rl">
<sequence name="idle" start="0" length="32" />
<sequence name="empty-idle" start="32" length="32" />
<sequence name="aim" start="64" length="8" />
<sequence name="empty-aim" start="72" length="8" />
<sequence name="idle" start="0" facings="32" />
<sequence name="empty-idle" start="32" facings="32" />
<sequence name="aim" start="64" facings="8" />
<sequence name="empty-aim" start="72" facings="8" />
</unit>
<!-- artillery -->
<unit name="arty">
<sequence name="idle" start="0" length="32" />
<sequence name="idle" start="0" facings="32" />
</unit>
<!-- jeep -->
<unit name="jeep">
<sequence name="idle" start="0" length="32" />
<sequence name="turret" start="32" length="32" />
<sequence name="muzzle" start="0" length="48" src="minigun" />
<sequence name="idle" start="0" facings="32" />
<sequence name="turret" start="32" facings="32" />
<sequence name="muzzle" start="0" length="6" facings="8" src="minigun" />
</unit>
<!-- apc -->
<unit name="apc">
<sequence name="idle" start="0" length="32" />
<sequence name="muzzle" start="0" length="48" src="minigun" />
<sequence name="idle" start="0" facings="32" />
<sequence name="muzzle" start="0" length="6" facings="8" src="minigun" />
<sequence name="close" start="32" length="3" />
<sequence name="unload" start="32" length="1" />
</unit>
<!-- mine layer -->
<unit name="mnly">
<sequence name="idle" start="0" length="32" />
<sequence name="idle" start="0" facings="32" />
<!-- and 16 "lay mine" sprites, not used in real-ra -->
</unit>
<!-- radar jammer -->
<unit name="mrj">
<sequence name="idle" start="0" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="spinner" start="32" length="32" />
</unit>
<!-- mobile gap generator -->
<unit name="mgg">
<sequence name="idle" start="0" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="spinner" start="32" length="8" />
</unit>
<!-- submarine -->
<unit name="ss">
<sequence name="idle" start="0" length="16" />
<sequence name="idle" start="0" facings="16" />
</unit>
<!-- rifle infantry -->
<unit name="e1">
@@ -401,16 +401,16 @@
<sequence name="crawl" start="82" length="4" facings="8" />
</unit>
<unit name="ca">
<sequence name="idle" start="0" length="16" />
<sequence name="turret" start="0" length="32" src="turr" />
<sequence name="idle" start="0" facings="16" />
<sequence name="turret" start="0" facings="32" src="turr" />
</unit>
<unit name="dd">
<sequence name="idle" start="0" length="16" />
<sequence name="turret" start="0" length="32" src="ssam" />
<sequence name="idle" start="0" facings="16" />
<sequence name="turret" start="0" facings="32" src="ssam" />
</unit>
<unit name="pt">
<sequence name="idle" start="0" length="16" />
<sequence name="turret" start="0" length="32" src="mgun" />
<sequence name="idle" start="0" facings="16" />
<sequence name="turret" start="0" facings="32" src="mgun" />
</unit>
<unit name="medi">
<sequence name="stand" start="0" length="8" />
@@ -460,23 +460,23 @@
<sequence name="tag-primary" start="2" length="1" />
</unit>
<unit name="mig">
<sequence name="idle" start="0" length="16" />
<sequence name="idle" start="0" facings="16" />
</unit>
<unit name="yak">
<sequence name="idle" start="0" length="16" />
<sequence name="idle" start="0" facings="16" />
</unit>
<unit name="heli">
<sequence name="idle" start="0" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="rotor" start="0" length="4" src="lrotor" />
<sequence name="slow-rotor" start="4" length="8" src="lrotor" />
</unit>
<unit name="hind">
<sequence name="idle" start="0" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="rotor" start="0" length="4" src="lrotor" />
<sequence name="slow-rotor" start="4" length="8" src="lrotor" />
</unit>
<unit name="tran">
<sequence name="idle" start="0" length="32" />
<sequence name="idle" start="0" facings="32" />
<sequence name="rotor" start="0" length="4" src="lrotor" />
<sequence name="rotor2" start="0" length="4" src="rrotor" />
<sequence name="slow-rotor" start="4" length="8" src="lrotor" />
@@ -841,6 +841,6 @@
<sequence name="idle" start="5" length="11" />
</unit>
<unit name="badr">
<sequence name="idle" start="0" length="16" />
<sequence name="idle" start="0" facings="16" />
</unit>
</sequences>