diff --git a/CHANGELOG.md b/CHANGELOG.md index 24c9e61d..a5ef5c80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,31 @@ ### Modified +- `RapierContext` has been split in multiple `Component`s: + - `RapierContextColliders` + - `RapierContextJoints` + - `RapierContextSimulation` + - `RapierRigidBodySet` + +## v0.28.0 (09 December 2024) + +### Modified + - Update from rapier `0.21` to rapier `0.22`, see [rapier's changelog](https://github.com/dimforge/rapier/blob/master/CHANGELOG.md). +- Update bevy to 0.15. +- `RapierContext`, `RapierConfiguration` and `RenderToSimulationTime` are now a `Component` instead of resources. + - Rapier now supports multiple independent physics worlds, see example `multi_world3` for usage details. + - Migration guide: + - `ResMut` -> `WriteDefaultRapierContext` + - `Res` -> `ReadDefaultRapierContext` + - Access to `RapierConfiguration` and `RenderToSimulationTime` should query for it +on the responsible entity owning the `RenderContext`. + - If you are building a library on top of `bevy_rapier` and would want to support multiple independent physics worlds too, +you can check out the details of [#545](https://github.com/dimforge/bevy_rapier/pull/545) +to get more context and information. +- `colliders_with_aabb_intersecting_aabb` now takes `bevy::math::bounding::Aabb3d` (or `[..]::Aabb2d` in 2D) as parameter. + - it is now accessible with `headless` feature enabled. ### Fix @@ -21,39 +44,6 @@ which was its hardcoded behaviour. `RapierDebugColliderPlugin` and `DebugRenderContext`, as well as individual collider setup via a `ColliderDebug` component. -### Modified - -- Rapier now supports multiple independent physics contexts, see example `multi_contexts3` for usage details. - - Each entity managed by bevy_rapier has a `RapierContextEntityLink` pointing to the entity containing the components above. - - If you are building a library on top of `bevy_rapier` and would want to support multiple independent physics contexts too, - you can check out the details of [#545](https://github.com/dimforge/bevy_rapier/pull/545) - to find more information. - - Rapier now supports multiple independent physics contexts, see example `multi_contexts3` for usage details. - - Migration guide: - - `ResMut` -> `WriteDefaultRapierContext` - - `Res` -> `ReadDefaultRapierContext` - - Access to `RapierConfiguration` and `RenderToSimulationTime` should query for it -on the responsible entity owning the `RenderContext`. - - If you are building a library on top of `bevy_rapier` and would want to support multiple independent physics contexts too, -you can check out the details of [#545](https://github.com/dimforge/bevy_rapier/pull/545) -to get more context and information. -- `colliders_with_aabb_intersecting_aabb` now takes `bevy::math::bounding::Aabb3d` (or `[..]::Aabb2d` in 2D) as parameter. - - it is now accessible with `headless` feature enabled. -- `RapierContext`, `RapierConfiguration` and `SimulationToRenderTime` are no longer `Resource`s. - - They have been split in multiple `Component`s: - - `RapierContextColliders` - - `RapierContextJoints` - - `RapierContextSimulation` - - `RapierRigidBodySet` - - `SimulationToRenderTime` - - `RapierConfiguration` - - Migration guide: - - `ResMut` -> `WriteRapierContext` - - `Res` -> `ReadRapierContext` - - Access to `RapierConfiguration` and `SimulationToRenderTime` should query for it - on the responsible entity owning the `RenderContext`. - - See [`ray_casting`](bevy_rapier3d/examples/ray_casting3.rs) example for a usage example. - ## v0.27.0 (07 July 2024) **This is an update from rapier 0.19 to Rapier 0.21 which includes several stability improvements diff --git a/Cargo.toml b/Cargo.toml index 684265ff..a297a9b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,11 +2,6 @@ members = ["bevy_rapier2d", "bevy_rapier3d", "bevy_rapier_benches3d"] resolver = "2" -[workspace.lints] -rust.unexpected_cfgs = { level = "warn", check-cfg = [ - 'cfg(feature, values("dim2", "dim3"))', -] } - [profile.dev] # Use slightly better optimization by default, as examples otherwise seem laggy. opt-level = 1 @@ -20,7 +15,6 @@ codegen-units = 1 #parry3d = { path = "../parry/crates/parry3d" } #rapier2d = { path = "../rapier/crates/rapier2d" } #rapier3d = { path = "../rapier/crates/rapier3d" } - #nalgebra = { git = "https://github.com/dimforge/nalgebra", branch = "dev" } #parry2d = { git = "https://github.com/dimforge/parry", branch = "master" } #parry3d = { git = "https://github.com/dimforge/parry", branch = "master" } diff --git a/bevy_rapier2d/Cargo.toml b/bevy_rapier2d/Cargo.toml index d1d1d6ca..4a626709 100644 --- a/bevy_rapier2d/Cargo.toml +++ b/bevy_rapier2d/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy_rapier2d" -version = "0.27.0" +version = "0.28.0" authors = ["Sébastien Crozet "] description = "2-dimensional physics engine in Rust, official Bevy plugin." documentation = "http://docs.rs/bevy_rapier2d" @@ -18,7 +18,10 @@ path = "../src/lib.rs" required-features = ["dim2"] [lints] -workspace = true +rust.unexpected_cfgs = { level = "warn", check-cfg = [ + 'cfg(feature, values("dim3"))', +] } +clippy = { needless_lifetimes = "allow" } [features] default = ["dim2", "async-collider", "debug-render-2d"] @@ -46,28 +49,29 @@ wasm-bindgen = ["rapier2d/wasm-bindgen"] serde-serialize = ["rapier2d/serde-serialize", "bevy/serialize", "serde"] enhanced-determinism = ["rapier2d/enhanced-determinism"] headless = [] -async-collider = ["bevy/bevy_asset", "bevy/bevy_scene"] +async-collider = ["bevy/bevy_asset", "bevy/bevy_scene", "bevy/bevy_render"] [dependencies] -bevy = { version = "0.14", default-features = false } -nalgebra = { version = "0.33", features = ["convert-glam027"] } +bevy = { version = "0.15", default-features = false } +nalgebra = { version = "0.33", features = ["convert-glam029"] } rapier2d = "0.22" bitflags = "2.4" log = "0.4" serde = { version = "1", features = ["derive"], optional = true } [dev-dependencies] -bevy = { version = "0.14", default-features = false, features = [ +bevy = { version = "0.15", default-features = false, features = [ "x11", "bevy_state", + "bevy_window", "bevy_debug_stepping", ] } oorandom = "11" approx = "0.5.1" -glam = { version = "0.27", features = ["approx"] } -bevy-inspector-egui = "0.25.1" -bevy_egui = "0.28.0" -bevy_mod_debugdump = "0.11" +glam = { version = "0.29", features = ["approx"] } +bevy-inspector-egui = "0.28.0" +bevy_egui = "0.31" +bevy_mod_debugdump = "0.12" [package.metadata.docs.rs] # Enable all the features when building the docs on docs.rs diff --git a/bevy_rapier2d/examples/boxes2.rs b/bevy_rapier2d/examples/boxes2.rs index a653575e..b63f7f56 100644 --- a/bevy_rapier2d/examples/boxes2.rs +++ b/bevy_rapier2d/examples/boxes2.rs @@ -18,10 +18,7 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera2dBundle { - transform: Transform::from_xyz(0.0, 20.0, 0.0), - ..default() - }); + commands.spawn((Camera2d::default(), Transform::from_xyz(0.0, 20.0, 0.0))); } pub fn setup_physics(mut commands: Commands) { @@ -32,7 +29,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 10.0; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 0.0 * -ground_height, 0.0)), + Transform::from_xyz(0.0, 0.0 * -ground_height, 0.0), Collider::cuboid(ground_size, ground_height), )); @@ -54,7 +51,7 @@ pub fn setup_physics(mut commands: Commands) { let y = j as f32 * shift + centery + 30.0; commands.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, 0.0)), + Transform::from_xyz(x, y, 0.0), RigidBody::Dynamic, Collider::cuboid(rad, rad), )); diff --git a/bevy_rapier2d/examples/contact_filter2.rs b/bevy_rapier2d/examples/contact_filter2.rs index d286151d..7e3538c2 100644 --- a/bevy_rapier2d/examples/contact_filter2.rs +++ b/bevy_rapier2d/examples/contact_filter2.rs @@ -45,10 +45,7 @@ fn main() { } fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera2dBundle { - transform: Transform::from_xyz(0.0, 20.0, 0.0), - ..default() - }); + commands.spawn((Camera2d::default(), Transform::from_xyz(0.0, 20.0, 0.0))); } pub fn setup_physics(mut commands: Commands) { @@ -58,13 +55,13 @@ pub fn setup_physics(mut commands: Commands) { let ground_size = 100.0; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -100.0, 0.0)), + Transform::from_xyz(0.0, -100.0, 0.0), Collider::cuboid(ground_size, 12.0), CustomFilterTag::GroupA, )); commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 0.0, 0.0)), + Transform::from_xyz(0.0, 0.0, 0.0), Collider::cuboid(ground_size, 12.0), CustomFilterTag::GroupB, )); @@ -89,7 +86,7 @@ pub fn setup_physics(mut commands: Commands) { group_id += 1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, 0.0)), + Transform::from_xyz(x, y, 0.0), RigidBody::Dynamic, Collider::cuboid(rad, rad), ActiveHooks::FILTER_CONTACT_PAIRS, diff --git a/bevy_rapier2d/examples/custom_system_setup2.rs b/bevy_rapier2d/examples/custom_system_setup2.rs index 31232e9f..71b5ac56 100644 --- a/bevy_rapier2d/examples/custom_system_setup2.rs +++ b/bevy_rapier2d/examples/custom_system_setup2.rs @@ -61,10 +61,7 @@ fn despawn_one_box( } fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera2dBundle { - transform: Transform::from_xyz(0.0, 20.0, 0.0), - ..default() - }); + commands.spawn((Camera2d::default(), Transform::from_xyz(0.0, 20.0, 0.0))); } pub fn setup_physics(mut commands: Commands) { @@ -75,7 +72,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 10.0; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 0.0 * -ground_height, 0.0)), + Transform::from_xyz(0.0, 0.0 * -ground_height, 0.0), Collider::cuboid(ground_size, ground_height), )); @@ -97,7 +94,7 @@ pub fn setup_physics(mut commands: Commands) { let y = j as f32 * shift + centery + 30.0; commands.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, 0.0)), + Transform::from_xyz(x, y, 0.0), RigidBody::Dynamic, Collider::cuboid(rad, rad), )); diff --git a/bevy_rapier2d/examples/debug_despawn2.rs b/bevy_rapier2d/examples/debug_despawn2.rs index 3eeab482..4fdf28b5 100644 --- a/bevy_rapier2d/examples/debug_despawn2.rs +++ b/bevy_rapier2d/examples/debug_despawn2.rs @@ -92,7 +92,7 @@ pub fn setup_game(mut commands: Commands, mut game: ResMut) { byte_rgb(255, 0, 0), ]; - commands.spawn(Camera2dBundle::default()); + commands.spawn(Camera2d::default()); setup_board(&mut commands, &game); @@ -131,15 +131,12 @@ fn setup_board(commands: &mut Commands, game: &Game) { // Add floor commands.spawn(( - SpriteBundle { - sprite: Sprite { - color: Color::srgb(0.5, 0.5, 0.5), - custom_size: Some(Vec2::new(game.n_lanes as f32 * 30.0, 60.0)), - ..Default::default() - }, - transform: Transform::from_xyz(0.0, floor_y - 30.0 * 0.5, 0.0), + Sprite { + color: Color::srgb(0.5, 0.5, 0.5), + custom_size: Some(Vec2::new(game.n_lanes as f32 * 30.0, 60.0)), ..Default::default() }, + Transform::from_xyz(0.0, floor_y - 30.0 * 0.5, 0.0), RigidBody::Fixed, Collider::cuboid(game.n_lanes as f32 * 30.0 / 2.0, 60.0 / 2.0), )); @@ -200,15 +197,12 @@ fn spawn_block( commands .spawn(( - SpriteBundle { - sprite: Sprite { - color: game.cube_colors[kind as usize], - custom_size: Some(Vec2::new(30.0, 30.0)), - ..Default::default() - }, - transform: Transform::from_xyz(x, y, 0.0), + Sprite { + color: game.cube_colors[kind as usize], + custom_size: Some(Vec2::new(30.0, 30.0)), ..Default::default() }, + Transform::from_xyz(x, y, 0.0), RigidBody::Dynamic, Damping { linear_damping, diff --git a/bevy_rapier2d/examples/debug_toggle2.rs b/bevy_rapier2d/examples/debug_toggle2.rs index da161f1b..a5b1e1e0 100644 --- a/bevy_rapier2d/examples/debug_toggle2.rs +++ b/bevy_rapier2d/examples/debug_toggle2.rs @@ -31,11 +31,10 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-30.0, 30.0, 100.0) - .looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-30.0, 30.0, 100.0).looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), + )); } #[derive(Component)] @@ -49,7 +48,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 0.1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -ground_height, 0.0)), + Transform::from_xyz(0.0, -ground_height, 0.0), Collider::cuboid(ground_size, ground_height), )); @@ -81,12 +80,10 @@ pub fn setup_physics(mut commands: Commands) { color += 1; commands - .spawn(TransformBundle::from(Transform::from_rotation( - Quat::from_rotation_x(0.2), - ))) + .spawn(Transform::from_rotation(Quat::from_rotation_x(0.2))) .with_children(|child| { child.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, z)), + Transform::from_xyz(x, y, z), RigidBody::Dynamic, Collider::cuboid(rad, rad), ColliderDebugColor(colors[color % 3]), diff --git a/bevy_rapier2d/examples/despawn2.rs b/bevy_rapier2d/examples/despawn2.rs index a2b5288d..ed20bc80 100644 --- a/bevy_rapier2d/examples/despawn2.rs +++ b/bevy_rapier2d/examples/despawn2.rs @@ -43,10 +43,7 @@ pub fn setup_graphics( resize.timer = Timer::from_seconds(6.0, TimerMode::Once); despawn.timer = Timer::from_seconds(5.0, TimerMode::Once); - commands.spawn(Camera2dBundle { - transform: Transform::from_xyz(0.0, 20.0, 0.0), - ..default() - }); + commands.spawn((Camera2d::default(), Transform::from_xyz(0.0, 20.0, 0.0))); } pub fn setup_physics(mut commands: Commands) { @@ -58,12 +55,12 @@ pub fn setup_physics(mut commands: Commands) { commands.spawn((Collider::cuboid(ground_size, 12.0), Despawn)); commands.spawn(( - TransformBundle::from(Transform::from_xyz(ground_size, ground_size * 2.0, 0.0)), + Transform::from_xyz(ground_size, ground_size * 2.0, 0.0), Collider::cuboid(12.0, ground_size * 2.0), )); commands.spawn(( - TransformBundle::from(Transform::from_xyz(-ground_size, ground_size * 2.0, 0.0)), + Transform::from_xyz(-ground_size, ground_size * 2.0, 0.0), Collider::cuboid(12.0, ground_size * 2.0), )); @@ -83,7 +80,7 @@ pub fn setup_physics(mut commands: Commands) { let y = j as f32 * shift + centery + 2.0; let mut entity = commands.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, 0.0)), + Transform::from_xyz(x, y, 0.0), RigidBody::Dynamic, Collider::cuboid(rad, rad), )); diff --git a/bevy_rapier2d/examples/events2.rs b/bevy_rapier2d/examples/events2.rs index d772d3f8..0b49e486 100644 --- a/bevy_rapier2d/examples/events2.rs +++ b/bevy_rapier2d/examples/events2.rs @@ -19,7 +19,7 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera2dBundle::default()); + commands.spawn(Camera2d::default()); } pub fn display_events( @@ -40,18 +40,18 @@ pub fn setup_physics(mut commands: Commands) { * Ground */ commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -24.0, 0.0)), + Transform::from_xyz(0.0, -24.0, 0.0), Collider::cuboid(80.0, 20.0), )); commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 100.0, 0.0)), + Transform::from_xyz(0.0, 100.0, 0.0), Collider::cuboid(80.0, 30.0), Sensor, )); commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 260.0, 0.0)), + Transform::from_xyz(0.0, 260.0, 0.0), RigidBody::Dynamic, Collider::cuboid(10.0, 10.0), ActiveEvents::COLLISION_EVENTS, diff --git a/bevy_rapier2d/examples/joints2.rs b/bevy_rapier2d/examples/joints2.rs index e30352ca..a7c16cee 100644 --- a/bevy_rapier2d/examples/joints2.rs +++ b/bevy_rapier2d/examples/joints2.rs @@ -18,10 +18,7 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera2dBundle { - transform: Transform::from_xyz(0.0, -200.0, 0.0), - ..default() - }); + commands.spawn((Camera2d::default(), Transform::from_xyz(0.0, -200.0, 0.0))); } pub fn setup_physics(mut commands: Commands) { @@ -46,7 +43,7 @@ pub fn setup_physics(mut commands: Commands) { let child_entity = commands .spawn(( - TransformBundle::from(Transform::from_xyz(fk * shift, -fi * shift, 0.0)), + Transform::from_xyz(fk * shift, -fi * shift, 0.0), rigid_body, Collider::cuboid(rad, rad), )) diff --git a/bevy_rapier2d/examples/joints_despawn2.rs b/bevy_rapier2d/examples/joints_despawn2.rs index 736d868b..f5fa1977 100644 --- a/bevy_rapier2d/examples/joints_despawn2.rs +++ b/bevy_rapier2d/examples/joints_despawn2.rs @@ -28,10 +28,7 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera2dBundle { - transform: Transform::from_xyz(0.0, -200.0, 0.0), - ..default() - }); + commands.spawn((Camera2d::default(), Transform::from_xyz(0.0, -200.0, 0.0))); } pub fn setup_physics(mut commands: Commands, mut despawn: ResMut) { @@ -58,7 +55,7 @@ pub fn setup_physics(mut commands: Commands, mut despawn: ResMut"] description = "3-dimensional physics engine in Rust, official Bevy plugin." documentation = "http://docs.rs/bevy_rapier3d" @@ -18,7 +18,10 @@ path = "../src/lib.rs" required-features = ["dim3"] [lints] -workspace = true +rust.unexpected_cfgs = { level = "warn", check-cfg = [ + 'cfg(feature, values("dim2"))', +] } +clippy = { needless_lifetimes = "allow" } [features] default = ["dim3", "async-collider", "debug-render-3d"] @@ -47,38 +50,29 @@ wasm-bindgen = ["rapier3d/wasm-bindgen"] serde-serialize = ["rapier3d/serde-serialize", "bevy/serialize", "serde"] enhanced-determinism = ["rapier3d/enhanced-determinism"] headless = [] -async-collider = ["bevy/bevy_asset", "bevy/bevy_scene"] +async-collider = ["bevy/bevy_asset", "bevy/bevy_scene", "bevy/bevy_render"] [dependencies] -bevy = { version = "0.14", default-features = false } -nalgebra = { version = "0.33", features = ["convert-glam027"] } +bevy = { version = "0.15", default-features = false } +nalgebra = { version = "0.33", features = ["convert-glam029"] } rapier3d = "0.22" bitflags = "2.4" log = "0.4" serde = { version = "1", features = ["derive"], optional = true } [dev-dependencies] -bevy = { version = "0.14", default-features = false, features = [ +bevy = { version = "0.15", default-features = false, features = [ + "bevy_window", "x11", "tonemapping_luts", "bevy_state", "bevy_debug_stepping", ] } approx = "0.5.1" -glam = { version = "0.27", features = ["approx"] } -bevy-inspector-egui = "0.25.1" -bevy_egui = "0.28.0" -divan = "0.1" -bevy_rapier_benches3d = { version = "0.1", path = "../bevy_rapier_benches3d" } +glam = { version = "0.29", features = ["approx"] } +bevy-inspector-egui = "0.28" +bevy_egui = "0.31" [package.metadata.docs.rs] # Enable all the features when building the docs on docs.rs features = ["debug-render-3d", "serde-serialize"] - -[[bench]] -name = "cubes" -harness = false - -[[bench]] -name = "many_pyramids3" -harness = false diff --git a/bevy_rapier3d/examples/boxes3.rs b/bevy_rapier3d/examples/boxes3.rs index e1078f40..9f862212 100644 --- a/bevy_rapier3d/examples/boxes3.rs +++ b/bevy_rapier3d/examples/boxes3.rs @@ -18,11 +18,10 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-30.0, 30.0, 100.0) - .looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-30.0, 30.0, 100.0).looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), + )); } pub fn setup_physics(mut commands: Commands) { @@ -33,7 +32,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 0.1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -ground_height, 0.0)), + Transform::from_xyz(0.0, -ground_height, 0.0), Collider::cuboid(ground_size, ground_height, ground_size), )); @@ -65,12 +64,10 @@ pub fn setup_physics(mut commands: Commands) { color += 1; commands - .spawn(TransformBundle::from(Transform::from_rotation( - Quat::from_rotation_x(0.2), - ))) + .spawn(Transform::from_rotation(Quat::from_rotation_x(0.2))) .with_children(|child| { child.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, z)), + Transform::from_xyz(x, y, z), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), ColliderDebugColor(colors[color % 3]), diff --git a/bevy_rapier3d/examples/character_controller3.rs b/bevy_rapier3d/examples/character_controller3.rs index 7670da54..f99e3701 100644 --- a/bevy_rapier3d/examples/character_controller3.rs +++ b/bevy_rapier3d/examples/character_controller3.rs @@ -34,10 +34,8 @@ fn main() { pub fn setup_player(mut commands: Commands) { commands .spawn(( - SpatialBundle { - transform: Transform::from_xyz(0.0, 5.0, 0.0), - ..default() - }, + Transform::from_xyz(0.0, 5.0, 0.0), + Visibility::default(), Collider::round_cylinder(0.9, 0.3, 0.2), KinematicCharacterController { custom_mass: Some(5.0), @@ -60,10 +58,7 @@ pub fn setup_player(mut commands: Commands) { )) .with_children(|b| { // FPS Camera - b.spawn(Camera3dBundle { - transform: Transform::from_xyz(0.0, 0.2, -0.1), - ..Default::default() - }); + b.spawn((Camera3d::default(), Transform::from_xyz(0.0, 0.2, -0.1))); }); } @@ -75,7 +70,7 @@ fn setup_map(mut commands: Commands) { let ground_height = 0.1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -ground_height, 0.0)), + Transform::from_xyz(0.0, -ground_height, 0.0), Collider::cuboid(ground_size, ground_height, ground_size), )); /* @@ -87,35 +82,19 @@ fn setup_map(mut commands: Commands) { let step = i as f32; let collider = Collider::cuboid(1.0, step * stair_step, 1.0); commands.spawn(( - TransformBundle::from(Transform::from_xyz( - 40.0, - step * stair_step, - step * 2.0 - 20.0, - )), + Transform::from_xyz(40.0, step * stair_step, step * 2.0 - 20.0), collider.clone(), )); commands.spawn(( - TransformBundle::from(Transform::from_xyz( - -40.0, - step * stair_step, - step * -2.0 + 20.0, - )), + Transform::from_xyz(-40.0, step * stair_step, step * -2.0 + 20.0), collider.clone(), )); commands.spawn(( - TransformBundle::from(Transform::from_xyz( - step * 2.0 - 20.0, - step * stair_step, - 40.0, - )), + Transform::from_xyz(step * 2.0 - 20.0, step * stair_step, 40.0), collider.clone(), )); commands.spawn(( - TransformBundle::from(Transform::from_xyz( - step * -2.0 + 20.0, - step * stair_step, - -40.0, - )), + Transform::from_xyz(step * -2.0 + 20.0, step * stair_step, -40.0), collider.clone(), )); } @@ -176,7 +155,7 @@ fn player_movement( let Ok((transform, mut controller, output)) = player.get_single_mut() else { return; }; - let delta_time = time.delta_seconds(); + let delta_time = time.delta_secs(); // Retrieve input let mut movement = Vec3::new(input.x, 0.0, input.z) * MOVEMENT_SPEED; let jump_speed = input.y * JUMP_SPEED; diff --git a/bevy_rapier3d/examples/contact_filter3.rs b/bevy_rapier3d/examples/contact_filter3.rs index de9f0b9d..7aca1316 100644 --- a/bevy_rapier3d/examples/contact_filter3.rs +++ b/bevy_rapier3d/examples/contact_filter3.rs @@ -45,11 +45,10 @@ fn main() { } fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-30.0, 30.0, 100.0) - .looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-30.0, 30.0, 100.0).looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), + )); } pub fn setup_physics(mut commands: Commands) { @@ -59,13 +58,13 @@ pub fn setup_physics(mut commands: Commands) { let ground_size = 10.0; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -10.0, 0.0)), + Transform::from_xyz(0.0, -10.0, 0.0), Collider::cuboid(ground_size, 1.2, ground_size), CustomFilterTag::GroupA, )); commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 0.0, 0.0)), + Transform::from_xyz(0.0, 0.0, 0.0), Collider::cuboid(ground_size, 1.2, ground_size), CustomFilterTag::GroupB, )); @@ -90,7 +89,7 @@ pub fn setup_physics(mut commands: Commands) { group_id += 1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, 0.0)), + Transform::from_xyz(x, y, 0.0), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), ActiveHooks::FILTER_CONTACT_PAIRS, diff --git a/bevy_rapier3d/examples/custom_system_setup3.rs b/bevy_rapier3d/examples/custom_system_setup3.rs index 77b14b45..cfb88bae 100644 --- a/bevy_rapier3d/examples/custom_system_setup3.rs +++ b/bevy_rapier3d/examples/custom_system_setup3.rs @@ -61,11 +61,10 @@ fn despawn_one_box( } fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-30.0, 30.0, 100.0) - .looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-30.0, 30.0, 100.0).looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), + )); } pub fn setup_physics(mut commands: Commands) { @@ -76,7 +75,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 0.1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -ground_height, 0.0)), + Transform::from_xyz(0.0, -ground_height, 0.0), Collider::cuboid(ground_size, ground_height, ground_size), )); @@ -108,7 +107,7 @@ pub fn setup_physics(mut commands: Commands) { color += 1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, z)), + Transform::from_xyz(x, y, z), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), ColliderDebugColor(colors[color % 3]), diff --git a/bevy_rapier3d/examples/debug_toggle3.rs b/bevy_rapier3d/examples/debug_toggle3.rs index cf1a240a..78468750 100644 --- a/bevy_rapier3d/examples/debug_toggle3.rs +++ b/bevy_rapier3d/examples/debug_toggle3.rs @@ -31,11 +31,10 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-30.0, 30.0, 100.0) - .looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-30.0, 30.0, 100.0).looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), + )); } #[derive(Component)] @@ -49,7 +48,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 0.1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -ground_height, 0.0)), + Transform::from_xyz(0.0, -ground_height, 0.0), Collider::cuboid(ground_size, ground_height, ground_size), )); @@ -81,12 +80,10 @@ pub fn setup_physics(mut commands: Commands) { color += 1; commands - .spawn(TransformBundle::from(Transform::from_rotation( - Quat::from_rotation_x(0.2), - ))) + .spawn(Transform::from_rotation(Quat::from_rotation_x(0.2))) .with_children(|child| { child.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, z)), + Transform::from_xyz(x, y, z), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), ColliderDebugColor(colors[color % 3]), diff --git a/bevy_rapier3d/examples/despawn3.rs b/bevy_rapier3d/examples/despawn3.rs index cf747c95..e6eb717e 100644 --- a/bevy_rapier3d/examples/despawn3.rs +++ b/bevy_rapier3d/examples/despawn3.rs @@ -30,11 +30,10 @@ fn main() { pub fn setup_graphics(mut commands: Commands, mut res: ResMut) { res.timer = Timer::from_seconds(5.0, TimerMode::Once); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-30.0, 30.0, 100.0) - .looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-30.0, 30.0, 100.0).looking_at(Vec3::new(0.0, 10.0, 0.0), Vec3::Y), + )); } pub fn setup_physics(mut commands: Commands) { @@ -45,7 +44,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 0.1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -ground_height, 0.0)), + Transform::from_xyz(0.0, -ground_height, 0.0), Collider::cuboid(ground_size, ground_height, ground_size), Despawn, )); @@ -78,7 +77,7 @@ pub fn setup_physics(mut commands: Commands) { color += 1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(x, y, z)), + Transform::from_xyz(x, y, z), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), ColliderDebugColor(colors[color % 3]), diff --git a/bevy_rapier3d/examples/events3.rs b/bevy_rapier3d/examples/events3.rs index 3f8791d7..9f1a23e8 100644 --- a/bevy_rapier3d/examples/events3.rs +++ b/bevy_rapier3d/examples/events3.rs @@ -19,10 +19,10 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(0.0, 0.0, 25.0).looking_at(Vec3::ZERO, Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(0.0, 0.0, 25.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } pub fn display_events( @@ -43,18 +43,18 @@ pub fn setup_physics(mut commands: Commands) { * Ground */ commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -1.2, 0.0)), + Transform::from_xyz(0.0, -1.2, 0.0), Collider::cuboid(4.0, 1.0, 1.0), )); commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 5.0, 0.0)), + Transform::from_xyz(0.0, 5.0, 0.0), Collider::cuboid(4.0, 1.5, 1.0), Sensor, )); commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 13.0, 0.0)), + Transform::from_xyz(0.0, 13.0, 0.0), RigidBody::Dynamic, Collider::cuboid(0.5, 0.5, 0.5), ActiveEvents::COLLISION_EVENTS, diff --git a/bevy_rapier3d/examples/joints3.rs b/bevy_rapier3d/examples/joints3.rs index 4a229177..3ded4ade 100644 --- a/bevy_rapier3d/examples/joints3.rs +++ b/bevy_rapier3d/examples/joints3.rs @@ -25,11 +25,10 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(15.0, 5.0, 42.0) - .looking_at(Vec3::new(13.0, 1.0, 1.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(15.0, 5.0, 42.0).looking_at(Vec3::new(13.0, 1.0, 1.0), Vec3::Y), + )); } fn create_prismatic_joints(commands: &mut Commands, origin: Vect, num: usize) { @@ -38,7 +37,7 @@ fn create_prismatic_joints(commands: &mut Commands, origin: Vect, num: usize) { let mut curr_parent = commands .spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, origin.z)), + Transform::from_xyz(origin.x, origin.y, origin.z), RigidBody::Fixed, Collider::cuboid(rad, rad, rad), )) @@ -60,7 +59,7 @@ fn create_prismatic_joints(commands: &mut Commands, origin: Vect, num: usize) { curr_parent = commands .spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, origin.z + dz)), + Transform::from_xyz(origin.x, origin.y, origin.z + dz), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), joint, @@ -75,7 +74,7 @@ fn create_rope_joints(commands: &mut Commands, origin: Vect, num: usize) { let mut curr_parent = commands .spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, origin.z)), + Transform::from_xyz(origin.x, origin.y, origin.z), RigidBody::Fixed, Collider::cuboid(rad, rad, rad), )) @@ -89,7 +88,7 @@ fn create_rope_joints(commands: &mut Commands, origin: Vect, num: usize) { curr_parent = commands .spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, origin.z + dz)), + Transform::from_xyz(origin.x, origin.y, origin.z + dz), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), joint, @@ -104,7 +103,7 @@ fn create_revolute_joints(commands: &mut Commands, origin: Vec3, num: usize) { let mut curr_parent = commands .spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, 0.0)), + Transform::from_xyz(origin.x, origin.y, 0.0), RigidBody::Fixed, Collider::cuboid(rad, rad, rad), )) @@ -124,7 +123,7 @@ fn create_revolute_joints(commands: &mut Commands, origin: Vec3, num: usize) { for k in 0..4 { handles[k] = commands .spawn(( - TransformBundle::from(Transform::from_translation(positions[k])), + Transform::from_translation(positions[k]), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), )) @@ -180,11 +179,7 @@ fn create_fixed_joints(commands: &mut Commands, origin: Vec3, num: usize) { let child_entity = commands .spawn(( - TransformBundle::from(Transform::from_xyz( - origin.x + fk * shift, - origin.y, - origin.z + fi * shift, - )), + Transform::from_xyz(origin.x + fk * shift, origin.y, origin.z + fi * shift), rigid_body, Collider::ball(rad), )) @@ -239,7 +234,7 @@ fn create_ball_joints(commands: &mut Commands, num: usize) { let child_entity = commands .spawn(( - TransformBundle::from(Transform::from_xyz(fk * shift, 0.0, fi * shift)), + Transform::from_xyz(fk * shift, 0.0, fi * shift), rigid_body, Collider::ball(rad), )) diff --git a/bevy_rapier3d/examples/joints_despawn3.rs b/bevy_rapier3d/examples/joints_despawn3.rs index 17d1608f..fe1795c7 100644 --- a/bevy_rapier3d/examples/joints_despawn3.rs +++ b/bevy_rapier3d/examples/joints_despawn3.rs @@ -30,11 +30,10 @@ fn main() { pub fn setup_graphics(mut commands: Commands, mut res: ResMut) { res.timer = Timer::from_seconds(5.0, TimerMode::Once); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(15.0, 5.0, 42.0) - .looking_at(Vec3::new(13.0, 1.0, 1.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(15.0, 5.0, 42.0).looking_at(Vec3::new(13.0, 1.0, 1.0), Vec3::Y), + )); } fn create_prismatic_joints(commands: &mut Commands, origin: Vect, num: usize) { @@ -43,7 +42,7 @@ fn create_prismatic_joints(commands: &mut Commands, origin: Vect, num: usize) { let mut curr_parent = commands .spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, origin.z)), + Transform::from_xyz(origin.x, origin.y, origin.z), RigidBody::Fixed, Collider::cuboid(rad, rad, rad), )) @@ -64,7 +63,7 @@ fn create_prismatic_joints(commands: &mut Commands, origin: Vect, num: usize) { let joint = ImpulseJoint::new(curr_parent, prism); let mut entity = commands.spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, origin.z + dz)), + Transform::from_xyz(origin.x, origin.y, origin.z + dz), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), joint, @@ -84,7 +83,7 @@ fn create_revolute_joints(commands: &mut Commands, origin: Vec3, num: usize) { let mut curr_parent = commands .spawn(( - TransformBundle::from(Transform::from_xyz(origin.x, origin.y, 0.0)), + Transform::from_xyz(origin.x, origin.y, 0.0), RigidBody::Fixed, Collider::cuboid(rad, rad, rad), )) @@ -104,7 +103,7 @@ fn create_revolute_joints(commands: &mut Commands, origin: Vec3, num: usize) { for k in 0..4 { handles[k] = commands .spawn(( - TransformBundle::from(Transform::from_translation(positions[k])), + Transform::from_translation(positions[k]), RigidBody::Dynamic, Collider::cuboid(rad, rad, rad), )) @@ -167,11 +166,7 @@ fn create_fixed_joints(commands: &mut Commands, origin: Vec3, num: usize) { let child_entity = commands .spawn(( - TransformBundle::from(Transform::from_xyz( - origin.x + fk * shift, - origin.y, - origin.z + fi * shift, - )), + Transform::from_xyz(origin.x + fk * shift, origin.y, origin.z + fi * shift), rigid_body, Collider::ball(rad), )) @@ -226,7 +221,7 @@ fn create_ball_joints(commands: &mut Commands, num: usize) { let child_entity = commands .spawn(( - TransformBundle::from(Transform::from_xyz(fk * shift, 0.0, fi * shift)), + Transform::from_xyz(fk * shift, 0.0, fi * shift), rigid_body, Collider::ball(rad), )) diff --git a/bevy_rapier3d/examples/locked_rotations3.rs b/bevy_rapier3d/examples/locked_rotations3.rs index 0288db5f..a4feab94 100644 --- a/bevy_rapier3d/examples/locked_rotations3.rs +++ b/bevy_rapier3d/examples/locked_rotations3.rs @@ -18,11 +18,10 @@ fn main() { } pub fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(10.0, 3.0, 0.0) - .looking_at(Vec3::new(0.0, 3.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(10.0, 3.0, 0.0).looking_at(Vec3::new(0.0, 3.0, 0.0), Vec3::Y), + )); } pub fn setup_physics(mut commands: Commands) { @@ -33,7 +32,7 @@ pub fn setup_physics(mut commands: Commands) { let ground_height = 0.1; commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, -ground_height, 0.0)), + Transform::from_xyz(0.0, -ground_height, 0.0), Collider::cuboid(ground_size, ground_height, ground_size), )); @@ -41,7 +40,7 @@ pub fn setup_physics(mut commands: Commands) { * A rectangle that only rotates along the `x` axis. */ commands.spawn(( - TransformBundle::from(Transform::from_xyz(0.0, 3.0, 0.0)), + Transform::from_xyz(0.0, 3.0, 0.0), RigidBody::Dynamic, LockedAxes::TRANSLATION_LOCKED | LockedAxes::ROTATION_LOCKED_Y @@ -53,9 +52,7 @@ pub fn setup_physics(mut commands: Commands) { * A tilted cuboid that cannot rotate. */ commands.spawn(( - TransformBundle::from( - Transform::from_xyz(0.0, 5.0, 0.0).with_rotation(Quat::from_rotation_x(1.0)), - ), + Transform::from_xyz(0.0, 5.0, 0.0).with_rotation(Quat::from_rotation_x(1.0)), RigidBody::Dynamic, LockedAxes::ROTATION_LOCKED, Collider::cuboid(0.6, 0.4, 0.4), diff --git a/bevy_rapier3d/examples/multi_contexts3.rs b/bevy_rapier3d/examples/multi_contexts3.rs index 33baaf39..8a378020 100644 --- a/bevy_rapier3d/examples/multi_contexts3.rs +++ b/bevy_rapier3d/examples/multi_contexts3.rs @@ -38,11 +38,10 @@ fn create_contexts(mut commands: Commands) { } fn setup_graphics(mut commands: Commands) { - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(0.0, 3.0, -10.0) - .looking_at(Vec3::new(0.0, 0.0, 0.0), Vec3::Y), - ..Default::default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(0.0, 3.0, -10.0).looking_at(Vec3::new(0.0, 0.0, 0.0), Vec3::Y), + )); } #[derive(Component)] @@ -55,7 +54,7 @@ struct Platform { fn move_platforms(time: Res