Struct specs::world::EntityBuilder [−][src]
#[must_use = "Please call .build() on this to finish building it."]pub struct EntityBuilder<'a> { pub entity: Entity, pub world: &'a World, // some fields omitted }
Expand description
The entity builder, allowing to build an entity together with its components.
Examples
use specs::{prelude::*, storage::HashMapStorage}; struct Health(f32); impl Component for Health { type Storage = HashMapStorage<Self>; } struct Pos { x: f32, y: f32, } impl Component for Pos { type Storage = DenseVecStorage<Self>; } let mut world = World::new(); world.register::<Health>(); world.register::<Pos>(); let entity = world .create_entity() // This call returns `EntityBuilder` .with(Health(4.0)) .with(Pos { x: 1.0, y: 3.0 }) .build(); // Returns the `Entity`
Distinguishing Mandatory Components from Optional Components
use specs::{prelude::*, storage::HashMapStorage}; struct MandatoryHealth(f32); impl Component for MandatoryHealth { type Storage = HashMapStorage<Self>; } struct OptionalPos { x: f32, y: f32, } impl Component for OptionalPos { type Storage = DenseVecStorage<Self>; } let mut world = World::new(); world.register::<MandatoryHealth>(); world.register::<OptionalPos>(); let mut entitybuilder = world.create_entity().with(MandatoryHealth(4.0)); // something trivial to serve as our conditional let include_optional = true; if include_optional == true { entitybuilder = entitybuilder.with(OptionalPos { x: 1.0, y: 3.0 }) } let entity = entitybuilder.build();
Fields
entity: Entity
The (already created) entity for which components will be inserted.
world: &'a World
A reference to the World
for component insertions.
Trait Implementations
Inserts a component for this entity.
If a component was already associated with the entity, it will overwrite the previous component.
Finishes the building and returns the entity. As opposed to
LazyBuilder
, the components are available immediately.
Auto Trait Implementations
impl<'a> !RefUnwindSafe for EntityBuilder<'a>
impl<'a> Send for EntityBuilder<'a>
impl<'a> Sync for EntityBuilder<'a>
impl<'a> Unpin for EntityBuilder<'a>
impl<'a> !UnwindSafe for EntityBuilder<'a>