Skip to content

Commit

Permalink
update to Bevy 0.13
Browse files Browse the repository at this point in the history
  • Loading branch information
rlidwka committed Mar 2, 2024
1 parent dea7297 commit 503bb26
Show file tree
Hide file tree
Showing 22 changed files with 93 additions and 97 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ name = "bevy_mod_physx"
path = "src/lib.rs"

[dependencies]
bevy = "0.12.0"
bevy = "0.13.0"
derive_more = "0.99.17"
enumflags2 = "0.7.7"
physx = "0.19.0"
physx-sys = "0.11.5"
serde = { version = "1", features = ["derive"], optional = true }

[dev-dependencies]
bevy-inspector-egui = "0.21.0"
bevy-inspector-egui = "0.23.0"

[features]
serialize = ["dep:serde", "bevy/serialize"]
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,12 @@ fn setup_physics(

|[]() |[]() |[]() |[]() |
|---------------|--------------------------------------------------------------------------------------------------------|--------------|---------------|
| published | [0.4.x](https://crates.io/crates/bevy_mod_physx) | Bevy 0.12 | PhysX 5 |
| published | [0.5.x](https://crates.io/crates/bevy_mod_physx) | Bevy 0.13 | PhysX 5 |
| | [0.4.x](https://crates.io/crates/bevy_mod_physx) | Bevy 0.12 | PhysX 5 |
| | [0.2.x - 0.3.x](https://crates.io/crates/bevy_mod_physx) | Bevy 0.11 | PhysX 5 |
| | | | |
| git tags | [git:master](https://github.com/rlidwka/bevy_mod_physx) | Bevy 0.12 | PhysX 5 |
| | [git:a2741a6](https://github.com/rlidwka/bevy_mod_physx/tree/a2741a632b03e0a2c5763768a1042ca8d42774a1) | Bevy 0.11 | PhysX 5 |
| | [git:a21b570](https://github.com/rlidwka/bevy_mod_physx/tree/a21b570b20a1e7ac22b5c86c54fcc1597760f2ec) | Bevy 0.11 | PhysX 4 |
| | [git:43ae89e](https://github.com/rlidwka/bevy_mod_physx/tree/43ae89e013daf00ef841611149420fb4d04c2a4f) | Bevy 0.10 | PhysX 5 |
| git tags | [git:a21b570](https://github.com/rlidwka/bevy_mod_physx/tree/a21b570b20a1e7ac22b5c86c54fcc1597760f2ec) | Bevy 0.11 | PhysX 4 |
| (unpublished) | [git:43ae89e](https://github.com/rlidwka/bevy_mod_physx/tree/43ae89e013daf00ef841611149420fb4d04c2a4f) | Bevy 0.10 | PhysX 5 |
| | [git:8f66a99](https://github.com/rlidwka/bevy_mod_physx/tree/8f66a9965eb461794856898ca44a1faf13c295ab) | Bevy 0.10 | PhysX 4 |
| | | | |
| other crates | [bevy_mod_physx](https://github.com/MasterOfMarkets/bevy_mod_physx) v0.1.0 | Bevy 0.10 | deprecated |
Expand Down
18 changes: 8 additions & 10 deletions examples/articulation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ fn spawn_long_chain(
const OVERLAPPING_LINKS: bool = true;

let mut position = Vec3::new(0., 24., 0.);
let mesh = meshes.add(Mesh::from(shape::Capsule { radius: RADIUS, depth: HALF_HEIGHT + RADIUS * 2., ..default() }));
let material = materials.add(Color::rgb(1., 0.7, 0.).into());
let mesh = meshes.add(Capsule3d::new(RADIUS, HALF_HEIGHT + RADIUS * 2.));
let material = materials.add(Color::rgb(1., 0.7, 0.));

let px_geometry = px_geometries.add(bpx::Geometry::capsule(HALF_HEIGHT, RADIUS));
let mut parent_link = None;
Expand Down Expand Up @@ -126,8 +126,8 @@ fn spawn_long_chain(
position.x -= (RADIUS + HALF_HEIGHT) * 2.;
position.x += (RADIUS + HALF_HEIGHT) + BOX_SIZE;

let box_mesh = meshes.add(Mesh::from(shape::Cube { size: BOX_SIZE * 2. }));
let box_material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let box_mesh = meshes.add(Cuboid::from_size(Vec3::splat(BOX_SIZE * 2.)));
let box_material = materials.add(Color::rgb(0.8, 0.7, 0.6));
let box_geometry = px_geometries.add(bpx::Geometry::cuboid(BOX_SIZE, BOX_SIZE, BOX_SIZE));

commands.spawn_empty()
Expand Down Expand Up @@ -176,10 +176,8 @@ fn spawn_obstacle(
const HALF_Y: f32 = 0.1;
const HALF_Z: f32 = 2.;

let mesh = meshes.add(Mesh::from(
shape::Box { min_x: -HALF_X, max_x: HALF_X, min_y: -HALF_Y, max_y: HALF_Y, min_z: -HALF_Z, max_z: HALF_Z }
));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let mesh = meshes.add(Cuboid::new(HALF_X * 2., HALF_Y * 2., HALF_Z * 2.).mesh());
let material = materials.add(Color::rgb(0.8, 0.7, 0.6));

let px_geometry = px_geometries.add(bpx::Geometry::cuboid(HALF_X, HALF_Y, HALF_Z));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));
Expand Down Expand Up @@ -209,8 +207,8 @@ fn spawn_plane(
mut px_geometries: ResMut<Assets<bpx::Geometry>>,
mut px_materials: ResMut<Assets<bpx::Material>>,
) {
let mesh = meshes.add(Mesh::from(shape::Plane { size: 500.0, subdivisions: 4 }));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3).into());
let mesh = meshes.add(Plane3d::default().mesh().size(500., 500.));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3));
let px_geometry = px_geometries.add(bpx::Geometry::halfspace(Vec3::Y));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));

Expand Down
2 changes: 1 addition & 1 deletion examples/common/debug_render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ impl Plugin for DebugRenderPlugin {
}

fn debug_render_toggle(
input: Res<Input<KeyCode>>,
input: Res<ButtonInput<KeyCode>>,
mut settings: ResMut<DebugRenderSettings>,
) {
if input.just_pressed(KeyCode::F11) {
Expand Down
4 changes: 2 additions & 2 deletions examples/common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ fn adjust_light_settings(
// but we still want examples to be functional by default without this plugin.
// So a good solution is to get existing light and adjust it to look nicer.
for (entity, mut light) in query.iter_mut() {
light.illuminance = 15000.;
light.illuminance = 6500.;
light.shadows_enabled = true;
commands.entity(entity).insert(DemoUtilsLightFixed);
}
Expand All @@ -116,7 +116,7 @@ fn adjust_camera_settings(
}

fn spacebar_pauses_simulation(
keys: Res<Input<KeyCode>>,
keys: Res<ButtonInput<KeyCode>>,
mut time: ResMut<Time<Virtual>>,
) {
if keys.just_pressed(KeyCode::Space) {
Expand Down
2 changes: 1 addition & 1 deletion examples/common/orbit_camera.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ fn apply_camera_controls(
mut gamepad_events: EventReader<GamepadEvent>,
mut gamepad_state: Local<GamepadState>,
time: Res<Time>,
buttons: Res<Input<MouseButton>>,
buttons: Res<ButtonInput<MouseButton>>,
mut egui_contexts: EguiContexts,
mut camera_query: Query<&mut OrbitCamera>,
) {
Expand Down
12 changes: 6 additions & 6 deletions examples/cube_stacks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ fn spawn_plane(
mut px_geometries: ResMut<Assets<bpx::Geometry>>,
mut px_materials: ResMut<Assets<bpx::Material>>,
) {
let mesh = meshes.add(Mesh::from(shape::Plane { size: 500.0, subdivisions: 4 }));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3).into());
let mesh = meshes.add(Plane3d::default().mesh().size(500., 500.));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3));
let px_geometry = px_geometries.add(bpx::Geometry::halfspace(Vec3::Y));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));

Expand Down Expand Up @@ -56,8 +56,8 @@ fn spawn_stacks(
const WIDTH: f32 = 0.5;
const SIZE: usize = 10;

let mesh = meshes.add(Mesh::from(shape::Cube { size: WIDTH }));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let mesh = meshes.add(Cuboid::from_size(Vec3::splat(WIDTH)));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6));

let px_geometry = px_geometries.add(bpx::Geometry::cuboid(WIDTH / 2., WIDTH / 2., WIDTH / 2.));

Expand Down Expand Up @@ -102,8 +102,8 @@ fn spawn_dynamic(
) {
const RADIUS: f32 = 1.25;

let mesh = meshes.add(Mesh::from(shape::UVSphere { radius: 1.25, ..default() }));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let mesh = meshes.add(Sphere::new(RADIUS).mesh());
let material = materials.add(Color::rgb(0.8, 0.7, 0.6));

let px_geometry = px_geometries.add(bpx::Geometry::ball(RADIUS));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));
Expand Down
14 changes: 7 additions & 7 deletions examples/detect_contacts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ fn init_materials(
mut materials: ResMut<Assets<StandardMaterial>>,
) {
commands.insert_resource(DemoMaterials {
normal: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
highlighted: materials.add(Color::rgb(0.3, 0.4, 0.9).into()),
normal: materials.add(Color::rgb(0.8, 0.7, 0.6)),
highlighted: materials.add(Color::rgb(0.3, 0.4, 0.9)),
});
}

Expand All @@ -149,8 +149,8 @@ fn spawn_plane(
mut px_geometries: ResMut<Assets<bpx::Geometry>>,
mut px_materials: ResMut<Assets<bpx::Material>>,
) {
let mesh = meshes.add(Mesh::from(shape::Plane { size: 500.0, subdivisions: 4 }));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3).into());
let mesh = meshes.add(Plane3d::default().mesh().size(500., 500.));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3));
let px_geometry = px_geometries.add(bpx::Geometry::halfspace(Vec3::Y));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));

Expand Down Expand Up @@ -179,7 +179,7 @@ fn spawn_tiles(
let rad = 1.0;
let height = 0.1;
let px_geometry = px_geometries.add(bpx::Geometry::cuboid(rad, height, rad));
let mesh = meshes.add(Mesh::from(shape::Box { min_x: -rad, min_y: -height, min_z: -rad, max_x: rad, max_y: height, max_z: rad }));
let mesh = meshes.add(Cuboid::new(rad * 2., height * 2., rad * 2.).mesh());
let material = materials.normal.clone();

let shift = rad * 2.5;
Expand Down Expand Up @@ -220,8 +220,8 @@ fn spawn_dynamic(
) {
const RADIUS: f32 = 1.25;

let mesh = meshes.add(Mesh::from(shape::UVSphere { radius: 1.25, ..default() }));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let mesh = meshes.add(Sphere::new(RADIUS).mesh());
let material = materials.add(Color::rgb(0.8, 0.7, 0.6));

let px_geometry = px_geometries.add(bpx::Geometry::ball(RADIUS));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0., 0., 1.));
Expand Down
18 changes: 9 additions & 9 deletions examples/kinematic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ fn spawn_table(
const THICKNESS: f32 = 0.5;
const SIDE_HEIGHT: f32 = 1.;

let mesh = meshes.add(Mesh::from(shape::Box::new(SIZE, THICKNESS, SIZE)));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3).into());
let mesh = meshes.add(Cuboid::new(SIZE, THICKNESS, SIZE));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3));
let px_geometry = px_geometries.add(bpx::Geometry::cuboid(SIZE / 2., THICKNESS / 2., SIZE / 2.));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));

Expand All @@ -69,8 +69,8 @@ fn spawn_table(
.insert(Surface)
.insert(Name::new("TableSurface"));

let mesh = meshes.add(Mesh::from(shape::Box::new(SIZE + THICKNESS, SIDE_HEIGHT, THICKNESS)));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3).into());
let mesh = meshes.add(Cuboid::new(SIZE + THICKNESS, SIDE_HEIGHT, THICKNESS));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3));
let px_geometry = px_geometries.add(bpx::Geometry::cuboid(SIZE / 2. + THICKNESS / 2., SIDE_HEIGHT / 2., THICKNESS / 2.));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));

Expand Down Expand Up @@ -104,8 +104,8 @@ fn spawn_pyramid(
mut px_geometries: ResMut<Assets<bpx::Geometry>>,
mut px_materials: ResMut<Assets<bpx::Material>>,
) {
let mesh = meshes.add(Mesh::from(shape::UVSphere { radius: BALL_SIZE, ..default() }));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let mesh = meshes.add(Sphere::new(BALL_SIZE).mesh());
let material = materials.add(Color::rgb(0.8, 0.7, 0.6));

let px_geometry = px_geometries.add(bpx::Geometry::ball(BALL_SIZE));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0., 0., 1.));
Expand Down Expand Up @@ -144,8 +144,8 @@ fn spawn_kinematic(
mut px_geometries: ResMut<Assets<bpx::Geometry>>,
mut px_materials: ResMut<Assets<bpx::Material>>,
) {
let mesh = meshes.add(Mesh::from(shape::Box::new(CUE_SIZE, CUE_SIZE, CUE_SIZE)));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let mesh = meshes.add(Cuboid::new(CUE_SIZE, CUE_SIZE, CUE_SIZE));
let material = materials.add(Color::rgb(0.8, 0.7, 0.6));

let px_geometry = px_geometries.add(bpx::Geometry::cuboid(CUE_SIZE / 2., CUE_SIZE / 2., CUE_SIZE / 2.));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0., 0., 1.));
Expand Down Expand Up @@ -200,7 +200,7 @@ fn move_kinematic(

let filter = SceneQueryFilter::callback(raycast_filter, &surface_entity as *const Entity as *mut c_void);

if let Some(hit) = scene.raycast(ray.origin, ray.direction, f32::MAX, &filter) {
if let Some(hit) = scene.raycast(ray, f32::MAX, &filter) {
kinematic.target.translation.x = hit.position.x;
kinematic.target.translation.z = hit.position.z;
kinematic.target.translation.y = BALL_SIZE;
Expand Down
12 changes: 6 additions & 6 deletions examples/raycast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ fn init_materials(
mut materials: ResMut<Assets<StandardMaterial>>,
) {
commands.insert_resource(DemoMaterials {
normal: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
highlighted: materials.add(Color::rgb(0.3, 0.4, 0.9).into()),
normal: materials.add(Color::rgb(0.8, 0.7, 0.6)),
highlighted: materials.add(Color::rgb(0.3, 0.4, 0.9)),
});
}

Expand All @@ -59,8 +59,8 @@ fn spawn_plane(
mut px_geometries: ResMut<Assets<bpx::Geometry>>,
mut px_materials: ResMut<Assets<bpx::Material>>,
) {
let mesh = meshes.add(Mesh::from(shape::Plane { size: 500.0, subdivisions: 4 }));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3).into());
let mesh = meshes.add(Plane3d::default().mesh().size(500., 500.));
let material = materials.add(Color::rgb(0.3, 0.5, 0.3));
let px_geometry = px_geometries.add(bpx::Geometry::halfspace(Vec3::Y));
let px_material = px_materials.add(bpx::Material::new(&mut physics, 0.5, 0.5, 0.6));

Expand Down Expand Up @@ -88,7 +88,7 @@ fn spawn_cubes(
let num = 8;
let rad = 1.0;
let px_geometry = px_geometries.add(bpx::Geometry::cuboid(rad, rad, rad));
let mesh = meshes.add(Mesh::from(shape::Cube { size: rad * 2. }));
let mesh = meshes.add(Cuboid::from_size(Vec3::splat(rad * 2.)));
let material = materials.normal.clone();

let shift = rad * 2.0 + rad;
Expand Down Expand Up @@ -152,7 +152,7 @@ fn hover_highlight(
for (camera, camera_transform) in &cameras {
let Some(ray) = camera.viewport_to_world(camera_transform, cursor_position) else { continue; };

if let Some(hit) = scene.raycast(ray.origin, ray.direction, f32::MAX, &default()) {
if let Some(hit) = scene.raycast(ray, f32::MAX, &default()) {
if highlighable.get(hit.actor).is_ok() {
commands.entity(hit.actor)
.insert(materials.highlighted.clone())
Expand Down
10 changes: 5 additions & 5 deletions examples/test_articulation_drives.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,16 @@ pub fn spawn_scene(
..default()
},
PbrBundle {
mesh: meshes.add(shape::Plane::from_size(1000.0).into()),
material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
mesh: meshes.add(Plane3d::default().mesh().size(1000., 1000.)),
material: materials.add(Color::rgb(0.3, 0.5, 0.3)),
..default()
}
));

let bevy_material = materials.add(Color::rgb(0.8, 0.7, 0.6).into());
let root_mesh = meshes.add(Mesh::from(shape::Box::new(0.5, 0.5, 0.5)));
let bevy_material = materials.add(Color::rgb(0.8, 0.7, 0.6));
let root_mesh = meshes.add(Cuboid::new(0.5, 0.5, 0.5));
let root_geometry = px_geometries.add(bpx::Geometry::cuboid(0.25, 0.25, 0.25));
let part_mesh = meshes.add(Mesh::from(shape::UVSphere { radius: 0.2, ..default() }));
let part_mesh = meshes.add(Sphere::new(0.2).mesh());
let part_geometry = px_geometries.add(bpx::Geometry::ball(0.2));
let limited_joint = ArticulationJointMotion::Limited { min: -std::f32::consts::FRAC_PI_4, max: std::f32::consts::FRAC_PI_4 };

Expand Down
13 changes: 7 additions & 6 deletions examples/test_convex_shapes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ mod common;

use bevy::prelude::*;
use bevy::render::mesh::Indices;
use bevy::render::render_asset::RenderAssetUsages;
use bevy::render::render_resource::PrimitiveTopology;
use bevy_mod_physx::core::geometry::GeometryInner;
use bevy_mod_physx::prelude::{self as bpx, *};
Expand Down Expand Up @@ -66,10 +67,10 @@ fn create_bevy_mesh_from_geometry(geometry: &Geometry) -> Mesh {
_ => unimplemented!()
}

let mut mesh = Mesh::new(PrimitiveTopology::TriangleList);
let mut mesh = Mesh::new(PrimitiveTopology::TriangleList, RenderAssetUsages::RENDER_WORLD);
mesh.insert_attribute(Mesh::ATTRIBUTE_POSITION, positions);
mesh.insert_attribute(Mesh::ATTRIBUTE_NORMAL, normals);
mesh.set_indices(Some(Indices::U32(indices)));
mesh.insert_indices(Indices::U32(indices));
mesh
}

Expand All @@ -88,8 +89,8 @@ pub fn spawn_scene(
..default()
},
PbrBundle {
mesh: meshes.add(shape::Plane::from_size(1000.0).into()),
material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
mesh: meshes.add(Plane3d::default().mesh().size(1000., 1000.)),
material: materials.add(Color::rgb(0.3, 0.5, 0.3)),
..default()
}
));
Expand All @@ -100,7 +101,7 @@ pub fn spawn_scene(
commands.spawn((
PbrBundle {
mesh: meshes.add(mesh),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
material: materials.add(Color::rgb(0.8, 0.7, 0.6)),
transform: Transform::from_xyz(-2.0, 7.0, 0.0).with_rotation(Quat::from_rotation_z(-1.)),
..default()
},
Expand All @@ -127,7 +128,7 @@ pub fn spawn_scene(
commands.spawn((
PbrBundle {
mesh: meshes.add(mesh),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
material: materials.add(Color::rgb(0.8, 0.7, 0.6)),
transform: Transform::from_xyz(2.0, 7.0, 0.0).with_rotation(Quat::from_rotation_z(-1.)),
..default()
},
Expand Down
12 changes: 6 additions & 6 deletions examples/test_damping.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,17 @@ pub fn spawn_scene(
..default()
},
PbrBundle {
mesh: meshes.add(shape::Plane::from_size(1000.0).into()),
material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
mesh: meshes.add(Plane3d::default().mesh().size(1000., 1000.)),
material: materials.add(Color::rgb(0.3, 0.5, 0.3)),
..default()
}
));

// no damping
commands.spawn((
PbrBundle {
mesh: meshes.add(Mesh::from(shape::UVSphere { radius: 0.5, ..default() } )),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
mesh: meshes.add(Sphere::new(0.5).mesh()),
material: materials.add(Color::rgb(0.8, 0.7, 0.6)),
transform: Transform::from_xyz(-2.0, 7.0, 0.0),
..default()
},
Expand All @@ -61,8 +61,8 @@ pub fn spawn_scene(
// high damping
commands.spawn((
PbrBundle {
mesh: meshes.add(Mesh::from(shape::UVSphere { radius: 0.5, ..default() } )),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
mesh: meshes.add(Sphere::new(0.5).mesh()),
material: materials.add(Color::rgb(0.8, 0.7, 0.6)),
transform: Transform::from_xyz(2.0, 7.0, 0.0),
..default()
},
Expand Down
Loading

0 comments on commit 503bb26

Please sign in to comment.