From f24f71f592b7b8d6efcbc99b4c95e7df97e4ff69 Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Mon, 24 Jan 2022 14:35:34 +0100 Subject: Testbed: add a constructor that calls a custom closure with bevy’s App MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples3d-f64/debug_serialized3.rs | 2 +- examples3d-f64/rapier.data | Bin 0 -> 2017666 bytes src_testbed/testbed.rs | 11 ++++++++--- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 examples3d-f64/rapier.data 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 Binary files /dev/null and b/examples3d-f64/rapier.data 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(); } } } -- cgit