From c0a7d6f4dd58be40ac39961101229a9d818ee95d Mon Sep 17 00:00:00 2001 From: Devin Leamy Date: Sun, 20 Aug 2023 14:58:57 -0400 Subject: [PATCH 1/4] Add configure_schedules to Schedules --- crates/bevy_ecs/src/schedule/schedule.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/bevy_ecs/src/schedule/schedule.rs b/crates/bevy_ecs/src/schedule/schedule.rs index cb9ab0a978335..48e4ebd6694b7 100644 --- a/crates/bevy_ecs/src/schedule/schedule.rs +++ b/crates/bevy_ecs/src/schedule/schedule.rs @@ -103,6 +103,13 @@ impl Schedules { schedule.check_change_ticks(change_tick); } } + + /// Applies the provided [`ScheduleBuildSettings`] to all schedules. + pub fn configure_schedules(&mut self, schedule_build_settings: ScheduleBuildSettings) { + for (_, schedule) in self.inner.iter_mut() { + schedule.set_build_settings(schedule_build_settings.clone()); + } + } } fn make_executor(kind: ExecutorKind) -> Box { From 9d46572fa0f747b4372bd23efe1caeb4c0c13661 Mon Sep 17 00:00:00 2001 From: Devin Leamy Date: Sun, 20 Aug 2023 15:01:55 -0400 Subject: [PATCH 2/4] Add configure_schedules to App --- crates/bevy_app/src/app.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/bevy_app/src/app.rs b/crates/bevy_app/src/app.rs index 39ed373a785e2..3782441e7e38c 100644 --- a/crates/bevy_app/src/app.rs +++ b/crates/bevy_app/src/app.rs @@ -5,7 +5,7 @@ use bevy_ecs::{ schedule::{ apply_state_transition, common_conditions::run_once as run_once_condition, run_enter_schedule, BoxedScheduleLabel, IntoSystemConfigs, IntoSystemSetConfigs, - ScheduleLabel, + ScheduleBuildSettings, ScheduleLabel, }, }; use bevy_utils::{tracing::debug, HashMap, HashSet}; @@ -848,6 +848,13 @@ impl App { self } + + /// Applies the provided [`ScheduleBuildSettings`] to all schedules. + pub fn configure_schedules(&mut self, schedule_build_settings: ScheduleBuildSettings) { + self.world + .resource_mut::() + .configure_schedules(schedule_build_settings); + } } fn run_once(mut app: App) { From 59fa767e33d705c4d18dc1543664665f5104fdf7 Mon Sep 17 00:00:00 2001 From: Devin Leamy Date: Mon, 21 Aug 2023 20:32:40 -0400 Subject: [PATCH 3/4] Return &mut Self from App::configure_schedules to allow for chaining --- crates/bevy_app/src/app.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/bevy_app/src/app.rs b/crates/bevy_app/src/app.rs index 3782441e7e38c..5f78e5a754240 100644 --- a/crates/bevy_app/src/app.rs +++ b/crates/bevy_app/src/app.rs @@ -850,10 +850,14 @@ impl App { } /// Applies the provided [`ScheduleBuildSettings`] to all schedules. - pub fn configure_schedules(&mut self, schedule_build_settings: ScheduleBuildSettings) { + pub fn configure_schedules( + &mut self, + schedule_build_settings: ScheduleBuildSettings, + ) -> &mut Self { self.world .resource_mut::() .configure_schedules(schedule_build_settings); + self } } From 65241a506f217200ed109fc48e07ba727250b527 Mon Sep 17 00:00:00 2001 From: Devin Leamy Date: Mon, 21 Aug 2023 20:33:24 -0400 Subject: [PATCH 4/4] Add ScheduleBuildSettings accessor to Schedule --- crates/bevy_ecs/src/schedule/schedule.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/bevy_ecs/src/schedule/schedule.rs b/crates/bevy_ecs/src/schedule/schedule.rs index 48e4ebd6694b7..79b57e33cbb80 100644 --- a/crates/bevy_ecs/src/schedule/schedule.rs +++ b/crates/bevy_ecs/src/schedule/schedule.rs @@ -205,6 +205,11 @@ impl Schedule { self } + /// Returns the schedule's current `ScheduleBuildSettings`. + pub fn get_build_settings(&self) -> ScheduleBuildSettings { + self.graph.settings.clone() + } + /// Returns the schedule's current execution strategy. pub fn get_executor_kind(&self) -> ExecutorKind { self.executor.kind()