Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

interactive branch bevy 0.12 #19

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 3 additions & 5 deletions Cargo.toml
Expand Up @@ -23,15 +23,15 @@ git = "https://github.com/vleue/polyanya"
branch = "radius-baking"

[dependencies.bevy]
version = "0.11"
version = "0.12"
features = ["bevy_render", "bevy_asset"]
default-features = false

[dev-dependencies]
rand = "0.8"

[dev-dependencies.bevy]
version = "0.11"
version = "0.12"
features = [
"bevy_ui",
"bevy_text",
Expand All @@ -42,10 +42,8 @@ features = [
"bevy_pbr",
"bevy_sprite",
"bevy_gizmos",
# Required for TonyMcMapface
"tonemapping_luts",
"ktx2",
"zstd",
"multi-threaded"
]
default-features = false

Expand Down
27 changes: 13 additions & 14 deletions examples/gltf.rs
Expand Up @@ -11,8 +11,8 @@ use bevy_pathmesh::{PathMesh, PathMeshPlugin};
use rand::Rng;
use std::f32::consts::FRAC_PI_2;

const HANDLE_TRIMESH_OPTIMIZED: HandleUntyped =
HandleUntyped::weak_from_u64(PathMesh::TYPE_UUID, 0);
const HANDLE_TRIMESH_OPTIMIZED: Handle<PathMesh> =
Handle::weak_from_u128(PathMesh::TYPE_UUID.as_u128());

fn main() {
App::new()
Expand Down Expand Up @@ -127,15 +127,15 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
..Default::default()
});

commands.insert_resource(CurrentMesh(HANDLE_TRIMESH_OPTIMIZED.typed()));
commands.insert_resource(CurrentMesh(HANDLE_TRIMESH_OPTIMIZED));
}

fn check_textures(
mut next_state: ResMut<NextState<AppState>>,
gltf: ResMut<GltfHandle>,
asset_server: Res<AssetServer>,
) {
if let LoadState::Loaded = asset_server.get_load_state(gltf.id()) {
if let Some(LoadState::Loaded) = asset_server.get_load_state(gltf.id()) {
next_state.set(AppState::Playing);
}
}
Expand Down Expand Up @@ -170,7 +170,7 @@ fn setup_scene(
let mut material: StandardMaterial = Color::ALICE_BLUE.into();
material.perceptual_roughness = 1.0;
let ground_material = materials.add(material);
if let Some(gltf) = gltfs.get(&gltf) {
if let Some(gltf) = gltfs.get(gltf.id()) {
let mesh = gltf_meshes.get(&gltf.named_meshes["obstacles"]).unwrap();
let mut material: StandardMaterial = Color::GRAY.into();
material.perceptual_roughness = 1.0;
Expand Down Expand Up @@ -223,7 +223,7 @@ fn setup_scene(
}
}

if let Some(gltf) = gltfs.get(&gltf) {
if let Some(gltf) = gltfs.get(gltf.id()) {
{
let navmesh = bevy_pathmesh::PathMesh::from_bevy_mesh(
meshes
Expand All @@ -248,9 +248,9 @@ fn setup_scene(
visibility: Visibility::Hidden,
..Default::default()
},
NavMeshDisp(HANDLE_TRIMESH_OPTIMIZED.typed()),
NavMeshDisp(HANDLE_TRIMESH_OPTIMIZED),
));
pathmeshes.set_untracked(HANDLE_TRIMESH_OPTIMIZED, navmesh);
pathmeshes.insert(HANDLE_TRIMESH_OPTIMIZED, navmesh);
}

commands
Expand Down Expand Up @@ -303,7 +303,7 @@ fn give_target_auto(

let Some(path) = navmesh.transformed_path(transform.translation, Vec3::new(x, 0.0, z))
else {
break
break;
};
if let Some((first, remaining)) = path.path.split_first() {
let mut remaining = remaining.to_vec();
Expand Down Expand Up @@ -363,17 +363,16 @@ fn give_target_on_click(
let (camera, transform) = camera.get_single().ok()?;
let ray = camera.viewport_to_world(transform, position)?;
let denom = Vec3::Y.dot(ray.direction);
let t = (Vec3::ZERO - ray.origin).dot(Vec3::Y) / denom;
let t = (Vec3::ZERO - ray.origin).dot(Vec3::Y) / denom;
let target = ray.origin + ray.direction * t;
navmesh.transformed_is_in_mesh(target).then_some(target)
})() else {
return
return;
};

for (entity, transform, mut object) in object_query.iter_mut() {
let Some(path) = navmesh.transformed_path(transform.translation, target)
else {
break
let Some(path) = navmesh.transformed_path(transform.translation, target) else {
break;
};
if let Some((first, remaining)) = path.path.split_first() {
let mut remaining = remaining.to_vec();
Expand Down
2 changes: 1 addition & 1 deletion examples/lines.rs
Expand Up @@ -283,7 +283,7 @@ fn compute_paths(
meshes: Res<Meshes>,
pathmeshes: Res<Assets<PathMesh>>,
) {
for ev in event_new_step_path.iter() {
for ev in event_new_step_path.read() {
if path_to_display.steps.is_empty() {
path_to_display.steps.push(ev.0);
return;
Expand Down
2 changes: 1 addition & 1 deletion examples/many.rs
Expand Up @@ -64,7 +64,7 @@ fn main() {
),
)
.add_systems(FixedUpdate, (spawn, update_ui))
.insert_resource(FixedTime::new_from_secs(0.1))
.insert_resource(Time::<Fixed>::from_seconds(0.1))
.run();
}

Expand Down
8 changes: 3 additions & 5 deletions examples/physics_xpbd/Cargo.toml
Expand Up @@ -6,7 +6,7 @@ publish = false
license = "MIT OR Apache-2.0"

[dependencies.bevy]
version = "0.11"
version = "0.12"
default-features = false
features = [
"bevy_asset",
Expand All @@ -22,12 +22,10 @@ features = [
"hdr",
"default_font",
"tonemapping_luts",
"ktx2",
"zstd",
]

[dependencies]
bevy_pathmesh = { path = "../../" }
rand = "0.8"
bevy_vector_shapes = "0.5"
bevy_xpbd_3d = "0.2"
bevy_vector_shapes = "0.6"
bevy_xpbd_3d = "0.3"
6 changes: 3 additions & 3 deletions examples/physics_xpbd/src/build_navmesh.rs
Expand Up @@ -31,7 +31,7 @@ impl ObstacleSource for MyCollider {
) -> Vec<Vec2> {
let transform = global_transform.compute_transform();
let to_vec2 = |v: Vec3| mesh_transform.transform_point(v).xy();
let intersection = match self.0.as_typed_shape() {
let intersection = match self.0.shape_scaled().as_typed_shape() {
bevy_xpbd_3d::parry::shape::TypedShape::Ball(collider) => {
let (vtx, idx) = collider.to_trimesh(10, 10);
TriMesh::new(vtx, idx).intersection_with_plane(
Expand Down Expand Up @@ -164,8 +164,8 @@ fn update(
}
}

meshes.set_untracked(HANDLE_NAVMESH_MESH, pathmesh.to_mesh());
meshes.set_untracked(HANDLE_NAVMESH_WIREFRAME, pathmesh.to_wireframe_mesh());
meshes.insert(HANDLE_NAVMESH_MESH, pathmesh.to_mesh());
meshes.insert(HANDLE_NAVMESH_WIREFRAME, pathmesh.to_wireframe_mesh());
}
match *status {
NavMeshStatus::Failed => {
Expand Down
54 changes: 25 additions & 29 deletions examples/physics_xpbd/src/main.rs
Expand Up @@ -5,7 +5,6 @@ use bevy::{
math::{vec2, vec3},
pbr::NotShadowCaster,
prelude::*,
reflect::TypeUuid,
render::view::{RenderLayers, VisibilitySystems},
};
use bevy_pathmesh::{
Expand All @@ -18,19 +17,16 @@ use rand::Rng;
mod build_navmesh;
mod ui;

const HANDLE_NAVMESH_WIREFRAME: HandleUntyped = HandleUntyped::weak_from_u64(Mesh::TYPE_UUID, 1);
const HANDLE_NAVMESH_MESH: HandleUntyped = HandleUntyped::weak_from_u64(Mesh::TYPE_UUID, 2);
const HANDLE_NAVMESH_WIREFRAME: Handle<Mesh> = Handle::weak_from_u128(952579465);
const HANDLE_NAVMESH_MESH: Handle<Mesh> = Handle::weak_from_u128(1919406390);

const HANDLE_OBSTACLE_MESH: HandleUntyped = HandleUntyped::weak_from_u64(Mesh::TYPE_UUID, 3);
const HANDLE_AGENT_MESH: HandleUntyped = HandleUntyped::weak_from_u64(Mesh::TYPE_UUID, 4);
const HANDLE_TARGET_MESH: HandleUntyped = HandleUntyped::weak_from_u64(Mesh::TYPE_UUID, 5);
const HANDLE_OBSTACLE_MESH: Handle<Mesh> = Handle::weak_from_u128(316104190);
const HANDLE_AGENT_MESH: Handle<Mesh> = Handle::weak_from_u128(1312667734);
const HANDLE_TARGET_MESH: Handle<Mesh> = Handle::weak_from_u128(1639694912);

const HANDLE_OBSTACLE_MATERIAL: HandleUntyped =
HandleUntyped::weak_from_u64(StandardMaterial::TYPE_UUID, 1);
const HANDLE_AGENT_MATERIAL: HandleUntyped =
HandleUntyped::weak_from_u64(StandardMaterial::TYPE_UUID, 2);
const HANDLE_TARGET_MATERIAL: HandleUntyped =
HandleUntyped::weak_from_u64(StandardMaterial::TYPE_UUID, 3);
const HANDLE_OBSTACLE_MATERIAL: Handle<StandardMaterial> = Handle::weak_from_u128(1666062804);
const HANDLE_AGENT_MATERIAL: Handle<StandardMaterial> = Handle::weak_from_u128(1508084406);
const HANDLE_TARGET_MATERIAL: Handle<StandardMaterial> = Handle::weak_from_u128(510973528);

const BOARD_LIMIT: f32 = 10.0;

Expand Down Expand Up @@ -74,38 +70,38 @@ fn setup(
mut materials: ResMut<Assets<StandardMaterial>>,
mut pathmeshes: ResMut<Assets<PathMesh>>,
) {
meshes.set_untracked(HANDLE_OBSTACLE_MESH, Mesh::from(shape::Cube { size: 0.4 }));
meshes.set_untracked(
meshes.insert(HANDLE_OBSTACLE_MESH, Mesh::from(shape::Cube { size: 0.4 }));
meshes.insert(
HANDLE_AGENT_MESH,
Mesh::from(shape::Capsule {
radius: 0.1,
depth: 0.2,
..default()
}),
);
meshes.set_untracked(
meshes.insert(
HANDLE_TARGET_MESH,
Mesh::from(shape::UVSphere {
radius: 0.05,
..default()
}),
);
materials.set_untracked(
materials.insert(
HANDLE_OBSTACLE_MATERIAL,
StandardMaterial {
base_color: Color::rgba(0.8, 0.7, 0.6, 0.5),
alpha_mode: AlphaMode::Blend,
..default()
},
);
materials.set_untracked(
materials.insert(
HANDLE_AGENT_MATERIAL,
StandardMaterial {
base_color: Color::GREEN,
..default()
},
);
materials.set_untracked(
materials.insert(
HANDLE_TARGET_MATERIAL,
StandardMaterial {
base_color: Color::YELLOW,
Expand All @@ -124,8 +120,8 @@ fn setup(
vec![],
);
pathmesh.set_transform(Transform::from_rotation(Quat::from_rotation_x(FRAC_PI_2)));
meshes.set_untracked(HANDLE_NAVMESH_WIREFRAME, pathmesh.to_wireframe_mesh());
meshes.set_untracked(HANDLE_NAVMESH_MESH, pathmesh.to_mesh());
meshes.insert(HANDLE_NAVMESH_WIREFRAME, pathmesh.to_wireframe_mesh());
meshes.insert(HANDLE_NAVMESH_MESH, pathmesh.to_mesh());
commands.spawn((
NavMeshBundle {
settings: NavMeshSettings {
Expand Down Expand Up @@ -177,7 +173,7 @@ fn setup(
));
commands.spawn((
PbrBundle {
mesh: HANDLE_NAVMESH_MESH.typed(),
mesh: HANDLE_NAVMESH_MESH,
material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
// material: materials.add(StandardMaterial {
// base_color: Color::MIDNIGHT_BLUE,
Expand All @@ -194,7 +190,7 @@ fn setup(

commands.spawn((
PbrBundle {
mesh: HANDLE_NAVMESH_WIREFRAME.typed(),
mesh: HANDLE_NAVMESH_WIREFRAME,
transform: Transform::from_translation(Vec3::new(0., 0.01, 0.)),
material: materials.add(StandardMaterial {
base_color: Color::RED,
Expand Down Expand Up @@ -281,8 +277,8 @@ fn give_target_auto(
let target_id = commands
.spawn((
PbrBundle {
mesh: HANDLE_TARGET_MESH.typed(),
material: HANDLE_TARGET_MATERIAL.typed(),
mesh: HANDLE_TARGET_MESH,
material: HANDLE_TARGET_MATERIAL,
transform: Transform::from_xyz(x, 0.0, z),
..Default::default()
},
Expand Down Expand Up @@ -403,8 +399,8 @@ fn spawn_cubes(
let size = rng.gen_range(0.5..1.0);
commands.spawn((
PbrBundle {
mesh: meshes.add(Mesh::from(shape::Cube { size: size })),
material: HANDLE_OBSTACLE_MATERIAL.typed(),
mesh: meshes.add(Mesh::from(shape::Cube { size })),
material: HANDLE_OBSTACLE_MATERIAL,
transform: Transform::from_translation(Vec3::new(0.0, 10.0, 0.0)),
global_transform: GlobalTransform::from_translation(Vec3::new(
0.0, 10.0, 0.0,
Expand Down Expand Up @@ -432,7 +428,7 @@ fn spawn_cubes(
radius,
..default()
})),
material: HANDLE_OBSTACLE_MATERIAL.typed(),
material: HANDLE_OBSTACLE_MATERIAL,
transform: Transform::from_translation(Vec3::new(
theta.cos() * radius_spawn,
radius,
Expand Down Expand Up @@ -470,11 +466,11 @@ fn spawn_cubes(
commands.spawn((
PbrBundle {
mesh: meshes.add(Mesh::from(shape::Capsule {
radius: radius,
radius,
depth: height,
..default()
})),
material: HANDLE_OBSTACLE_MATERIAL.typed(),
material: HANDLE_OBSTACLE_MATERIAL,
transform: Transform::from_translation(Vec3::new(0.0, 10.0, 0.0)),
global_transform: GlobalTransform::from_translation(Vec3::new(
0.0, 10.0, 0.0,
Expand Down
4 changes: 2 additions & 2 deletions examples/physics_xpbd/src/ui.rs
Expand Up @@ -478,8 +478,8 @@ fn button_system(

commands.spawn((
PbrBundle {
mesh: HANDLE_AGENT_MESH.typed(),
material: HANDLE_AGENT_MATERIAL.typed(),
mesh: HANDLE_AGENT_MESH,
material: HANDLE_AGENT_MATERIAL,
transform: Transform::from_xyz(x, 0.0, z),
..Default::default()
},
Expand Down