Skip to content

Instantly share code, notes, and snippets.

@kingthrillgore
Created March 30, 2023 01:50
Show Gist options
  • Save kingthrillgore/30eaa9749e16eb6adbca8e19916316a6 to your computer and use it in GitHub Desktop.
Save kingthrillgore/30eaa9749e16eb6adbca8e19916316a6 to your computer and use it in GitHub Desktop.
Modified vehicle.gd
if Input.is_action_pressed(&"reverse"):
print("Reverse pressed (fwd_mps: ", fwd_mps, ")")
# Increase engine force at low speeds to make the initial acceleration faster.
if fwd_mps >= -1.0:
var speed := linear_velocity.length()
print("Meters Per Second is gteq -1 (speed: ", speed, ")")
if speed < 5.0 and not is_zero_approx(speed):
print("Reverse Engine")
engine_force = -clampf(engine_force_value * 5.0 / speed, 0.0, 0.0)
brake = 0.0
else:
print("Shunt Engine force to -40 and reverse")
engine_force = -engine_force_value
brake = 0.0
# Apply analog brake factor for more subtle braking if not fully holding down the trigger.
if brake == 0.5:
print("Appling Brake Factor Strength")
print("Kickstart engine force at its default of 40")
engine_force = -engine_force_value
print("brake is locked to 0.5, reset to 0")
brake = 0.0
engine_force *= Input.get_action_strength(&"reverse")
else:
print("Meters per second is lteq -1")
print("Zero out brake")
brake = 0.0
else:
#print("Reverse is not being pressed")
brake = 0.0
if Input.is_action_pressed(&"handbrake"):
# Immediately halt engine force
if fwd_mps >= -1.0:
var speed := linear_velocity.length()
if speed < 5.0 and not is_zero_approx(speed):
# print("Clampf engine force to a value near to and eventually 0")
engine_force = -clampf(engine_force_value * 5.0 / speed, 0.0, 100.0)
brake = handbrake_force_value
else:
# print("Engine force must be zeroed out")
engine_force = 0
brake = handbrake_force_value
engine_force *= 0
brake = handbrake_force_value
# print("Handbrake Engine force ", engine_force)
else:
brake = 0
else:
brake = 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment