From 3109618bb7d82c1badc578d738e9b409fa4c2ebc Mon Sep 17 00:00:00 2001 From: Schmarni Date: Mon, 10 Jun 2024 11:55:10 +0200 Subject: [PATCH 1/3] Readd action set sync SystemSet Signed-off-by: Schmarni --- crates/bevy_openxr/src/openxr/action_set_syncing.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/bevy_openxr/src/openxr/action_set_syncing.rs b/crates/bevy_openxr/src/openxr/action_set_syncing.rs index ff57380..b69a866 100644 --- a/crates/bevy_openxr/src/openxr/action_set_syncing.rs +++ b/crates/bevy_openxr/src/openxr/action_set_syncing.rs @@ -2,12 +2,15 @@ use crate::session::OxrSession; use bevy::prelude::*; use bevy_xr::session::session_running; +#[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone, Copy)] +pub struct ActionSetSyncSet; + impl Plugin for OxrActionSyncingPlugin { fn build(&self, app: &mut App) { app.add_event::(); app.add_systems( PreUpdate, - sync_sets.run_if(session_running), // .in_set(OxrPreUpdateSet::SyncActions), + sync_sets.in_set(ActionSetSyncSet).run_if(session_running), // .in_set(OxrPreUpdateSet::SyncActions), ); } } From 6ebcd7df998c1865b94a880a68f1ecd399baa6dc Mon Sep 17 00:00:00 2001 From: Schmarni Date: Mon, 10 Jun 2024 12:01:48 +0200 Subject: [PATCH 2/3] change set name to begin with Oxr Signed-off-by: Schmarni --- crates/bevy_openxr/src/openxr/action_set_syncing.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/bevy_openxr/src/openxr/action_set_syncing.rs b/crates/bevy_openxr/src/openxr/action_set_syncing.rs index b69a866..77d9b60 100644 --- a/crates/bevy_openxr/src/openxr/action_set_syncing.rs +++ b/crates/bevy_openxr/src/openxr/action_set_syncing.rs @@ -3,14 +3,14 @@ use bevy::prelude::*; use bevy_xr::session::session_running; #[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone, Copy)] -pub struct ActionSetSyncSet; +pub struct OxrActionSetSyncSet; impl Plugin for OxrActionSyncingPlugin { fn build(&self, app: &mut App) { app.add_event::(); app.add_systems( PreUpdate, - sync_sets.in_set(ActionSetSyncSet).run_if(session_running), // .in_set(OxrPreUpdateSet::SyncActions), + sync_sets.in_set(OxrActionSetSyncSet).run_if(session_running), // .in_set(OxrPreUpdateSet::SyncActions), ); } } From 34d44349b817a781b78609e21864f0b3a7ad9f4c Mon Sep 17 00:00:00 2001 From: Schmarni Date: Mon, 10 Jun 2024 12:41:37 +0200 Subject: [PATCH 3/3] fix system ordering Signed-off-by: Schmarni --- crates/bevy_openxr/src/openxr/action_binding.rs | 2 +- .../src/openxr/action_set_attaching.rs | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/crates/bevy_openxr/src/openxr/action_binding.rs b/crates/bevy_openxr/src/openxr/action_binding.rs index 2d5af6d..d01ad33 100644 --- a/crates/bevy_openxr/src/openxr/action_binding.rs +++ b/crates/bevy_openxr/src/openxr/action_binding.rs @@ -28,7 +28,7 @@ impl Plugin for OxrActionBindingPlugin { // This could for now be handled better with a SystemSet, but in the future we might want to add an // Event to allow requesting binding suggestion for new actions -fn run_action_binding_sugestion(world: &mut World) { +pub(crate) fn run_action_binding_sugestion(world: &mut World) { world.run_schedule(OxrSendActionBindings); world.run_system_once(bind_actions); } diff --git a/crates/bevy_openxr/src/openxr/action_set_attaching.rs b/crates/bevy_openxr/src/openxr/action_set_attaching.rs index 9eeedc8..272e8b0 100644 --- a/crates/bevy_openxr/src/openxr/action_set_attaching.rs +++ b/crates/bevy_openxr/src/openxr/action_set_attaching.rs @@ -1,17 +1,20 @@ -use crate::session::{OxrSession, OxrSessionStatusEvent}; +use crate::{action_binding::run_action_binding_sugestion, session::{OxrSession, OxrSessionStatusEvent}}; use bevy::prelude::*; -use bevy_xr::session::status_changed_to; impl Plugin for OxrActionAttachingPlugin { fn build(&self, app: &mut App) { app.add_event::(); app.add_systems( PostUpdate, - attach_sets.run_if(|mut session_status_event: EventReader| { - session_status_event - .read() - .any(|s| *s == OxrSessionStatusEvent::Created) - }), + attach_sets + .run_if( + |mut session_status_event: EventReader| { + session_status_event + .read() + .any(|s| *s == OxrSessionStatusEvent::Created) + }, + ) + .after(run_action_binding_sugestion), ); } }