/// <summary> /// After we create our RigidBody, we turn it into a vehicle /// </summary> protected override void PostCreateBody(ThingDefinition def) { kartMotionState = MotionState as KartMotionState; Body.CcdMotionThreshold = 0.001f; Body.CcdSweptSphereRadius = 0.04f; Raycaster = new DefaultVehicleRaycaster(LKernel.GetG<PhysicsMain>().World); Tuning = new RaycastVehicle.VehicleTuning(); _vehicle = new RaycastVehicle(Tuning, Body, Raycaster); _vehicle.SetCoordinateSystem(0, 1, 2); // I have no idea what this does... I'm assuming something to do with a rotation matrix? LKernel.GetG<PhysicsMain>().World.AddAction(_vehicle); var wheelFac = LKernel.GetG<WheelFactory>(); string frontWheelName = def.GetStringProperty("FrontWheel", null); string backWheelName = def.GetStringProperty("BackWheel", null); WheelFL = wheelFac.CreateWheel(frontWheelName, WheelID.FrontLeft, this, def.GetVectorProperty("FrontLeftWheelPosition", null), def.GetStringProperty("FrontLeftWheelMesh", null)); WheelFR = wheelFac.CreateWheel(frontWheelName, WheelID.FrontRight, this, def.GetVectorProperty("FrontRightWheelPosition", null), def.GetStringProperty("FrontRightWheelMesh", null)); WheelBL = wheelFac.CreateWheel(backWheelName, WheelID.BackLeft, this, def.GetVectorProperty("BackLeftWheelPosition", null), def.GetStringProperty("BackLeftWheelMesh", null)); WheelBR = wheelFac.CreateWheel(backWheelName, WheelID.BackRight, this, def.GetVectorProperty("BackRightWheelPosition", null), def.GetStringProperty("BackRightWheelMesh", null)); LeftParticleNode.Position -= new Vector3(0, WheelBL.DefaultRadius * 0.7f, 0); RightParticleNode.Position -= new Vector3(0, WheelBR.DefaultRadius * 0.7f, 0); Body.LinearVelocity = new Vector3(0, 1, 0); PhysicsMain.FinaliseBeforeSimulation += FinaliseBeforeSimulation; RaceCountdown.OnCountdown += OnCountdown; }
public CustomVehicle(RaycastVehicle.VehicleTuning tuning, RigidBody chassis, VehicleRaycaster raycaster) { chassisBody = chassis; vehicleRaycaster = raycaster; }
public CustomVehicle(RaycastVehicle.VehicleTuning tuning, RigidBody chassis, VehicleRaycaster raycaster) { chassisBody = chassis; vehicleRaycaster = raycaster; }