diff options
Diffstat (limited to 'engine-ecs/src/lib.rs')
| -rw-r--r-- | engine-ecs/src/lib.rs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/engine-ecs/src/lib.rs b/engine-ecs/src/lib.rs index a60ddcd..70816b3 100644 --- a/engine-ecs/src/lib.rs +++ b/engine-ecs/src/lib.rs @@ -49,7 +49,7 @@ use crate::query::{ }; use crate::sole::{Single, Sole}; use crate::stats::Stats; -use crate::system::observer::{Observer, WrapperComponent as ObserverWrapperComponent}; +use crate::system::observer::Observer; use crate::system::{Callbacks, Metadata as SystemMetadata, System, SystemComponent}; use crate::uid::{Kind as UidKind, Uid}; @@ -163,13 +163,13 @@ impl World ) where ObserverT: Observer<'this, SystemImpl>, { - let (wrapper_comp, mut system_callbacks) = observer.finish_observer(); + let (system, mut system_callbacks) = observer.finish_observer(); let ent_id = Uid::new_unique(UidKind::Entity); self.create_ent( ent_id, - [wrapper_comp.into_parts()].into_iter().chain( + [SystemComponent { system }.into_parts()].into_iter().chain( ObserverT::observed_events() .into_iter() .map(IntoComponentParts::into_parts), @@ -386,9 +386,11 @@ impl World // SAFETY: The world lives long enough if let Err(err) = unsafe { - system - .system - .run(self, SystemMetadata { ent_id: system_entity.uid() }) + system.system.run( + self, + SystemMetadata { ent_id: system_entity.uid() }, + None, + ) } { cold_path(); @@ -585,20 +587,20 @@ impl World { assert_eq!(event_id.kind(), UidKind::Pair); - let query = Query::<(&ObserverWrapperComponent,)>::from_flexible_query( + let query = Query::<(&SystemComponent,)>::from_flexible_query( self.flexible_query( QueryTerms::<QUERY_MAX_TERM_CNT>::builder() - .with_required([ObserverWrapperComponent::id(), event_id]) + .with_required([SystemComponent::id(), event_id]) .build(), ), ); for (observer_ent_id, (observer,)) in query.iter_with_euids() { if let Err(err) = unsafe { - observer.run( + observer.system.run( self, SystemMetadata { ent_id: observer_ent_id }, - emitted_event.clone(), + Some(emitted_event.clone()), ) } { cold_path(); |
