예제 #1
0
        public IEnumerable <ModelAnimation> RenderPreviewVoxels(
            ActorPreviewInitializer init, RenderVoxelsInfo rv, string image, Func <WRot> orientation, int facings, PaletteReference p)
        {
            if (!EnabledByDefault)
            {
                yield break;
            }

            var body     = init.Actor.TraitInfo <BodyOrientationInfo>();
            var armament = init.Actor.TraitInfos <ArmamentInfo>()
                           .First(a => a.Name == Armament);
            var t = init.Actor.TraitInfos <TurretedInfo>()
                    .First(tt => tt.Turret == armament.Turret);

            var model = init.World.ModelCache.GetModelSequence(image, Sequence);

            var         turretOrientation = t.PreviewOrientation(init, orientation, facings);
            Func <WVec> barrelOffset      = () => body.LocalToWorld(t.Offset + LocalOffset.Rotate(turretOrientation()));
            Func <WRot> barrelOrientation = () => LocalOrientation.Rotate(turretOrientation());

            yield return(new ModelAnimation(model, barrelOffset, barrelOrientation, () => false, () => 0, ShowShadow));
        }