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)); }
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); }
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); }