1
0
Fork 0

Merge pull request #100473 from opsocket/fix-rigid-bodies-damping

Update damping values for jolt rigid bodies on mode switch at runtime
This commit is contained in:
Thaddeus Crews 2024-12-19 19:59:39 -06:00
commit 3a12fc89b6
No known key found for this signature in database
GPG Key ID: 62181B86FE9E5D84
2 changed files with 22 additions and 2 deletions

View File

@ -1404,6 +1404,26 @@ void JoltBody3D::set_angular_damp(float p_damp) {
_update_damp();
}
void JoltBody3D::set_linear_damp_mode(DampMode p_mode) {
if (p_mode == linear_damp_mode) {
return;
}
linear_damp_mode = p_mode;
_update_damp();
}
void JoltBody3D::set_angular_damp_mode(DampMode p_mode) {
if (p_mode == angular_damp_mode) {
return;
}
angular_damp_mode = p_mode;
_update_damp();
}
bool JoltBody3D::is_axis_locked(PhysicsServer3D::BodyAxis p_axis) const {
return (locked_axes & (uint32_t)p_axis) != 0;
}

View File

@ -287,10 +287,10 @@ public:
void set_collision_priority(float p_priority) { collision_priority = p_priority; }
DampMode get_linear_damp_mode() const { return linear_damp_mode; }
void set_linear_damp_mode(DampMode p_mode) { linear_damp_mode = p_mode; }
void set_linear_damp_mode(DampMode p_mode);
DampMode get_angular_damp_mode() const { return angular_damp_mode; }
void set_angular_damp_mode(DampMode p_mode) { angular_damp_mode = p_mode; }
void set_angular_damp_mode(DampMode p_mode);
bool is_axis_locked(PhysicsServer3D::BodyAxis p_axis) const;
void set_axis_lock(PhysicsServer3D::BodyAxis p_axis, bool p_enabled);