summaryrefslogtreecommitdiff
path: root/engine-ecs/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine-ecs/src/lib.rs')
-rw-r--r--engine-ecs/src/lib.rs22
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();