@@ -113,6 +113,9 @@ class_name Car extends RigidBody3D
113
113
## The force applied to the car when it's mid-air to stabilize it.
114
114
@export var air_stabilization_force : float = 200.0
115
115
116
+ @export_group ("Animation" )
117
+ @export var do_not_apply_forces : bool = false
118
+
116
119
# == NODES ==#
117
120
var wheels : Array [CarWheel ]
118
121
@@ -378,27 +381,28 @@ func _physics_process(delta: float) -> void:
378
381
update_revs (delta )
379
382
update_burnout_amount ()
380
383
381
- if ground_coefficient > 0.0 :
382
- var desired_linear_grip_force : Vector3 = Vector3 .RIGHT * get_side_grip_force ()
383
- var desired_engine_force : Vector3 = Vector3 .FORWARD * get_engine_force () * delta
384
- var desired_brake_force : Vector3 = Vector3 .FORWARD * get_brake_force () * delta
385
- var desired_slowdown_force : Vector3 = Vector3 .FORWARD * get_slowdown_force () * delta
386
- # TODO: downforce
387
-
388
- var sum_of_linear_forces : Vector3 = convert_linear_force (desired_linear_grip_force + desired_engine_force + desired_brake_force + desired_slowdown_force , delta )
389
- apply_force (sum_of_linear_forces * ground_coefficient / delta , average_wheel_collision_point - global_position )
390
-
391
- var desired_takeoff_force : Vector3 = Vector3 .FORWARD * get_takeoff_force () * delta
392
- apply_force (Plane (average_wheel_collision_normal ).project (global_basis * desired_takeoff_force ) * ground_coefficient / delta , average_wheel_collision_point - global_position )
393
-
394
- var desired_steer_force : Vector3 = Vector3 .UP * get_steer_force ()
395
- var sum_of_angular_forces : Vector3 = convert_angular_force (desired_steer_force , delta )
396
- apply_torque (sum_of_angular_forces * average_wheel_collision_normal * ground_coefficient / delta )
397
- else :
398
- var desired_air_stabilization_force : Vector3 = get_air_stabilization_force () * delta
399
-
400
- var sum_of_angular_forces : Vector3 = convert_angular_force (desired_air_stabilization_force , delta , false )
401
- apply_torque (sum_of_angular_forces / delta )
384
+ if not do_not_apply_forces :
385
+ if ground_coefficient > 0.0 :
386
+ var desired_linear_grip_force : Vector3 = Vector3 .RIGHT * get_side_grip_force ()
387
+ var desired_engine_force : Vector3 = Vector3 .FORWARD * get_engine_force () * delta
388
+ var desired_brake_force : Vector3 = Vector3 .FORWARD * get_brake_force () * delta
389
+ var desired_slowdown_force : Vector3 = Vector3 .FORWARD * get_slowdown_force () * delta
390
+ # TODO: downforce
391
+
392
+ var sum_of_linear_forces : Vector3 = convert_linear_force (desired_linear_grip_force + desired_engine_force + desired_brake_force + desired_slowdown_force , delta )
393
+ apply_force (sum_of_linear_forces * ground_coefficient / delta , average_wheel_collision_point - global_position )
394
+
395
+ var desired_takeoff_force : Vector3 = Vector3 .FORWARD * get_takeoff_force () * delta
396
+ apply_force (Plane (average_wheel_collision_normal ).project (global_basis * desired_takeoff_force ) * ground_coefficient / delta , average_wheel_collision_point - global_position )
397
+
398
+ var desired_steer_force : Vector3 = Vector3 .UP * get_steer_force ()
399
+ var sum_of_angular_forces : Vector3 = convert_angular_force (desired_steer_force , delta )
400
+ apply_torque (sum_of_angular_forces * average_wheel_collision_normal * ground_coefficient / delta )
401
+ else :
402
+ var desired_air_stabilization_force : Vector3 = get_air_stabilization_force () * delta
403
+
404
+ var sum_of_angular_forces : Vector3 = convert_angular_force (desired_air_stabilization_force , delta , false )
405
+ apply_torque (sum_of_angular_forces / delta )
402
406
403
407
old_linear_velocity = linear_velocity
404
408
old_angular_velocity = angular_velocity
0 commit comments