public override void Bind(Entity entity, Main main, bool creating = false) { Bouncer bouncer = entity.GetOrCreate <Bouncer>("Bouncer"); JointFactory.Bind(entity, main, bouncer.CreateJoint, false, creating, false); Components.Joint joint = entity.GetOrCreate <Components.Joint>("Joint"); bouncer.Add(new Binding <Entity.Handle>(bouncer.Parent, joint.Parent)); bouncer.Add(new Binding <Voxel.Coord>(bouncer.Coord, joint.Coord)); DynamicVoxel voxel = entity.Get <DynamicVoxel>(); voxel.KineticFriction.Value = voxel.StaticFriction.Value = 0; bouncer.Add(new CommandBinding(voxel.PhysicsUpdated, delegate() { bouncer.PhysicsUpdated.Execute(voxel.PhysicsEntity.Mass, voxel.PhysicsEntity.Volume); })); entity.Add("UVRotation", voxel.UVRotation); entity.Add("UVOffset", voxel.UVOffset); entity.Add("CannotSuspendByDistance", voxel.CannotSuspendByDistance); }