11use avian3d:: prelude:: {
2- Collider , CollisionEventsEnabled , Collisions , Friction , LinearVelocity , OnCollisionStart ,
3- Position , Restitution , RigidBody , Rotation ,
2+ Collider , CollisionEventsEnabled , CollisionStart , Collisions , Friction , LinearVelocity ,
3+ Restitution , RigidBody ,
44} ;
55use bevy:: {
6- core_pipeline:: { bloom:: Bloom , prepass:: DepthPrepass } ,
7- prelude:: * ,
6+ core_pipeline:: prepass:: DepthPrepass , post_process:: bloom:: Bloom , prelude:: * , render:: view:: Hdr ,
87} ;
98use bevy_firework:: {
109 core:: {
@@ -74,28 +73,20 @@ fn setup(
7473 CollisionEventsEnabled ,
7574 ) )
7675 . observe (
77- |trigger : Trigger < OnCollisionStart > ,
78- mut commands : Commands ,
79- collisions : Collisions ,
80- collider : Query < ( & Position , & Rotation ) > | {
76+ |trigger : On < CollisionStart > , mut commands : Commands , collisions : Collisions | {
8177 collisions
82- . collisions_with ( trigger. collider )
78+ . collisions_with ( trigger. collider1 )
8379 . for_each ( |pair| {
84- let ( impulse, mut normal) = pair. max_normal_impulse ( ) ;
85- if pair. collider1 != trigger. collider {
80+ let ( impulse, mut normal) = (
81+ pair. max_normal_impulse_magnitude ( ) ,
82+ pair. max_normal_impulse ( ) . normalize_or_zero ( ) ,
83+ ) ;
84+ if pair. collider1 == trigger. collider1 {
8685 normal = -normal;
8786 }
8887
89- let Ok ( ( position, rotation) ) = collider. get ( trigger. collider ) else {
90- return ;
91- } ;
92- let translation = pair. find_deepest_contact ( ) . map_or ( Vec3 :: ZERO , |c| {
93- if pair. collider1 == trigger. collider {
94- c. global_point1 ( position, rotation)
95- } else {
96- c. global_point2 ( position, rotation)
97- }
98- } ) ;
88+ let translation =
89+ pair. find_deepest_contact ( ) . map_or ( Vec3 :: ZERO , |c| c. point ) ;
9990
10091 commands
10192 . spawn ( (
@@ -144,9 +135,8 @@ fn setup(
144135 } ,
145136 ) )
146137 . observe (
147- |trigger : Trigger < ParticleSpawnerFinished > ,
148- mut commands : Commands | {
149- commands. entity ( trigger. target ( ) ) . despawn ( ) ;
138+ |trigger : On < ParticleSpawnerFinished > , mut commands : Commands | {
139+ commands. entity ( trigger. event_target ( ) ) . despawn ( ) ;
150140 } ,
151141 ) ;
152142 } ) ;
@@ -166,10 +156,7 @@ fn setup(
166156 // camera
167157 commands. spawn ( (
168158 Camera3d :: default ( ) ,
169- Camera {
170- hdr : true ,
171- ..default ( )
172- } ,
159+ Hdr ,
173160 Transform :: from_xyz ( -2.5 , 10. , 4.0 ) . looking_at ( Vec3 :: new ( 0. , -3. , 0. ) , Vec3 :: Y ) ,
174161 Bloom :: default ( ) ,
175162 DepthPrepass :: default ( ) ,
0 commit comments