aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-01-24 14:35:34 +0100
committerSébastien Crozet <developer@crozet.re>2022-01-24 14:35:34 +0100
commitf24f71f592b7b8d6efcbc99b4c95e7df97e4ff69 (patch)
tree16d500bb1b96567b472f00c8eea7306698364e3e
parent71bb25acf821512f5c6d5cfc4e8db5b853f4cb0b (diff)
downloadrapier-f24f71f592b7b8d6efcbc99b4c95e7df97e4ff69.tar.gz
rapier-f24f71f592b7b8d6efcbc99b4c95e7df97e4ff69.tar.bz2
rapier-f24f71f592b7b8d6efcbc99b4c95e7df97e4ff69.zip
Testbed: add a constructor that calls a custom closure with bevy’s Apptestbed-init-app
-rw-r--r--examples3d-f64/debug_serialized3.rs2
-rw-r--r--examples3d-f64/rapier.databin0 -> 2017666 bytes
-rw-r--r--src_testbed/testbed.rs11
3 files changed, 9 insertions, 4 deletions
diff --git a/examples3d-f64/debug_serialized3.rs b/examples3d-f64/debug_serialized3.rs
index e94d7ef..e2fa747 100644
--- a/examples3d-f64/debug_serialized3.rs
+++ b/examples3d-f64/debug_serialized3.rs
@@ -18,7 +18,7 @@ pub fn init_world(testbed: &mut Testbed) {
* Set up the testbed.
*/
let bytes = std::fs::read("state.bin").unwrap();
- let mut state: State = bincode::deserialize(&bytes).unwrap();
+ let state: State = bincode::deserialize(&bytes).unwrap();
testbed.set_world(
state.bodies,
diff --git a/examples3d-f64/rapier.data b/examples3d-f64/rapier.data
new file mode 100644
index 0000000..33ddaa3
--- /dev/null
+++ b/examples3d-f64/rapier.data
Binary files differ
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs
index dba40fd..1a4181b 100644
--- a/src_testbed/testbed.rs
+++ b/src_testbed/testbed.rs
@@ -227,7 +227,11 @@ impl TestbedApp {
self.builders = SceneBuilders(builders)
}
- pub fn run(mut self) {
+ pub fn run(self) {
+ self.run_with_init(|_| {})
+ }
+
+ pub fn run_with_init(mut self, mut init: impl FnMut(&mut App)) {
let mut args = env::args();
let mut benchmark_mode = false;
@@ -392,8 +396,9 @@ impl TestbedApp {
.insert_non_send_resource(self.plugins)
.add_stage_before(CoreStage::Update, "physics", SystemStage::single_threaded())
.add_system_to_stage("physics", update_testbed.system())
- .add_system(egui_focus.system())
- .run();
+ .add_system(egui_focus.system());
+ init(&mut app);
+ app.run();
}
}
}