Crate bevy_event_set[][src]

A macro to create event bundles for Bevy

Usage

event_set!([name] { [...events] });

This will create a struct that can be used to send events of all given types through the SendEvent trait.

Example

use bevy_event_set::*;

// Define your events
struct EventOne;
struct EventTwo;
struct EventThree(usize);

// Create an event set named `MyEvents`
event_set!(MyEvents { EventOne, EventTwo, EventThree });

// Use the event set in a system
fn event_emitter_system(mut events: MyEvents) {
    events.send(EventOne);
    events.send(EventTwo);
    events.send(EventThree(42));
}

// Subscribe to events selectively in different systems
fn event_one_listener_system(events: Res<Events<EventOne>>) { }
fn event_two_listener_system(events: Res<Events<EventTwo>>) { }
fn event_three_listener_system(events: Res<Events<EventThree>>) { }

// Add the event set to your app
App::build()
    .add_event_set::<MyEvents>();

Macros

event_set

Creates an event set

Traits

AddEventSet

Trait used to add add_event_set to the Bevy app builder

EventSet

Describes an event set

SendEvent

Allows an event set to send an event of a given type