public override void UpdateOnceBeforeFrame() { base.UpdateOnceBeforeFrame(); Physics.Enabled = true; Physics.RigidBody.Activate(); Physics.RigidBody.ContactPointCallbackDelay = 0; Physics.RigidBody.ContactSoundCallbackEnabled = true; //return; if (InitialHit != null) { Physics.ApplyImpulse(InitialHit.Impulse, Physics.CenterOfMassWorld); MyPhysics.FractureImpactDetails fid = new Sandbox.Engine.Physics.MyPhysics.FractureImpactDetails(); fid.Entity = this; fid.World = Physics.HavokWorld; fid.ContactInWorld = InitialHit.Position; HkdFractureImpactDetails details = HkdFractureImpactDetails.Create(); details.SetBreakingBody(Physics.RigidBody); details.SetContactPoint(Physics.WorldToCluster(InitialHit.Position)); details.SetDestructionRadius(0.05f); details.SetBreakingImpulse(30000); details.SetParticleVelocity(InitialHit.Impulse); details.SetParticlePosition(Physics.WorldToCluster(InitialHit.Position)); details.SetParticleMass(500); fid.Details = details; MyPhysics.EnqueueDestruction(fid); } }