pub struct EntityBuilder<'a> { /* private fields */ }
Expand description
The entity builder, allowing to build an entity together with its components.
§Examples
use async_ecs::*;
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::default();
world.register_component::<Health>();
world.register_component::<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 async_ecs::*;
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::default();
world.register_component::<MandatoryHealth>();
world.register_component::<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();
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for EntityBuilder<'a>
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>
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
Mutably borrows from an owned value. Read more