From fd42ca5a25f8bab3ea66252f8bc0db02604f70dd Mon Sep 17 00:00:00 2001 From: HampusM Date: Thu, 1 Aug 2024 16:11:15 +0200 Subject: feat(ecs): add relationships --- ecs/src/lib.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'ecs/src/lib.rs') diff --git a/ecs/src/lib.rs b/ecs/src/lib.rs index 741b555..b920b48 100644 --- a/ecs/src/lib.rs +++ b/ecs/src/lib.rs @@ -12,6 +12,7 @@ use std::vec::Drain; use crate::actions::Action; use crate::component::storage::Storage as ComponentStorage; use crate::component::{Component, Id as ComponentId, Sequence as ComponentSequence}; +use crate::entity::Uid as EntityUid; use crate::event::{Event, Id as EventId, Ids, Sequence as EventSequence}; use crate::extension::{Collector as ExtensionCollector, Extension}; use crate::lock::Lock; @@ -22,10 +23,12 @@ use crate::type_name::TypeName; pub mod actions; pub mod component; +pub mod entity; pub mod event; pub mod extension; pub mod lock; pub mod query; +pub mod relationship; pub mod sole; pub mod system; pub mod tuple; @@ -57,15 +60,18 @@ impl World /// /// # Panics /// Will panic if mutable internal lock cannot be acquired. - pub fn create_entity(&mut self, components: Comps) + pub fn create_entity(&mut self, components: Comps) -> EntityUid where Comps: ComponentSequence, { - self.data + let (_, entity_uid) = self + .data .component_storage .write_nonblock() .expect("Failed to acquire read-write component storage lock") .push_entity(components.into_vec()); + + entity_uid } /// Adds a globally shared singleton value. -- cgit v1.2.3-18-g5258