Skip to content
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ env.RUST_CACHE_KEY }}
- run: sudo apt update && sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev
- run: sudo apt update && sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
- name: Cargo doc
run: cargo doc --no-deps
test:
Expand All @@ -46,7 +46,7 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ env.RUST_CACHE_KEY }}
- run: sudo apt update && sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev
- run: sudo apt update && sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
- run: cargo install cargo-all-features
- name: Clippy for bevy_rapier2d
run: cargo clippy --verbose -p bevy_rapier2d --examples
Expand Down
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);
}
32 changes: 23 additions & 9 deletions bevy_rapier2d/examples/testbed2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ mod rope_joint2;
mod voxels2;

use bevy::{
camera::visibility::RenderLayers,
ecs::world::error::{EntityDespawnError, EntityMutableFetchError},
prelude::*,
};
use bevy_egui::{egui, EguiContexts, EguiPlugin};
use bevy_egui::{egui, EguiContexts, EguiPlugin, EguiPrimaryContextPass};
use bevy_inspector_egui::quick::WorldInspectorPlugin;
use bevy_rapier2d::prelude::*;

Expand Down Expand Up @@ -67,9 +68,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 All @@ -92,6 +91,17 @@ fn main() {
(Examples::PlayerMovement2, "PlayerMovement2").into(),
]))
.init_resource::<ExampleSelected>()
.add_systems(PreStartup, |mut commands: Commands| {
commands.spawn((
Camera2d,
bevy_egui::PrimaryEguiContext,
Camera {
order: 999,
..Default::default()
},
RenderLayers::none(),
));
})
//
//boxes2
.add_systems(
Expand Down Expand Up @@ -242,7 +252,7 @@ fn main() {
)
.add_systems(OnExit(Examples::None), init)
.add_systems(
Update,
EguiPrimaryContextPass,
(
ui_example_system,
change_example.run_if(resource_changed::<ExampleSelected>),
Expand All @@ -256,15 +266,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 +304,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
Loading
Loading