Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,262 changes: 890 additions & 1,372 deletions Cargo.lock

Large diffs are not rendered by default.

52 changes: 26 additions & 26 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,9 @@ categories = ["game-development"]
readme = "readme.md"

[workspace.dependencies]
avian3d = { version = "0.6", default-features = false }
avian3d = { version = "0.7", default-features = false }
serde = { version = "1", default-features = false, features = ["alloc"] }
serde_json = { version = "1", default-features = false, features = [
"alloc",
] }
serde_json = { version = "1", default-features = false, features = ["alloc"] }
slotmap = { version = "1", default-features = false }
ehttp = { version = "0.5", default-features = false }
rfd = "0.15"
Expand All @@ -26,36 +24,37 @@ rfd = "0.15"
thiserror = { version = "2", default-features = false }
wgpu-types = { version = "27", default-features = false }
base64 = { version = "0.22", default-features = false, features = ["alloc"] }
glam = { version = "0.30", default-features = false }
glam = { version = "0.32", default-features = false }
libm = { version = "0.2", default-features = false }
tracing = { version = "0.1", default-features = false }
critical-section = { version = "1", default-features = false }
anyhow = { version = "1", default-features = false }

# Bevy
## Bevy itself is only used in tests and examples, so we can use the default features.
bevy = { version = "0.18", default-features = true }
bevy = { version = "0.19", default-features = true }
## Actual crate code should only depend on bevy_ crates with default features disabled.
bevy_reflect = { version = "0.18", default-features = false, features = [
bevy_reflect = { version = "0.19", default-features = false, features = [
"glam",
] }
bevy_app = { version = "0.18", default-features = false }
bevy_camera = { version = "0.18", default-features = false }
bevy_light = { version = "0.18", default-features = false }
bevy_remote = { version = "0.18", default-features = false }
bevy_mesh = { version = "0.18", default-features = false }
bevy_ecs = { version = "0.18", default-features = false }
bevy_render = { version = "0.18", default-features = false }
bevy_transform = { version = "0.18", default-features = false }
bevy_asset = { version = "0.18", default-features = false }
bevy_image = { version = "0.18", default-features = false }
bevy_pbr = { version = "0.18", default-features = false }
bevy_math = { version = "0.18", default-features = false }
bevy_color = { version = "0.18", default-features = false }
bevy_derive = { version = "0.18", default-features = false }
bevy_platform = { version = "0.18", default-features = false }
bevy_tasks = { version = "0.18", default-features = false }
bevy_gizmos = { version = "0.18", default-features = false }
bevy_app = { version = "0.19", default-features = false }
bevy_camera = { version = "0.19", default-features = false }
bevy_light = { version = "0.19", default-features = false }
bevy_remote = { version = "0.19", default-features = false }
bevy_mesh = { version = "0.19", default-features = false }
bevy_ecs = { version = "0.19", default-features = false }
bevy_render = { version = "0.19", default-features = false }
bevy_transform = { version = "0.19", default-features = false }
bevy_asset = { version = "0.19", default-features = false }
bevy_image = { version = "0.19", default-features = false }
bevy_pbr = { version = "0.19", default-features = false }
bevy_math = { version = "0.19", default-features = false }
bevy_color = { version = "0.19", default-features = false }
bevy_derive = { version = "0.19", default-features = false }
bevy_platform = { version = "0.19", default-features = false }
bevy_tasks = { version = "0.19", default-features = false }
bevy_gizmos = { version = "0.19", default-features = false }
bevy_material = { version = "0.19", default-features = false }

# Workspace crates
rerecast = { version = "0.3", path = "crates/rerecast", default-features = false }
Expand All @@ -67,12 +66,13 @@ test_utils = { version = "0.1", path = "crates/test_utils", default-features = f

# Other stuffs
bitflags = { version = "2", default-features = false }
bevy_ui_text_input = "0.7"
flate2 = { version = "1", default-features = false, features = [
"rust_backend",
] }
bincode = { version = "2", features = ["serde"], default-features = false }
bevy_trenchbroom = { version = "0.14.0-dev", git = "https://github.com/Noxmore/bevy_trenchbroom", features = ["avian_f32"] }
bevy_trenchbroom = { version = "0.14.0-dev", git = "https://github.com/Noxmore/bevy_trenchbroom", features = [
"avian_f32",
] }
approxim = "0.6"

[workspace.lints.rust]
Expand Down
8 changes: 4 additions & 4 deletions crates/bevy_rerecast/tests/regression.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use bevy::{
math::bounding::Aabb3d,
mesh::MeshPlugin,
prelude::*,
scene::{SceneInstanceReady, ScenePlugin},
world_serialization::{WorldInstanceReady, WorldSerializationPlugin},
};
use bevy_rerecast::{Mesh3dBackendPlugin, debug::NavmeshDebugPlugin, prelude::*};
use bevy_rerecast_editor_integration::NavmeshEditorIntegrationPlugin;
Expand All @@ -20,8 +20,8 @@ use bevy_rerecast_editor_integration::NavmeshEditorIntegrationPlugin;
fn gltf_generation() {
let mut app = App::new_test();
let gltf_handle = app.world().load_asset("models/dungeon.glb#Scene0");
app.world_mut().spawn(SceneRoot(gltf_handle)).observe(
|_: On<SceneInstanceReady>, mut commands: Commands| {
app.world_mut().spawn(WorldAssetRoot(gltf_handle)).observe(
|_: On<WorldInstanceReady>, mut commands: Commands| {
commands.insert_resource(GltfLoaded);
},
);
Expand Down Expand Up @@ -218,7 +218,7 @@ fn headless_plugins(app: &mut App) {
file_path: "../../assets".to_string(),
..default()
},
ScenePlugin,
WorldSerializationPlugin,
MeshPlugin,
TransformPlugin,
VisibilityPlugin,
Expand Down
4 changes: 3 additions & 1 deletion crates/bevy_rerecast_core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,10 @@ bevy_math = { workspace = true, features = ["bevy_reflect", "serialize"] }
bevy_platform = { workspace = true }

# debug-plugin
bevy_gizmos = { workspace = true, optional = true, features = ["bevy_light"] }
bevy_gizmos = { workspace = true, optional = true }
bevy_color = { workspace = true, optional = true }
bevy_pbr = { workspace = true, optional = true }
bevy_material = { workspace = true, optional = true }

# Serde is already brought in by bevy_asset, so no need to make it optional
serde = { workspace = true }
Expand Down Expand Up @@ -78,6 +79,7 @@ debug_plugin = [
"dep:bevy_render",
"dep:bevy_mesh",
"dep:bevy_pbr",
"dep:bevy_material",
]
# Note: tracing works on all no_std platforms that support atomics
tracing = ["dep:tracing"]
Expand Down
8 changes: 4 additions & 4 deletions crates/bevy_rerecast_core/src/debug.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ use bevy_color::{Alpha as _, palettes::tailwind};
use bevy_ecs::{lifecycle::HookContext, prelude::*, world::DeferredWorld};
use bevy_gizmos::prelude::*;
use bevy_light::{NotShadowCaster, NotShadowReceiver};
use bevy_material::AlphaMode;
use bevy_mesh::{Indices, Mesh, Mesh3d, PrimitiveTopology};
use bevy_pbr::prelude::*;
use bevy_pbr::{StandardMaterial, prelude::*};
use bevy_reflect::prelude::*;
use bevy_render::prelude::*;
use glam::vec3;
use rerecast::PolygonNavmesh;

Expand Down Expand Up @@ -186,7 +186,7 @@ fn update_dirty_polygon_gizmos(
) {
for (entity, mut gizmo_handle, mut layers, navmesh_handle, mut visibility) in gizmos.iter_mut()
{
let Some(gizmo) = gizmo_assets.get_mut(&gizmo_handle.handle) else {
let Some(mut gizmo) = gizmo_assets.get_mut(&gizmo_handle.handle) else {
continue;
};
let config = config.polygon_navmesh.clone();
Expand Down Expand Up @@ -288,7 +288,7 @@ fn update_dirty_detail_gizmos(
) {
for (entity, mut gizmo_handle, mut layers, navmesh_handle, mut visibility) in gizmos.iter_mut()
{
let Some(gizmo) = gizmo_assets.get_mut(&gizmo_handle.handle) else {
let Some(mut gizmo) = gizmo_assets.get_mut(&gizmo_handle.handle) else {
continue;
};

Expand Down
6 changes: 1 addition & 5 deletions crates/bevy_rerecast_editor/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,14 @@ categories = { workspace = true }
readme = { workspace = true }

[dependencies]
bevy = { workspace = true, features = [
"bevy_remote",
"experimental_bevy_feathers",
] }
bevy = { workspace = true, features = ["bevy_remote", "bevy_feathers"] }
bevy_rerecast = { workspace = true, default-features = true }
serde_json = { workspace = true }
bincode = { workspace = true }
serde = { workspace = true }
anyhow = { workspace = true }
ehttp = { workspace = true, features = ["native-async", "json"] }
thiserror = { workspace = true }
bevy_ui_text_input = { workspace = true }
rfd = { workspace = true }

[lints]
Expand Down
10 changes: 4 additions & 6 deletions crates/bevy_rerecast_editor/src/get_navmesh_input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use bevy::{
prelude::*,
remote::BrpRequest,
tasks::{AsyncComputeTaskPool, IoTaskPool, Task, futures_lite::future},
text::EditableText,
};
use bevy_rerecast::editor_integration::{
brp::{
Expand All @@ -14,7 +15,6 @@ use bevy_rerecast::editor_integration::{
},
transmission::deserialize,
};
use bevy_ui_text_input::TextInputContents;

use crate::{
backend::{GlobalNavmeshSettings, NavmeshHandle, NavmeshObstacles},
Expand Down Expand Up @@ -48,22 +48,21 @@ fn generate_navmesh_input(
_: On<GetNavmeshInput>,
mut commands: Commands,
settings: Res<GlobalNavmeshSettings>,
connection_input: Single<&TextInputContents, With<ConnectionInput>>,
connection_input: Single<&EditableText, With<ConnectionInput>>,
maybe_task: Option<Res<GetNavmeshInputRequestTask>>,
) {
if maybe_task.is_some() {
// There's already an ongoing task, so we'll wait for it to complete.
return;
}
let settings = settings.0.clone();
let url = connection_input.get().to_string();
let url = connection_input.value().to_string();
let future = async move {
let params = GenerateEditorInputParams {
backend_input: settings,
};
let json = serde_json::to_value(params)?;
let req = BrpRequest {
jsonrpc: String::from("2.0"),
method: String::from(BRP_GENERATE_EDITOR_INPUT),
id: None,
params: Some(json),
Expand Down Expand Up @@ -114,7 +113,6 @@ fn poll_remote_navmesh_input(
let params = PollEditorInputParams { id: response.id };
let json = serde_json::to_value(params)?;
let req = BrpRequest {
jsonrpc: String::from("2.0"),
method: String::from(BRP_POLL_EDITOR_INPUT),
id: None,
params: Some(json),
Expand Down Expand Up @@ -170,7 +168,7 @@ fn poll_navmesh_input(
commands.entity(entity).despawn();
}
for gizmo in gizmo_handles.iter() {
let Some(gizmo) = gizmos.get_mut(&gizmo.handle) else {
let Some(mut gizmo) = gizmos.get_mut(&gizmo.handle) else {
continue;
};
gizmo.clear();
Expand Down
11 changes: 2 additions & 9 deletions crates/bevy_rerecast_editor/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
use bevy::{
ecs::error::warn,
feathers::{FeathersPlugins, dark_theme::create_dark_theme, theme::UiTheme},
input_focus::{InputDispatchPlugin, tab_navigation::TabNavigationPlugin},
prelude::*,
};
use bevy_rerecast::prelude::*;
use bevy_ui_text_input::TextInputPlugin;

extern crate alloc;

Expand All @@ -31,15 +29,10 @@ fn main() -> AppExit {
}),
..default()
}),
FeathersPlugins
.build()
// InputDispatchPlugin is also added by TextInputPlugin
.disable::<InputDispatchPlugin>()
// Breaks input focus for some reason?
.disable::<TabNavigationPlugin>(),
FeathersPlugins,
))
.insert_resource(UiTheme(create_dark_theme()))
.add_plugins((NavmeshPlugins::default(), TextInputPlugin))
.add_plugins(NavmeshPlugins::default())
.add_plugins((
camera::plugin,
get_navmesh_input::plugin,
Expand Down
Loading
Loading