|
@@ -210,20 +210,6 @@ void JoltBody3D::_move_kinematic(float p_step, JPH::Body &p_jolt_body) {
|
|
p_jolt_body.MoveKinematic(new_position, new_rotation, p_step);
|
|
p_jolt_body.MoveKinematic(new_position, new_rotation, p_step);
|
|
}
|
|
}
|
|
|
|
|
|
-void JoltBody3D::_pre_step_rigid(float p_step, JPH::Body &p_jolt_body) {
|
|
|
|
- _integrate_forces(p_step, p_jolt_body);
|
|
|
|
- _enqueue_call_queries();
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void JoltBody3D::_pre_step_kinematic(float p_step, JPH::Body &p_jolt_body) {
|
|
|
|
- _update_gravity(p_jolt_body);
|
|
|
|
- _move_kinematic(p_step, p_jolt_body);
|
|
|
|
-
|
|
|
|
- if (reports_contacts()) {
|
|
|
|
- _enqueue_call_queries();
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
JPH::EAllowedDOFs JoltBody3D::_calculate_allowed_dofs() const {
|
|
JPH::EAllowedDOFs JoltBody3D::_calculate_allowed_dofs() const {
|
|
if (is_static()) {
|
|
if (is_static()) {
|
|
return JPH::EAllowedDOFs::All;
|
|
return JPH::EAllowedDOFs::All;
|
|
@@ -1237,13 +1223,18 @@ void JoltBody3D::pre_step(float p_step, JPH::Body &p_jolt_body) {
|
|
} break;
|
|
} break;
|
|
case PhysicsServer3D::BODY_MODE_RIGID:
|
|
case PhysicsServer3D::BODY_MODE_RIGID:
|
|
case PhysicsServer3D::BODY_MODE_RIGID_LINEAR: {
|
|
case PhysicsServer3D::BODY_MODE_RIGID_LINEAR: {
|
|
- _pre_step_rigid(p_step, p_jolt_body);
|
|
|
|
|
|
+ _integrate_forces(p_step, p_jolt_body);
|
|
} break;
|
|
} break;
|
|
case PhysicsServer3D::BODY_MODE_KINEMATIC: {
|
|
case PhysicsServer3D::BODY_MODE_KINEMATIC: {
|
|
- _pre_step_kinematic(p_step, p_jolt_body);
|
|
|
|
|
|
+ _update_gravity(p_jolt_body);
|
|
|
|
+ _move_kinematic(p_step, p_jolt_body);
|
|
} break;
|
|
} break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (_should_call_queries()) {
|
|
|
|
+ _enqueue_call_queries();
|
|
|
|
+ }
|
|
|
|
+
|
|
contact_count = 0;
|
|
contact_count = 0;
|
|
}
|
|
}
|
|
|
|
|