Struct bevy_mod_picking::prelude::On
source · pub struct On<E>where
E: EntityEvent,{ /* private fields */ }
Expand description
An event listener with a callback that is triggered when an EntityEvent
bubbles past or
targets this entity.
The building block for all event listeners is the On::run
method. All the other provided
methods are convenience methods that describe the most common functionality. However, because
these all use the public On::run
method internally, you can easily define your own variants
that have the behavior you want!
Implementations§
source§impl<E> On<E>where
E: EntityEvent,
impl<E> On<E>where
E: EntityEvent,
sourcepub fn run<Marker>(callback: impl IntoSystem<(), (), Marker>) -> On<E>
pub fn run<Marker>(callback: impl IntoSystem<(), (), Marker>) -> On<E>
Run a callback system every time this event listener is triggered. This can be a closure or
a function, as described by bevy’s documentation. The only notable difference from Bevy
systems is that the callback system can access a resource with event data,
ListenerInput
. You can more easily access this with the system params
Listener
and ListenerMut
.
sourcepub fn add_command<C>() -> On<E>
pub fn add_command<C>() -> On<E>
Add a single Command
any time this event listener is triggered. The command must
implement From<E>
.
sourcepub fn commands_mut(
func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut Commands<'_, '_>) + 'static
) -> On<E>
pub fn commands_mut( func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut Commands<'_, '_>) + 'static ) -> On<E>
Get mutable access to Commands
any time this event listener is triggered.
sourcepub fn target_commands_mut(
func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut EntityCommands<'_>) + 'static
) -> On<E>
pub fn target_commands_mut( func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut EntityCommands<'_>) + 'static ) -> On<E>
Get mutable access to the target entity’s EntityCommands
using a closure any time this
event listener is triggered.
sourcepub fn target_insert(bundle: impl Bundle + Clone) -> On<E>
pub fn target_insert(bundle: impl Bundle + Clone) -> On<E>
Insert a bundle on the target entity any time this event listener is triggered.
sourcepub fn target_remove<B>() -> On<E>where
B: Bundle,
pub fn target_remove<B>() -> On<E>where
B: Bundle,
Remove a bundle from the target entity any time this event listener is triggered.
sourcepub fn target_component_mut<C>(
func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut C) + 'static
) -> On<E>where
C: Component,
pub fn target_component_mut<C>(
func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut C) + 'static
) -> On<E>where
C: Component,
Get mutable access to a specific component on the target entity using a closure any time this event listener is triggered. If the component does not exist, an error will be logged.
sourcepub fn listener_commands_mut(
func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut EntityCommands<'_>) + 'static
) -> On<E>
pub fn listener_commands_mut( func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut EntityCommands<'_>) + 'static ) -> On<E>
Get mutable access to the listener entity’s EntityCommands
using a closure any time this
event listener is triggered.
sourcepub fn listener_insert(bundle: impl Bundle + Clone) -> On<E>
pub fn listener_insert(bundle: impl Bundle + Clone) -> On<E>
Insert a bundle on the listener entity any time this event listener is triggered.
sourcepub fn listener_remove<B>() -> On<E>where
B: Bundle,
pub fn listener_remove<B>() -> On<E>where
B: Bundle,
Remove a bundle from the listener entity any time this event listener is triggered.
sourcepub fn listener_component_mut<C>(
func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut C) + 'static
) -> On<E>where
C: Component,
pub fn listener_component_mut<C>(
func: impl Send + Sync + FnMut(&mut ListenerInput<E>, &mut C) + 'static
) -> On<E>where
C: Component,
Get mutable access to a specific component on the listener entity using a closure any time this event listener is triggered. If the component does not exist, an error will be logged.
sourcepub fn send_event<F>() -> On<E>
pub fn send_event<F>() -> On<E>
Send an event F
any time this event listener is triggered.
Trait Implementations§
source§impl<E> Component for On<E>
impl<E> Component for On<E>
§type Storage = TableStorage
type Storage = TableStorage
TableStorage
or SparseStorage
.Auto Trait Implementations§
impl<E> !RefUnwindSafe for On<E>
impl<E> Send for On<E>
impl<E> Sync for On<E>
impl<E> Unpin for On<E>where
E: Unpin,
impl<E> !UnwindSafe for On<E>
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<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId) )
unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
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.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.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> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.