Skip to content
16 changes: 8 additions & 8 deletions bevy_rapier2d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,15 @@ async-collider = [
to-bevy-mesh = ["bevy/bevy_render", "bevy/bevy_asset"]

[dependencies]
bevy = { version = "0.16.0", default-features = false, features = ["std"] }
nalgebra = { version = "0.33", features = ["convert-glam029"] }
rapier2d = "0.27.0-beta.0"
bevy = { version = "0.17.0", default-features = false, features = ["std"] }
nalgebra = { version = "0.34.1", features = ["convert-glam030"] }
rapier2d = "0.29.0"
bitflags = "2.4"
log = "0.4"
serde = { version = "1", features = ["derive"], optional = true }

[dev-dependencies]
bevy = { version = "0.16.0", default-features = false, features = [
bevy = { version = "0.17.0", default-features = false, features = [
"x11",
"bevy_state",
"bevy_window",
Expand All @@ -81,10 +81,10 @@ bevy = { version = "0.16.0", default-features = false, features = [
] }
oorandom = "11"
approx = "0.5.1"
glam = { version = "0.29", features = ["approx"] }
bevy-inspector-egui = "0.31"
bevy_egui = "0.34"
bevy_mod_debugdump = "0.13"
glam = { version = "0.30.8", features = ["approx"] }
bevy-inspector-egui = "0.34"
bevy_egui = "0.37.0"
bevy_mod_debugdump = "0.14.0"
serde_json = "1.0"

[package.metadata.docs.rs]
Expand Down
4 changes: 2 additions & 2 deletions bevy_rapier2d/examples/custom_system_setup2.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use bevy::{diagnostic::FrameCount, prelude::*, transform::TransformSystem};
use bevy::{diagnostic::FrameCount, prelude::*, transform::TransformSystems};
use bevy_rapier2d::prelude::*;

fn main() {
Expand All @@ -24,7 +24,7 @@ fn main() {
PhysicsSet::Writeback,
)
.chain()
.before(TransformSystem::TransformPropagate),
.before(TransformSystems::Propagate),
);

app.add_systems(
Expand Down
4 changes: 2 additions & 2 deletions bevy_rapier2d/examples/events2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ pub fn setup_graphics(mut commands: Commands) {
}

pub fn display_events(
mut collision_events: EventReader<CollisionEvent>,
mut contact_force_events: EventReader<ContactForceEvent>,
mut collision_events: MessageReader<CollisionMessage>,
mut contact_force_events: MessageReader<ContactForceMessage>,
) {
for collision_event in collision_events.read() {
println!("Received collision event: {collision_event:?}");
Expand Down
2 changes: 1 addition & 1 deletion bevy_rapier2d/examples/player_movement2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ fn main() {
.add_plugins((
DefaultPlugins.set(WindowPlugin {
primary_window: Some(Window {
resolution: WindowResolution::new(1000., 1000.),
resolution: WindowResolution::new(1000, 1000),
title: "Player Movement Example".to_string(),
..default()
}),
Expand Down
2 changes: 1 addition & 1 deletion bevy_rapier2d/examples/serialization2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ pub fn print_physics(_context: ReadRapierContext) {
panic!("Example 'serialization' should be run with '--features serde-serialize'.");
}

fn quit(mut exit_event: EventWriter<AppExit>) {
fn quit(mut exit_event: MessageWriter<AppExit>) {
exit_event.write(AppExit::Success);
}
16 changes: 9 additions & 7 deletions bevy_rapier2d/examples/testbed2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,7 @@ fn main() {
app.init_resource::<ExamplesRes>()
.add_plugins((
DefaultPlugins,
EguiPlugin {
enable_multipass_for_primary_context: false,
},
EguiPlugin::default(),
RapierPhysicsPlugin::<NoUserData>::pixels_per_meter(10.0),
RapierDebugRenderPlugin::default(),
WorldInspectorPlugin::new(),
Expand Down Expand Up @@ -256,15 +254,19 @@ fn main() {
fn init(world: &mut World) {
//save all entities that are in the world before setting up any example
// to be able to always return to this state when switching from one example to the other
world.resource_mut::<ExamplesRes>().entities_before =
world.iter_entities().map(|e| e.id()).collect::<Vec<_>>();
world.resource_mut::<ExamplesRes>().entities_before = world
.query::<EntityRef>()
.iter(world)
.map(|e| e.id())
.collect::<Vec<_>>();
}

fn cleanup(world: &mut World) {
let keep_alive = world.resource::<ExamplesRes>().entities_before.clone();

let remove = world
.iter_entities()
.query::<EntityRef>()
.iter(world)
.filter_map(|e| (!keep_alive.contains(&e.id())).then_some(e.id()))
.collect::<Vec<_>>();

Expand All @@ -290,7 +292,7 @@ fn ui_example_system(
mut current_example: ResMut<ExampleSelected>,
examples_available: Res<ExampleSet>,
) {
egui::Window::new("Testbed").show(contexts.ctx_mut(), |ui| {
egui::Window::new("Testbed").show(contexts.ctx_mut().unwrap(), |ui| {
let mut changed = false;
egui::ComboBox::from_label("example")
.width(150.0)
Expand Down
16 changes: 8 additions & 8 deletions bevy_rapier3d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,15 @@ async-collider = [
to-bevy-mesh = ["bevy/bevy_render", "bevy/bevy_asset"]

[dependencies]
bevy = { version = "0.16.0", default-features = false, features = ["std"] }
nalgebra = { version = "0.33", features = ["convert-glam029"] }
rapier3d = "0.27.0-beta.0"
bevy = { version = "0.17.0", default-features = false, features = ["std"] }
nalgebra = { version = "0.34.1", features = ["convert-glam030"] }
rapier3d = "0.29.0"
bitflags = "2.4"
log = "0.4"
serde = { version = "1", features = ["derive"], optional = true }

[dev-dependencies]
bevy = { version = "0.16.0", default-features = false, features = [
bevy = { version = "0.17.0", default-features = false, features = [
"bevy_window",
"x11",
"tonemapping_luts",
Expand All @@ -85,10 +85,10 @@ bevy = { version = "0.16.0", default-features = false, features = [
"bevy_log",
] }
approx = "0.5.1"
glam = { version = "0.29", features = ["approx"] }
bevy-inspector-egui = "0.31"
bevy_egui = "0.34"
bevy_mod_debugdump = "0.13"
glam = { version = "0.30.7", features = ["approx"] }
bevy-inspector-egui = "0.34"
bevy_egui = "0.37.0"
bevy_mod_debugdump = "0.14.0"

[package.metadata.docs.rs]
# Enable all the features when building the docs on docs.rs
Expand Down
6 changes: 3 additions & 3 deletions bevy_rapier3d/examples/character_controller3.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use bevy::{
input::{mouse::MouseMotion, InputSystem},
input::{mouse::MouseMotion, InputSystems},
prelude::*,
};
use bevy_rapier3d::{control::KinematicCharacterController, prelude::*};
Expand All @@ -25,7 +25,7 @@ fn main() {
RapierDebugRenderPlugin::default(),
))
.add_systems(Startup, (setup_player, setup_map))
.add_systems(PreUpdate, handle_input.after(InputSystem))
.add_systems(PreUpdate, handle_input.after(InputSystems))
.add_systems(Update, player_look)
.add_systems(FixedUpdate, player_movement)
.run();
Expand Down Expand Up @@ -112,7 +112,7 @@ fn handle_input(
keyboard: Res<ButtonInput<KeyCode>>,
mut movement: ResMut<MovementInput>,
mut look: ResMut<LookInput>,
mut mouse_events: EventReader<MouseMotion>,
mut mouse_events: MessageReader<MouseMotion>,
) {
if keyboard.pressed(KeyCode::KeyW) {
movement.z -= 1.0;
Expand Down
4 changes: 2 additions & 2 deletions bevy_rapier3d/examples/custom_system_setup3.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use bevy::{diagnostic::FrameCount, prelude::*, transform::TransformSystem};
use bevy::{diagnostic::FrameCount, prelude::*, transform::TransformSystems};
use bevy_rapier3d::prelude::*;

fn main() {
Expand All @@ -24,7 +24,7 @@ fn main() {
PhysicsSet::Writeback,
)
.chain()
.before(TransformSystem::TransformPropagate),
.before(TransformSystems::Propagate),
);

app.add_systems(
Expand Down
2 changes: 1 addition & 1 deletion bevy_rapier3d/examples/despawn3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ pub fn despawn(
mut despawn: ResMut<DespawnResource>,
query: Query<Entity, With<Despawn>>,
) {
if despawn.timer.tick(time.delta()).finished() {
if despawn.timer.tick(time.delta()).is_finished() {
for entity in &query {
println!("Despawning ground entity");
commands.entity(entity).despawn();
Expand Down
4 changes: 2 additions & 2 deletions bevy_rapier3d/examples/events3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ pub fn setup_graphics(mut commands: Commands) {
}

pub fn display_events(
mut collision_events: EventReader<CollisionEvent>,
mut contact_force_events: EventReader<ContactForceEvent>,
mut collision_events: MessageReader<CollisionEvent>,
mut contact_force_events: MessageReader<ContactForceEvent>,
) {
for collision_event in collision_events.read() {
println!("Received collision event: {collision_event:?}");
Expand Down
2 changes: 1 addition & 1 deletion bevy_rapier3d/examples/joints_despawn3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ pub fn despawn(
mut despawn: ResMut<DespawnResource>,
query: Query<Entity, With<Despawn>>,
) {
if despawn.timer.tick(time.delta()).finished() {
if despawn.timer.tick(time.delta()).is_finished() {
for entity in &query {
println!("Despawning joint entity");
commands.entity(entity).despawn();
Expand Down
24 changes: 9 additions & 15 deletions bevy_rapier3d/examples/picking3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,13 @@ pub fn setup_physics(mut commands: Commands) {
},
))
.observe(on_click_spawn_cube)
.observe(|out: On<Pointer<Out>>, mut texts: Query<&mut TextColor>| {
let mut text_color = texts.get_mut(out.event().entity).unwrap();
text_color.0 = Color::WHITE;
})
.observe(
|out: Trigger<Pointer<Out>>, mut texts: Query<&mut TextColor>| {
let mut text_color = texts.get_mut(out.target()).unwrap();
text_color.0 = Color::WHITE;
},
)
.observe(
|over: Trigger<Pointer<Over>>, mut texts: Query<&mut TextColor>| {
let mut color = texts.get_mut(over.target()).unwrap();
|over: On<Pointer<Over>>, mut texts: Query<&mut TextColor>| {
let mut color = texts.get_mut(over.event().entity).unwrap();
color.0 = bevy::color::palettes::tailwind::CYAN_400.into();
},
);
Expand All @@ -67,11 +65,7 @@ pub fn setup_physics(mut commands: Commands) {
));
}

fn on_click_spawn_cube(
_click: Trigger<Pointer<Click>>,
mut commands: Commands,
mut num: Local<usize>,
) {
fn on_click_spawn_cube(_click: On<Pointer<Click>>, mut commands: Commands, mut num: Local<usize>) {
let rad = 0.25;
let colors = [
Hsla::hsl(220.0, 1.0, 0.3),
Expand All @@ -92,8 +86,8 @@ fn on_click_spawn_cube(
*num += 1;
}

fn on_drag_rotate(drag: Trigger<Pointer<Drag>>, mut transforms: Query<&mut Transform>) {
if let Ok(mut transform) = transforms.get_mut(drag.target()) {
fn on_drag_rotate(drag: On<Pointer<Drag>>, mut transforms: Query<&mut Transform>) {
if let Ok(mut transform) = transforms.get_mut(drag.event().entity) {
transform.rotate_y(drag.delta.x * 0.02);
transform.rotate_x(drag.delta.y * 0.02);
}
Expand Down
2 changes: 1 addition & 1 deletion bevy_rapier3d/examples/rapier_context_component.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ fn main() {
/// Demonstrates how to access a more specific component of [`RapierContext`]
fn display_nb_colliders(
query_context: Query<&RapierContextColliders, With<DefaultRapierContext>>,
mut exit: EventWriter<AppExit>,
mut exit: MessageWriter<AppExit>,
) -> Result<()> {
let nb_colliders = query_context.single()?.colliders.len();
println!("There are {nb_colliders} colliders.");
Expand Down
2 changes: 1 addition & 1 deletion bevy_rapier3d/examples/static_trimesh3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ pub fn ball_spawner(mut commands: Commands, time: Res<Time>, mut ball_state: Res
return;
}

if ball_state.timer.tick(time.delta()).finished() {
if ball_state.timer.tick(time.delta()).is_finished() {
// Spawn a ball near the top of the ramp.
let ramp_size = ramp_size();
let rad = 0.3;
Expand Down
13 changes: 9 additions & 4 deletions bevy_rapier3d/examples/testbed3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ fn main() {
DefaultPlugins,
EguiPlugin {
enable_multipass_for_primary_context: false,
..Default::default()
},
RapierPhysicsPlugin::<NoUserData>::default(),
RapierDebugRenderPlugin::default(),
Expand Down Expand Up @@ -248,15 +249,19 @@ fn main() {
fn init(world: &mut World) {
//save all entities that are in the world before setting up any example
// to be able to always return to this state when switching from one example to the other
world.resource_mut::<ExamplesRes>().entities_before =
world.iter_entities().map(|e| e.id()).collect::<Vec<_>>();
world.resource_mut::<ExamplesRes>().entities_before = world
.query::<EntityRef>()
.iter(world)
.map(|e| e.id())
.collect::<Vec<_>>();
}

fn cleanup(world: &mut World) {
let keep_alive = world.resource::<ExamplesRes>().entities_before.clone();

let remove = world
.iter_entities()
.query::<EntityRef>()
.iter(world)
.filter_map(|e| (!keep_alive.contains(&e.id())).then_some(e.id()))
.collect::<Vec<_>>();
for r in remove {
Expand All @@ -281,7 +286,7 @@ fn ui_example_system(
mut current_example: ResMut<ExampleSelected>,
examples_available: Res<ExampleSet>,
) {
egui::Window::new("Testbed").show(contexts.ctx_mut(), |ui| {
egui::Window::new("Testbed").show(contexts.ctx_mut().unwrap(), |ui| {
let mut changed = false;
egui::ComboBox::from_label("example")
.width(150.0)
Expand Down
4 changes: 2 additions & 2 deletions bevy_rapier_benches3d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
rapier3d = { features = ["profiler"], version = "0.27.0-beta.0" }
rapier3d = { features = ["profiler"], version = "0.29.0" }
bevy_rapier3d = { version = "0.31", path = "../bevy_rapier3d" }
bevy = { version = "0.16.0", default-features = false }
bevy = { version = "0.17.0", default-features = false }

[dev-dependencies]
divan = "0.1"
Expand Down
2 changes: 1 addition & 1 deletion ci/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"

[dependencies]
bevy = "0.16.0"
bevy = "0.17.0"
bevy_rapier3d = { version = "0.31", path = "../bevy_rapier3d" }
bevy_rapier2d = { version = "0.31", path = "../bevy_rapier2d" }

Expand Down
12 changes: 9 additions & 3 deletions src/dynamics/rigid_body.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,15 +202,21 @@ impl std::ops::Deref for ReadMassProperties {
}

/// Entity that likely had their mass properties changed this frame.
#[derive(Deref, Copy, Clone, Debug, PartialEq, Event)]
pub struct MassModifiedEvent(pub Entity);
#[derive(Deref, Copy, Clone, Debug, PartialEq, Message)]
pub struct MassModifiedMessage(pub Entity);

impl From<Entity> for MassModifiedEvent {
impl From<Entity> for MassModifiedMessage {
fn from(entity: Entity) -> Self {
Self(entity)
}
}

#[deprecated(
since = "0.32.0",
note = "MassModifiedMessage has been renamed to MassModifiedEvent for consistency with Bevy 0.17 naming conventions. "
)]
pub use MassModifiedMessage as MassModifiedEvent;

/// Center-of-mass, mass, and angular inertia.
///
/// This cannot be used as a component. Use the components `ReadMassProperties` to read a [`RigidBody`]’s
Expand Down
2 changes: 1 addition & 1 deletion src/geometry/collider_impl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
use na::DVector;
#[cfg(all(feature = "dim3", feature = "async-collider"))]
use {
bevy::mesh::{Indices, VertexAttributeValues},
bevy::prelude::*,
bevy::render::mesh::{Indices, VertexAttributeValues},
};

use rapier::{
Expand Down
Loading
Loading