diff options
Diffstat (limited to 'src/pipeline')
| -rw-r--r-- | src/pipeline/user_changes.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/pipeline/user_changes.rs b/src/pipeline/user_changes.rs index 9872208..be2cec3 100644 --- a/src/pipeline/user_changes.rs +++ b/src/pipeline/user_changes.rs @@ -151,15 +151,21 @@ pub(crate) fn handle_user_changes_to_rigid_bodies( if changes.contains(RigidBodyChanges::DOMINANCE) || changes.contains(RigidBodyChanges::TYPE) + || changes.contains(RigidBodyChanges::ENABLED) { + // Propagate the modified flags to the attached colliders. + let flags = if changes.contains(RigidBodyChanges::ENABLED) { + ColliderChanges::ENABLED + } else { + ColliderChanges::PARENT_EFFECTIVE_DOMINANCE + }; for handle in rb.colliders.0.iter() { let co = colliders.index_mut_internal(*handle); if !co.changes.contains(ColliderChanges::MODIFIED) { modified_colliders.push(*handle); } - co.changes |= - ColliderChanges::MODIFIED | ColliderChanges::PARENT_EFFECTIVE_DOMINANCE; + co.changes |= ColliderChanges::MODIFIED | flags; } } |
