Skip to content

Commit c2eaadc

Browse files
committed
avoid an unneeded warning in testbed while cleaning ; add debugdump for 3d
1 parent d9c235c commit c2eaadc

File tree

4 files changed

+52
-3
lines changed

4 files changed

+52
-3
lines changed

bevy_rapier2d/examples/testbed2.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,12 @@ fn cleanup(world: &mut World) {
266266
.collect::<Vec<_>>();
267267

268268
for r in remove {
269-
world.despawn(r);
269+
match world.try_despawn(r) {
270+
Err(error @ EntityDespawnError(EntityMutableFetchError::AliasedMutability(_))) => {
271+
warn!("Cleanup error: {error:?}");
272+
}
273+
_ => {}
274+
}
270275
}
271276
}
272277

bevy_rapier3d/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,14 @@ bevy = { version = "0.16.0", default-features = false, features = [
8282
"bevy_text",
8383
"bevy_ui",
8484
"default_font",
85+
"bevy_log",
8586
] }
8687
approx = "0.5.1"
8788
glam = { version = "0.29", features = ["approx"] }
8889
bevy-inspector-egui = "0.31"
8990
bevy_egui = "0.34"
91+
# FIXME: target a proper release when support for bevy 0.16 is released.
92+
bevy_mod_debugdump = { git = "https://github.com/jakobhellermann/bevy_mod_debugdump.git", rev = "ad310179be78abb3c16c581324d7d83b26275028" }
9093

9194
[package.metadata.docs.rs]
9295
# Enable all the features when building the docs on docs.rs
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
//! Example using bevy_mod_debugdump to output a graph of systems execution order.
2+
//! run with:
3+
//! `cargo run --example debugdump3 > dump.dot && dot -Tsvg dump.dot > dump.svg`
4+
5+
use bevy::prelude::*;
6+
use bevy_mod_debugdump::{schedule_graph, schedule_graph_dot};
7+
use bevy_rapier3d::prelude::*;
8+
9+
fn main() {
10+
let mut app = App::new();
11+
app.add_plugins((
12+
DefaultPlugins,
13+
RapierPhysicsPlugin::<NoUserData>::default(),
14+
RapierDebugRenderPlugin::default(),
15+
));
16+
17+
let debugdump_settings = schedule_graph::Settings {
18+
include_system: Some(Box::new(|system| {
19+
if system.name().starts_with("bevy_pbr")
20+
|| system.name().starts_with("bevy_render")
21+
|| system.name().starts_with("bevy_gizmos")
22+
|| system.name().starts_with("bevy_winit")
23+
|| system.name().starts_with("bevy_sprite")
24+
{
25+
return false;
26+
}
27+
true
28+
})),
29+
..Default::default()
30+
};
31+
let dot = schedule_graph_dot(&mut app, PostUpdate, &debugdump_settings);
32+
println!("{dot}");
33+
}

bevy_rapier3d/examples/testbed3.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ mod ray_casting3;
1313
mod static_trimesh3;
1414
mod voxels3;
1515

16-
use bevy::prelude::*;
16+
use bevy::{
17+
ecs::world::error::{EntityDespawnError, EntityMutableFetchError},
18+
prelude::*,
19+
};
1720
use bevy_egui::{egui, EguiContexts, EguiPlugin};
1821
use bevy_inspector_egui::quick::WorldInspectorPlugin;
1922
use bevy_rapier3d::prelude::*;
@@ -258,7 +261,12 @@ fn cleanup(world: &mut World) {
258261
.collect::<Vec<_>>();
259262

260263
for r in remove {
261-
world.despawn(r);
264+
match world.try_despawn(r) {
265+
Err(error @ EntityDespawnError(EntityMutableFetchError::AliasedMutability(_))) => {
266+
warn!("Cleanup error: {error:?}");
267+
}
268+
_ => {}
269+
}
262270
}
263271
}
264272

0 commit comments

Comments
 (0)