jeep.gd 710 B

123456789101112131415161718192021222324252627282930313233343536
  1. class_name Jeep
  2. extends SeatedVehicle
  3. @export var max_engine_force: float = 500
  4. @export var max_brake_force: float = 50
  5. @export var max_steering: float = PI / 6.0 # degrees
  6. func steer(ratio: float) -> void:
  7. set_steering(ratio * max_steering)
  8. func get_free_seat() -> Node3D:
  9. return %RearSeat
  10. func _on_dir_changed(dir: Vector2) -> void:
  11. steer(-dir.x)
  12. func _on_main_action(pressed: bool) -> void:
  13. if pressed:
  14. set_engine_force(max_engine_force)
  15. else:
  16. set_engine_force(0.0)
  17. func _on_stop_action(pressed: bool) -> void:
  18. if pressed:
  19. set_brake(max_brake_force)
  20. else:
  21. set_brake(0.0)
  22. func _on_analog_action(side: int, value: float) -> void:
  23. set_engine_force(side * value * max_engine_force)