Example #1
0
        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)));
        }
Example #2
0
        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;
        }
Example #3
0
        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);
                }
            }
        }
Example #4
0
 public virtual int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai)
 {
     return(sequenceProvider.GetSequence(RenderSprites.GetImage(ai), "idle").Facings);
 }
Example #5
0
 public override int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai)
 {
     return(sequenceProvider.GetSequence(RenderSprites.GetImage(ai), StandAnimations.First()).Facings);
 }