private void DoSteering() { BaseWheeledVehicle.VehicleWheel[] vehicleWheelArray = this.wheels; for (int i = 0; i < (int)vehicleWheelArray.Length; i++) { BaseWheeledVehicle.VehicleWheel vehicleWheel = vehicleWheelArray[i]; if (vehicleWheel.steerWheel) { vehicleWheel.wheelCollider.steerAngle = this.steering; } } base.SetFlag(BaseEntity.Flags.Reserved4, this.steering < -2f, false, true); base.SetFlag(BaseEntity.Flags.Reserved5, this.steering > 2f, false, true); }
private void ApplyForceAtWheels() { if (this.myRigidBody == null) { return; } Vector3 vector3 = this.myRigidBody.velocity; float single = vector3.magnitude * Vector3.Dot(vector3.normalized, base.transform.forward); float single1 = this.brakePedal; float single2 = this.gasPedal; if (single > 0f && single2 < 0f) { single1 = 100f; } else if (single < 0f && single2 > 0f) { single1 = 100f; } BaseWheeledVehicle.VehicleWheel[] vehicleWheelArray = this.wheels; for (int i = 0; i < (int)vehicleWheelArray.Length; i++) { BaseWheeledVehicle.VehicleWheel vehicleWheel = vehicleWheelArray[i]; if (vehicleWheel.wheelCollider.isGrounded) { if (vehicleWheel.powerWheel) { vehicleWheel.wheelCollider.motorTorque = single2 * this.motorForceConstant; } if (vehicleWheel.brakeWheel) { vehicleWheel.wheelCollider.brakeTorque = single1 * this.brakeForceConstant; } } } base.SetFlag(BaseEntity.Flags.Reserved3, (single1 < 100f ? false : this.IsMounted()), false, true); }