pub struct ReflectComponent(/* private fields */);Expand description
A struct used to operate on reflected Component trait of a type.
A ReflectComponent for type T can be obtained via
bevy_reflect::TypeRegistration::data.
Implementations§
Source§impl ReflectComponent
impl ReflectComponent
Sourcepub fn insert(
&self,
entity: &mut EntityWorldMut<'_>,
component: &(dyn PartialReflect + 'static),
registry: &TypeRegistry,
)
pub fn insert( &self, entity: &mut EntityWorldMut<'_>, component: &(dyn PartialReflect + 'static), registry: &TypeRegistry, )
Sourcepub fn apply<'a>(
&self,
entity: impl Into<EntityMut<'a>>,
component: &(dyn PartialReflect + 'static),
)
pub fn apply<'a>( &self, entity: impl Into<EntityMut<'a>>, component: &(dyn PartialReflect + 'static), )
Sourcepub fn apply_or_insert_mapped(
&self,
entity: &mut EntityWorldMut<'_>,
component: &(dyn PartialReflect + 'static),
registry: &TypeRegistry,
map: &mut dyn EntityMapper,
relationship_hook_mode: RelationshipHookMode,
)
pub fn apply_or_insert_mapped( &self, entity: &mut EntityWorldMut<'_>, component: &(dyn PartialReflect + 'static), registry: &TypeRegistry, map: &mut dyn EntityMapper, relationship_hook_mode: RelationshipHookMode, )
Sourcepub fn remove(&self, entity: &mut EntityWorldMut<'_>)
pub fn remove(&self, entity: &mut EntityWorldMut<'_>)
Removes this Component type from the entity. Does nothing if it doesn’t exist.
Sourcepub fn contains<'a>(&self, entity: impl Into<FilteredEntityRef<'a>>) -> bool
pub fn contains<'a>(&self, entity: impl Into<FilteredEntityRef<'a>>) -> bool
Returns whether entity contains this Component
Sourcepub fn reflect<'a>(
&self,
entity: impl Into<FilteredEntityRef<'a>>,
) -> Option<&'a (dyn Reflect + 'static)>
pub fn reflect<'a>( &self, entity: impl Into<FilteredEntityRef<'a>>, ) -> Option<&'a (dyn Reflect + 'static)>
Gets the value of this Component type from the entity as a reflected reference.
Sourcepub fn reflect_mut<'a>(
&self,
entity: impl Into<FilteredEntityMut<'a>>,
) -> Option<Mut<'a, dyn Reflect>>
pub fn reflect_mut<'a>( &self, entity: impl Into<FilteredEntityMut<'a>>, ) -> Option<Mut<'a, dyn Reflect>>
Sourcepub unsafe fn reflect_unchecked_mut<'a>(
&self,
entity: UnsafeEntityCell<'a>,
) -> Option<Mut<'a, dyn Reflect>>
pub unsafe fn reflect_unchecked_mut<'a>( &self, entity: UnsafeEntityCell<'a>, ) -> Option<Mut<'a, dyn Reflect>>
§Safety
This method does not prevent you from having two mutable pointers to the same data, violating Rust’s aliasing rules. To avoid this:
- Only call this method with a
UnsafeEntityCellthat may be used to mutably access the component on the entityentity - Don’t call this method more than once in the same scope for a given
Component.
§Panics
Panics if Component is immutable.
Sourcepub fn copy(
&self,
source_world: &World,
destination_world: &mut World,
source_entity: Entity,
destination_entity: Entity,
registry: &TypeRegistry,
)
pub fn copy( &self, source_world: &World, destination_world: &mut World, source_entity: Entity, destination_entity: Entity, registry: &TypeRegistry, )
Sourcepub fn register_component(&self, world: &mut World) -> ComponentId
pub fn register_component(&self, world: &mut World) -> ComponentId
Register the type of this Component in World, returning its ComponentId.
Sourcepub fn new(fns: ReflectComponentFns) -> ReflectComponent
pub fn new(fns: ReflectComponentFns) -> ReflectComponent
Create a custom implementation of ReflectComponent.
This is an advanced feature, useful for scripting implementations, that should not be used by most users unless you know what you are doing.
Usually you should derive Reflect and add the #[reflect(Component)] component
to generate a ReflectComponent implementation automatically.
See ReflectComponentFns for more information.
Sourcepub fn fn_pointers(&self) -> &ReflectComponentFns
pub fn fn_pointers(&self) -> &ReflectComponentFns
The underlying function pointers implementing methods on ReflectComponent.
This is useful when you want to keep track locally of an individual function pointer.
Calling TypeRegistry::get followed by
TypeRegistration::data::<ReflectComponent> can be costly if done several
times per frame. Consider cloning ReflectComponent and keeping it
between frames, cloning a ReflectComponent is very cheap.
If you only need a subset of the methods on ReflectComponent,
use fn_pointers to get the underlying ReflectComponentFns
and copy the subset of function pointers you care about.
Sourcepub fn map_entities(
&self,
component: &mut (dyn Reflect + 'static),
func: &mut dyn EntityMapper,
)
pub fn map_entities( &self, component: &mut (dyn Reflect + 'static), func: &mut dyn EntityMapper, )
Calls a dynamic version of Component::map_entities.
Trait Implementations§
Source§impl Clone for ReflectComponent
impl Clone for ReflectComponent
Source§fn clone(&self) -> ReflectComponent
fn clone(&self) -> ReflectComponent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ReflectComponent
impl RefUnwindSafe for ReflectComponent
impl Send for ReflectComponent
impl Sync for ReflectComponent
impl Unpin for ReflectComponent
impl UnwindSafe for ReflectComponent
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<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> 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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>, which can then be
downcast into Box<dyn 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>, which 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.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more