Struct bevy_internal::ecs::reflect::ReflectMapEntities
source · pub struct ReflectMapEntities { /* private fields */ }
Expand description
For a specific type of component, this maps any fields with values of type Entity
to a new world.
Since a given Entity
ID is only valid for the world it came from, when performing deserialization
any stored IDs need to be re-allocated in the destination world.
See SceneEntityMapper
and MapEntities
for more information.
Implementations§
source§impl ReflectMapEntities
impl ReflectMapEntities
sourcepub fn map_all_entities(
&self,
world: &mut World,
entity_map: &mut HashMap<Entity, Entity, EntityHash>
)
pub fn map_all_entities( &self, world: &mut World, entity_map: &mut HashMap<Entity, Entity, EntityHash> )
A general method for applying MapEntities
behavior to all elements in an EntityHashMap<Entity>
.
Be mindful in its usage: Works best in situations where the entities in the EntityHashMap<Entity>
are newly
created, before systems have a chance to add new components. If some of the entities referred to
by the EntityHashMap<Entity>
might already contain valid entity references, you should use map_entities
.
An example of this: A scene can be loaded with Parent
components, but then a Parent
component can be added
to these entities after they have been loaded. If you reload the scene using map_all_entities
, those Parent
components with already valid entity references could be updated to point at something else entirely.
sourcepub fn map_entities(
&self,
world: &mut World,
entity_map: &mut HashMap<Entity, Entity, EntityHash>,
entities: &[Entity]
)
pub fn map_entities( &self, world: &mut World, entity_map: &mut HashMap<Entity, Entity, EntityHash>, entities: &[Entity] )
A general method for applying MapEntities
behavior to elements in an EntityHashMap<Entity>
. Unlike
map_all_entities
, this is applied to specific entities, not all values
in the EntityHashMap<Entity>
.
This is useful mostly for when you need to be careful not to update components that already contain valid entity
values. See map_all_entities
for more details.
Trait Implementations§
source§impl Clone for ReflectMapEntities
impl Clone for ReflectMapEntities
source§fn clone(&self) -> ReflectMapEntities
fn clone(&self) -> ReflectMapEntities
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<C> FromType<C> for ReflectMapEntitieswhere
C: Component + MapEntities,
impl<C> FromType<C> for ReflectMapEntitieswhere
C: Component + MapEntities,
fn from_type() -> ReflectMapEntities
Auto Trait Implementations§
impl RefUnwindSafe for ReflectMapEntities
impl Send for ReflectMapEntities
impl Sync for ReflectMapEntities
impl Unpin for ReflectMapEntities
impl UnwindSafe for ReflectMapEntities
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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 Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.