Struct oxygengine::prelude::commands::EntityBuilderClone
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§
§impl EntityBuilderClone
impl EntityBuilderClone
pub fn new() -> EntityBuilderClone
pub fn new() -> EntityBuilderClone
Create a builder representing an entity with no components
pub fn add<T>(&mut self, component: T) -> &mut EntityBuilderClonewhere
T: Component + Clone,
pub fn add<T>(&mut self, component: T) -> &mut EntityBuilderClonewhere T: Component + Clone,
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.
pub 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.
pub fn build(self) -> BuiltEntityClone
pub fn build(self) -> BuiltEntityClone
Convert into a value whose shared references are DynamicBundle
s suitable for repeated
spawning
pub 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.
pub 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
pub 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
pub fn clear(&mut self)
pub fn clear(&mut self)
Drop previously add
ed components
The builder is cleared implicitly when an entity is built, so this doesn’t usually need to be called.
Trait Implementations§
§impl Clone for EntityBuilderClone
impl Clone for EntityBuilderClone
§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 more