diff --git a/src/dynamics/solver/joints/mod.rs b/src/dynamics/solver/joints/mod.rs index 6fa37350..c6ae9e6c 100644 --- a/src/dynamics/solver/joints/mod.rs +++ b/src/dynamics/solver/joints/mod.rs @@ -338,3 +338,10 @@ impl AngleLimit { None } } + +/// Disables the joint of the entity it is placed on. +#[derive(Reflect, Clone, Copy, Component, Debug)] +#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "serialize", reflect(Serialize, Deserialize))] +#[reflect(Debug, Component)] +pub struct JointDisabled; diff --git a/src/dynamics/solver/xpbd/mod.rs b/src/dynamics/solver/xpbd/mod.rs index be7539cf..37077865 100644 --- a/src/dynamics/solver/xpbd/mod.rs +++ b/src/dynamics/solver/xpbd/mod.rs @@ -351,7 +351,7 @@ pub trait XpbdConstraint: MapEntities { pub fn solve_constraint + Component, const ENTITY_COUNT: usize>( mut commands: Commands, mut bodies: Query, - mut constraints: Query<&mut C, Without>, + mut constraints: Query<&mut C, (Without, Without)>, time: Res