Event system¶
GameEventBus¶
Typed event bus – emit() and on() instead of callback chains.
Configuration: zensical.toml, optional debug: true or localStorage.setItem('DEBUG_EVENTS','1') for logging.
Event domains¶
| Domain | File | Events |
|---|---|---|
| Job | job.events.ts |
skillJobComplete |
| Selection | selection.events.ts |
areaSelection, objectSelected, selectionCleared |
| Zone | zone.events.ts |
zoneSelected |
| Need | need.events.ts |
needFulfillmentRequired |
| View | view.events.ts |
viewChanged (zoom/camera; selection borders refresh) |
Adding events¶
- Add event to
*EventMapinsrc/client/ui/events/<domain>.events.ts - Add constant to
*_EVENTS - Add domain to
types.tsintersection - Emit from producers, subscribe in GameScreen or relevant components