A simple, extensible EventListener class for TypeScript projects.
Example usage:
export type GameLoopEvent = {
'update': (event: { tickNumber: number }) => void
}
export class GameLoop extends EventListener<GameLoopEvent> {
// ...
private doUpdateTick () {
this.trigger('update', { tickNumber: this.tickNumber })
}
}
// ... later ...
const gameLoop = new GameLoop()
const handler = ({ tickNumber }) => console.log(tickNumber)
gameLoop.on('update', handler)
// ... later ...
gameLoop.off('update', handler)
// or
gameLoop.offAll()