From 71d2cb5476f6aa289017323373c1481dd159060e Mon Sep 17 00:00:00 2001 From: LeshaInc <42153076+LeshaInc@users.noreply.github.com> Date: Wed, 19 Jul 2023 15:41:37 +0300 Subject: [PATCH] Run transform propagation before `init_rigid_bodies` (#89) --- src/plugins/prepare.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/plugins/prepare.rs b/src/plugins/prepare.rs index 39d00314..1955c2bf 100644 --- a/src/plugins/prepare.rs +++ b/src/plugins/prepare.rs @@ -40,7 +40,15 @@ impl Plugin for PreparePlugin { app.add_systems( self.schedule.dyn_clone(), ( - (init_rigid_bodies, init_mass_properties, init_colliders), + ( + bevy::transform::systems::sync_simple_transforms, + bevy::transform::systems::propagate_transforms, + init_rigid_bodies, + ) + .chain() + .run_if(any_new_rigid_bodies), + init_mass_properties, + init_colliders, update_mass_properties, ) .chain() @@ -65,6 +73,10 @@ type RigidBodyComponents = ( Option<&'static TimeSleeping>, ); +fn any_new_rigid_bodies(query: Query<(), Added>) -> bool { + !query.is_empty() +} + fn init_rigid_bodies( mut commands: Commands, mut bodies: Query>,