// Standard and Static callback create methods for the asset manager private Gobject CreateRover() { RoverObject r = null; try { Vector3 pos = Vector3.Zero; float maxSteerAngle = 30.0f; float steerRate = 5.0f; float wheelSideFriction = 4.7f; float wheelFwdFriction = 5.0f; float wheelTravel = 0.2f; float wheelRadius = 0.4f; float wheelZOffset = 0.05f; float wheelRestingFrac = 0.45f; float wheeldampingFrac = 0.3f; int wheelNumRays = 1; float driveTorque = 200.0f; r = new RoverObject(0, pos, roverModel, wheelModel, roverRadar, cubeModel, RotArm, roverCam, Pole, maxSteerAngle, steerRate, wheelSideFriction, wheelFwdFriction, wheelTravel, wheelRadius, wheelZOffset, wheelRestingFrac, wheeldampingFrac, wheelNumRays, driveTorque, /*physicsManager.PhysicsSystem.Gravity.Length());*/ 10f); // TODO FIX - Jeffrey changed gravity to magic constant because planets have their own gravity ... thus PhysicsSystem.Gravity = 0; r.Rover.EnableCar(); r.Rover.Chassis.Body.AllowFreezing = false; if (isServer) { r.AddCollisionCallback(CollisionSkin_callbackFn); } } catch (Exception E) { System.Diagnostics.Debug.WriteLine(E.StackTrace); } return(r); }