protected virtual void Update() { int targetGear; GetInput(out throttleInput, out brakeInput, out steerInput, out handbrakeInput, out clutchInput, out startEngineInput, out targetGear); if (!drivetrain.changingGear && targetGear != drivetrain.gear) { drivetrain.Shift(targetGear); } if (drivetrain.automatic && drivetrain.autoReverse == true) { if (brakeInput > 0 && (velo <= 0.5f)) { reverse = true; if (drivetrain.gear != drivetrain.firstReverse) { drivetrain.Shift(drivetrain.firstReverse); } } if (throttleInput > 0 && (velo <= 0.5f)) { reverse = false; if (drivetrain.gear != drivetrain.first) { drivetrain.Shift(drivetrain.first); } } if (reverse == true) { float temp = throttleInput; throttleInput = brakeInput; brakeInput = temp; } } else { reverse = false; } brakeKey = brakeInput > 0; accelKey = throttleInput > 0; }