Animation facing -> WAngle.

This commit is contained in:
Paul Chote
2020-05-08 18:57:28 +01:00
committed by atlimit8
parent 361e2d463c
commit fe58ed1283
26 changed files with 74 additions and 63 deletions

View File

@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Cnc.Traits.Render
var wsb = init.Actor.TraitInfos<WithSpriteBodyInfo>().FirstOrDefault();
// Show the correct turret facing
var facing = init.Contains<TurretFacingInit>() ? init.Get<TurretFacingInit>().Value(init.World) : t.InitialFacing;
var facing = WAngle.FromFacing(init.Contains<TurretFacingInit>() ? init.Get<TurretFacingInit>().Value(init.World) : t.InitialFacing);
var anim = new Animation(init.World, image, () => facing);
anim.PlayRepeating(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), wsb.Sequence));
@@ -47,11 +47,11 @@ namespace OpenRA.Mods.Cnc.Traits.Render
{
readonly Turreted turreted;
static Func<int> MakeTurretFacingFunc(Actor self)
static Func<WAngle> MakeTurretFacingFunc(Actor self)
{
// Turret artwork is baked into the sprite, so only the first turret makes sense.
var turreted = self.TraitsImplementing<Turreted>().FirstOrDefault();
return () => turreted.TurretFacing;
return () => WAngle.FromFacing(turreted.TurretFacing);
}
public WithEmbeddedTurretSpriteBody(ActorInitializer init, WithSpriteBodyInfo info)

View File

@@ -46,11 +46,11 @@ namespace OpenRA.Mods.Cnc.Traits.Render
readonly IFacing facing;
readonly Turreted turret;
static Func<int> MakeTurretFacingFunc(Actor self)
static Func<WAngle> MakeTurretFacingFunc(Actor self)
{
// Turret artwork is baked into the sprite, so only the first turret makes sense.
var turreted = self.TraitsImplementing<Turreted>().FirstOrDefault();
return () => turreted.TurretFacing;
return () => WAngle.FromFacing(turreted.TurretFacing);
}
public WithGunboatBody(ActorInitializer init, WithGunboatBodyInfo info)

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Cnc.Traits.Render
public WithRoof(Actor self, WithRoofInfo info)
{
var rs = self.Trait<RenderSprites>();
var roof = new Animation(self.World, rs.GetImage(self), () => self.Trait<IFacing>().Facing);
var roof = new Animation(self.World, rs.GetImage(self), RenderSprites.MakeFacingFunc(self));
roof.Play(info.Sequence);
rs.Add(new AnimationWithOffset(roof, null, null, 1024));
}