Account for infantry in actor previews.

This commit is contained in:
Paul Chote
2014-07-21 17:56:58 +12:00
parent 79dabe01e8
commit 9b3a73860c

View File

@@ -8,8 +8,10 @@
*/ */
#endregion #endregion
using System.Collections.Generic;
using System.Linq; using System.Linq;
using OpenRA.Mods.RA.Effects; using OpenRA.Mods.RA.Effects;
using OpenRA.Mods.RA.Graphics;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Traits; using OpenRA.Traits;
@@ -28,6 +30,18 @@ namespace OpenRA.Mods.RA.Render
public override object Create(ActorInitializer init) { return new RenderInfantry(init.self, this); } public override object Create(ActorInitializer init) { return new RenderInfantry(init.self, this); }
public override IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
{
var facing = 0;
var ifacing = init.Actor.Traits.GetOrDefault<IFacingInfo>();
if (ifacing != null)
facing = init.Contains<FacingInit>() ? init.Get<FacingInit, int>() : ifacing.GetInitialFacing();
var anim = new Animation(init.World, image, () => facing);
anim.PlayRepeating(StandAnimations.First());
yield return new SpriteActorPreview(anim, WVec.Zero, 0, p, rs.Scale);
}
public override int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai) public override int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai)
{ {
return sequenceProvider.GetSequence(RenderSprites.GetImage(ai), StandAnimations.First()).Facings; return sequenceProvider.GetSequence(RenderSprites.GetImage(ai), StandAnimations.First()).Facings;