using Sandbox; namespace VeloX; public abstract partial class VeloXBase { private Vector3 linForce; private Vector3 angForce; private void PhysicsSimulate() { var drag = AngularDrag; var mass = Body.Mass; var angVel = Body.AngularVelocity; linForce.x = 0; linForce.y = 0; linForce.z = 0; angForce.x = angVel.x * drag.x * mass; angForce.y = angVel.y * drag.y * mass; angForce.z = angVel.z * drag.z * mass; if ( Wheels.Count > 0 ) { Vector3 vehVel = Body.Velocity; Vector3 vehAngVel = Body.AngularVelocity; var dt = Time.Delta; foreach ( var v in Wheels ) v.DoPhysics( this, ref vehVel, ref vehAngVel, ref linForce, ref angForce, in dt ); Body.Velocity = vehVel; Body.AngularVelocity = vehAngVel; } Body.ApplyForce( linForce ); Body.ApplyTorque( angForce ); } }