Merge pull request #118 from Schmarni-Dev/readd-action-sync-set

Re Add action set sync SystemSet
This commit is contained in:
Schmarni
2024-06-18 19:14:13 +02:00
committed by GitHub
3 changed files with 15 additions and 9 deletions

View File

@@ -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);
}

View File

@@ -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::<OxrAttachActionSet>();
app.add_systems(
PostUpdate,
attach_sets.run_if(|mut session_status_event: EventReader<OxrSessionStatusEvent>| {
session_status_event
.read()
.any(|s| *s == OxrSessionStatusEvent::Created)
}),
attach_sets
.run_if(
|mut session_status_event: EventReader<OxrSessionStatusEvent>| {
session_status_event
.read()
.any(|s| *s == OxrSessionStatusEvent::Created)
},
)
.after(run_action_binding_sugestion),
);
}
}

View File

@@ -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 OxrActionSetSyncSet;
impl Plugin for OxrActionSyncingPlugin {
fn build(&self, app: &mut App) {
app.add_event::<OxrSyncActionSet>();
app.add_systems(
PreUpdate,
sync_sets.run_if(session_running), // .in_set(OxrPreUpdateSet::SyncActions),
sync_sets.in_set(OxrActionSetSyncSet).run_if(session_running), // .in_set(OxrPreUpdateSet::SyncActions),
);
}
}