public override IEnumerable <IRenderable> RenderPreview(ActorInfo building, PaletteReference pr) { var p = BaseBuildingPreview(building, pr); var anim = new Animation(RenderSprites.GetImage(building), () => 0); anim.PlayRepeating("idle-top"); return(p.Concat(anim.Render(WPos.Zero, pr))); }
public WithTurret(Actor self, WithTurretInfo info) { this.info = info; rs = self.Trait <RenderSprites>(); body = self.Trait <IBodyOrientation>(); ab = self.TraitOrDefault <AttackBase>(); t = self.TraitsImplementing <Turreted>() .First(tt => tt.Name == info.Turret); arms = self.TraitsImplementing <Armament>() .Where(w => w.Info.Turret == info.Turret); anim = new Animation(rs.GetImage(self), () => t.turretFacing); anim.Play(info.Sequence); rs.anims.Add("turret_{0}".F(info.Turret), new AnimationWithOffset( anim, () => TurretOffset(self), null, p => ZOffsetFromCenter(self, p, 1))); // Restrict turret facings to match the sprite t.QuantizedFacings = anim.CurrentSequence.Facings; }
public IEnumerable <IActorPreview> RenderPreview(ActorPreviewInitializer init) { var sequenceProvider = init.World.Map.SequenceProvider; var image = RenderSprites.GetImage(init.Actor); var palette = init.WorldRenderer.Palette(Palette ?? (init.Owner != null ? PlayerPalette + init.Owner.InternalName : null)); var facings = 0; var body = init.Actor.Traits.GetOrDefault <BodyOrientationInfo>(); if (body != null) { facings = body.QuantizedFacings == -1 ? init.Actor.Traits.Get <IQuantizeBodyOrientationInfo>().QuantizedBodyFacings(sequenceProvider, init.Actor) : body.QuantizedFacings; } foreach (var spi in init.Actor.Traits.WithInterface <IRenderActorPreviewSpritesInfo>()) { foreach (var preview in spi.RenderPreviewSprites(init, this, image, facings, palette)) { yield return(preview); } } }
public virtual int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai) { return(sequenceProvider.GetSequence(RenderSprites.GetImage(ai), "idle").Facings); }
public override int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai) { return(sequenceProvider.GetSequence(RenderSprites.GetImage(ai), StandAnimations.First()).Facings); }