예제 #1
0
        public WithVoxelUnloadBody(Actor self, WithVoxelUnloadBodyInfo info)
        {
            var body = self.Trait <BodyOrientation>();

            rv = self.Trait <RenderVoxels>();

            var idleModel = self.World.ModelCache.GetModelSequence(rv.Image, info.IdleSequence);

            modelAnimation = new ModelAnimation(idleModel, () => WVec.Zero,
                                                () => new[] { body.QuantizeOrientation(self, self.Orientation) }, () => Docked, () => 0, info.ShowShadow);
            rv.Add(modelAnimation);

            var unloadModel = self.World.ModelCache.GetModelSequence(rv.Image, info.UnloadSequence);

            rv.Add(new ModelAnimation(unloadModel, () => WVec.Zero,
                                      () => new[] { body.QuantizeOrientation(self, self.Orientation) },
                                      () => !Docked, () => 0, info.ShowShadow));
        }
예제 #2
0
        public WithVoxelAnimatedBody(Actor self, WithVoxelAnimatedBodyInfo info)
            : base(info)
        {
            this.info = info;

            var body = self.Trait <BodyOrientation>();

            rv = self.Trait <RenderVoxels>();

            var voxel = self.World.ModelCache.GetModelSequence(rv.Image, info.Sequence);

            frames         = voxel.Frames;
            modelAnimation = new ModelAnimation(voxel, () => WVec.Zero,
                                                () => body.QuantizeOrientation(self.Orientation),
                                                () => IsTraitDisabled, () => frame, info.ShowShadow);

            rv.Add(modelAnimation);
        }
예제 #3
0
        public WithVoxelWalkerBody(Actor self, WithVoxelWalkerBodyInfo info)
        {
            this.info = info;
            movement  = self.Trait <IMove>();

            var body = self.Trait <BodyOrientation>();

            rv = self.Trait <RenderVoxels>();

            var model = self.World.ModelCache.GetModelSequence(rv.Image, info.Sequence);

            frames         = model.Frames;
            modelAnimation = new ModelAnimation(model, () => WVec.Zero,
                                                () => new[] { body.QuantizeOrientation(self, self.Orientation) },
                                                () => false, () => frame, info.ShowShadow);

            rv.Add(modelAnimation);
        }