Trait rin::ecs::EntitiesCreationExt[][src]

pub trait EntitiesCreationExt<'a> {
    pub fn with_entities_creation<'e, F, R>(&'e mut self, f: F) -> R
    where
        F: FnOnce(EntitiesCreation<'e>) -> R
;
pub fn new_entity(&mut self) -> EntityBuilder<'_>;
pub fn creation_storage<C>(&mut self) -> CreationSto<'_, C>
    where
        C: Component
; pub fn add_component_to<'r, C>(&mut self, entity: &Entity, component: C)
    where
        C: ComponentSend,
        <C as Component>::Storage: for<'s> Storage<'s, C>,
        <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
, { ... }
pub fn add_component_to_thread_local<'r, C>(
        &mut self,
        entity: &Entity,
        component: C
    )
    where
        C: ComponentThreadLocal,
        <C as Component>::Storage: for<'s> Storage<'s, C>,
        <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
, { ... }
pub fn add_tag_to<C>(&mut self, entity: &Entity)
    where
        C: 'static
, { ... }
pub fn add_child_component_to<'r, C>(
        &mut self,
        parent: &Entity,
        entity: &Entity,
        component: C
    )
    where
        C: ComponentSend,
        <C as Component>::Storage: for<'b> HierarchicalStorage<'b, C>,
        <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
, { ... }
pub fn add_child_component_to_thread_local<'r, C>(
        &mut self,
        parent: &Entity,
        entity: &Entity,
        component: C
    )
    where
        C: ComponentThreadLocal,
        <C as Component>::Storage: for<'b> HierarchicalStorage<'b, C>,
        <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
, { ... }
pub fn add_slice_component_to<'r, C, I>(
        &mut self,
        entity: &Entity,
        component: I
    )
    where
        C: OneToNComponentSend,
        I: IntoIterator<Item = C>,
        <C as Component>::Storage: for<'s> OneToNStorage<'s, C>,
        <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
, { ... }
pub fn add_slice_component_to_thread_local<'r, C, I>(
        &mut self,
        entity: &Entity,
        component: I
    )
    where
        C: OneToNComponentThreadLocal,
        I: IntoIterator<Item = C>,
        <C as Component>::Storage: for<'s> OneToNStorage<'s, C>,
        <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
, { ... }
pub fn remove_component_from<'r, C>(&mut self, entity: &Entity)
    where
        C: Component,
        <C as Component>::Storage: for<'s> Storage<'s, C>,
        <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
, { ... }
pub fn remove_entity(&mut self, entity: &Entity) { ... } }

Trait implemented by World and CreationProxy allows to create functions that can create new entities, components and resources without relying on an specific object

That way a such function can be called during initialization passing a World as parameter or during run time passing a CreationProxy

Wrappers for World should implement this trait

Required methods

pub fn with_entities_creation<'e, F, R>(&'e mut self, f: F) -> R where
    F: FnOnce(EntitiesCreation<'e>) -> R, 
[src]

pub fn new_entity(&mut self) -> EntityBuilder<'_>[src]

Returns an EntityBuilder that allows to create an entity and it’s components.

let e = world.new_entity()
    .add(Position{x: 0., y: 0.})
    .add(Velocity{x: 0., y: 0.})
    .build();

pub fn creation_storage<C>(&mut self) -> CreationSto<'_, C> where
    C: Component
[src]

Loading content...

Provided methods

pub fn add_component_to<'r, C>(&mut self, entity: &Entity, component: C) where
    C: ComponentSend,
    <C as Component>::Storage: for<'s> Storage<'s, C>,
    <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
[src]

Adds a Send Component to an already existing Entity.

pub fn add_component_to_thread_local<'r, C>(
    &mut self,
    entity: &Entity,
    component: C
) where
    C: ComponentThreadLocal,
    <C as Component>::Storage: for<'s> Storage<'s, C>,
    <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
[src]

Adds a non Send Component to an already existing Entity.

pub fn add_tag_to<C>(&mut self, entity: &Entity) where
    C: 'static, 
[src]

Adds a Tag to an already existing Entity.

pub fn add_child_component_to<'r, C>(
    &mut self,
    parent: &Entity,
    entity: &Entity,
    component: C
) where
    C: ComponentSend,
    <C as Component>::Storage: for<'b> HierarchicalStorage<'b, C>,
    <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
[src]

Adds a Send Component to an already existing Entity.

pub fn add_child_component_to_thread_local<'r, C>(
    &mut self,
    parent: &Entity,
    entity: &Entity,
    component: C
) where
    C: ComponentThreadLocal,
    <C as Component>::Storage: for<'b> HierarchicalStorage<'b, C>,
    <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
[src]

Adds a non Send Component to an already existing Entity.

pub fn add_slice_component_to<'r, C, I>(
    &mut self,
    entity: &Entity,
    component: I
) where
    C: OneToNComponentSend,
    I: IntoIterator<Item = C>,
    <C as Component>::Storage: for<'s> OneToNStorage<'s, C>,
    <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
[src]

Adds a Send OneToNComponent to an already existing Entity.

This allows to add a slice of components to an entity instead of only one component. This components are stored contiguously in memory for all the entities.

pub fn add_slice_component_to_thread_local<'r, C, I>(
    &mut self,
    entity: &Entity,
    component: I
) where
    C: OneToNComponentThreadLocal,
    I: IntoIterator<Item = C>,
    <C as Component>::Storage: for<'s> OneToNStorage<'s, C>,
    <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
[src]

Adds a non Send OneToNComponent to an already existing Entity.

This allows to add a slice of components to an entity instead of only one component. This components are stored contiguously in memory for all the entities.

pub fn remove_component_from<'r, C>(&mut self, entity: &Entity) where
    C: Component,
    <C as Component>::Storage: for<'s> Storage<'s, C>,
    <<C as Component>::Storage as Storage<'r, C>>::Get: DebugParameter
[src]

Removes a compoenent of the specified type from an entity.

pub fn remove_entity(&mut self, entity: &Entity)[src]

Removes an Entity and all it’s compoenents.

Loading content...

Implementors

impl<'a> EntitiesCreationExt<'a> for CreationStorages<'a>[src]

impl<'a> EntitiesCreationExt<'a> for CreationProxy<'a>[src]

impl<'a> EntitiesCreationExt<'a> for Scene[src]

impl<'a> EntitiesCreationExt<'a> for EntitiesCreation<'a>[src]

impl<'a> EntitiesCreationExt<'a> for EntityStoragesCreation<'a>[src]

impl<'a> EntitiesCreationExt<'a> for World[src]

Loading content...