pub struct RemovedComponents<'a, T>where
    T: Component,
{ /* private fields */ }
Expand description

A SystemParam that grants access to the entities that had their T Component removed.

Note that this does not allow you to see which data existed before removal. If you need this, you will need to track the component data value on your own, using a regularly scheduled system that requests Query<(Entity, &T), Changed<T>> and stores the data somewhere safe to later cross-reference.

If you are using bevy_ecs as a standalone crate, note that the RemovedComponents list will not be automatically cleared for you, and will need to be manually flushed using World::clear_trackers

For users of bevy itself, this is automatically done in a system added by MinimalPlugins or DefaultPlugins at the end of each pass of the game loop during the CoreStage::Last stage. As such RemovedComponents systems should be scheduled after the stage where removal occurs but before CoreStage::Last.

Examples

Basic usage:


fn react_on_removal(removed: RemovedComponents<MyComponent>) {
    removed.iter().for_each(|removed_entity| println!("{:?}", removed_entity));
}

Implementations§

Returns an iterator over the entities that had their T Component removed.

Trait Implementations§

The type of the elements being iterated over.
Which kind of iterator are we turning this into?
Creates an iterator from a value. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Convert 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. Read more
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more
Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more