Struct flatbox_ecs::EntityBuilderClone
source · pub struct EntityBuilderClone { /* private fields */ }
Expand description
Variant of EntityBuilder
that clones components on use
let mut world = World::new();
let mut builder = EntityBuilderClone::new();
builder.add(123).add("abc");
let bundle = builder.build();
let e = world.spawn(&bundle);
let f = world.spawn(&bundle); // `&bundle` can be used many times
assert_eq!(*world.get::<&i32>(e).unwrap(), 123);
assert_eq!(*world.get::<&&str>(e).unwrap(), "abc");
assert_eq!(*world.get::<&i32>(f).unwrap(), 123);
assert_eq!(*world.get::<&&str>(f).unwrap(), "abc");
Implementations§
source§impl EntityBuilderClone
impl EntityBuilderClone
sourcepub fn new() -> EntityBuilderClone
pub fn new() -> EntityBuilderClone
Create a builder representing an entity with no components
sourcepub fn add<T>(&mut self, component: T) -> &mut EntityBuilderClone
pub fn add<T>(&mut self, component: T) -> &mut EntityBuilderClone
Add component
to the entity.
If the bundle already contains a component of type T
, it will be dropped and replaced with
the most recently added one.
sourcepub fn add_bundle(
&mut self,
bundle: impl DynamicBundleClone
) -> &mut EntityBuilderClone
pub fn add_bundle( &mut self, bundle: impl DynamicBundleClone ) -> &mut EntityBuilderClone
Add all components in bundle
to the entity.
If the bundle contains any component which matches the type of a component
already in the EntityBuilder
, the newly added component from the bundle
will replace the old component and the old component will be dropped.
sourcepub fn build(self) -> BuiltEntityClone
pub fn build(self) -> BuiltEntityClone
Convert into a value whose shared references are DynamicBundle
s suitable for repeated
spawning
sourcepub fn has<T>(&self) -> boolwhere
T: Component,
pub fn has<T>(&self) -> boolwhere
T: Component,
Checks to see if the component of type T
exists
sourcepub fn get<'a, T>(&'a self) -> Option<T>where
T: ComponentRefShared<'a>,
pub fn get<'a, T>(&'a self) -> Option<T>where
T: ComponentRefShared<'a>,
Borrow a shared reference T
to some component type, if it exists
Takes a reference as its type parameter for consistency with
EntityRef::get
, even though it cannot be a unique reference
because EntityBuilderClone
does not perform dynamic borrow checking.
sourcepub fn get_mut<'a, T>(&'a mut self) -> Option<T>where
T: ComponentRef<'a>,
pub fn get_mut<'a, T>(&'a mut self) -> Option<T>where
T: ComponentRef<'a>,
Borrow a shared or unique reference T
to some component type, if it exists
sourcepub fn component_types(&self) -> impl Iterator<Item = TypeId>
pub fn component_types(&self) -> impl Iterator<Item = TypeId>
Enumerate the types of the entity builder’s components
Trait Implementations§
source§impl Clone for EntityBuilderClone
impl Clone for EntityBuilderClone
source§fn clone(&self) -> EntityBuilderClone
fn clone(&self) -> EntityBuilderClone
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for EntityBuilderClone
impl Default for EntityBuilderClone
source§fn default() -> EntityBuilderClone
fn default() -> EntityBuilderClone
source§impl From<BuiltEntityClone> for EntityBuilderClone
impl From<BuiltEntityClone> for EntityBuilderClone
source§fn from(x: BuiltEntityClone) -> EntityBuilderClone
fn from(x: BuiltEntityClone) -> EntityBuilderClone
source§impl From<EntityBuilderClone> for BuiltEntityClone
impl From<EntityBuilderClone> for BuiltEntityClone
source§fn from(x: EntityBuilderClone) -> BuiltEntityClone
fn from(x: EntityBuilderClone) -> BuiltEntityClone
Auto Trait Implementations§
impl Freeze for EntityBuilderClone
impl RefUnwindSafe for EntityBuilderClone
impl Send for EntityBuilderClone
impl Sync for EntityBuilderClone
impl Unpin for EntityBuilderClone
impl UnwindSafe for EntityBuilderClone
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for T
impl<T> Downcast for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.