sendEvent<E extends Event> method
void
sendEvent<E extends Event>(
- E event
Synchronously dispatches event to every listener whose registered
type E is a supertype of event (subtype propagation — Liskov for
events), then buffers it for readEvents until the next outer tick
ends. A snapshot of the listener list is taken so subscribing or
unsubscribing inside a handler does not affect the current dispatch.
Implementation
void sendEvent<E extends Event>(E event) {
assert(
!_disposed,
'World.sendEvent: cannot be called after dispose. Listeners and '
'buffers are cleared on dispose — the event would be dropped silently.',
);
_eventBuffer.add(event);
for (final listener in List.of(_eventListeners)) {
listener(event);
}
}