better global state structure?

This commit is contained in:
iris committed 2025-12-19 21:54:48 -05:00
1 parent 30bc55c78e
commit bae17235c6
23 files changed
+335 -230

No files matched your search

+5 -5
View File
@@ -142,10 +142,10 @@ pub trait SensorUi<State> {
fn run_sensors(&mut self, cursor: &CursorState, window_size: Vec2);
}
impl<State: 'static + HasRsc> SensorUi<State> for State {
impl<State: RunEvents> SensorUi<State> for State {
fn run_sensors(&mut self, cursor: &CursorState, window_size: Vec2) {
let layers = std::mem::take(&mut self.ui().layers);
let mut active = std::mem::take(&mut self.events().get_type::<CursorSense>().active);
let layers = std::mem::take(&mut self.ui_mut().layers);
let mut active = std::mem::take(&mut self.events_mut().get_type::<CursorSense>().active);
for layer in layers.indices().rev() {
let mut sensed = false;
for (id, sensor) in active.get_mut(&layer).into_iter().flatten() {
@@ -174,8 +174,8 @@ impl<State: 'static + HasRsc> SensorUi<State> for State {
break;
}
}
self.events().get_type::<CursorSense>().active = active;
self.ui().layers = layers;
self.events_mut().get_type::<CursorSense>().active = active;
self.ui_mut().layers = layers;
}
}