@hiddentao/clockwork-engine
Version:
A TypeScript/PIXI.js game engine for deterministic, replayable games with built-in rendering
25 lines (24 loc) • 628 B
JavaScript
export class EventEmitter {
constructor() {
this.listeners = {};
}
on(event, callback) {
if (!this.listeners[event]) {
this.listeners[event] = new Set();
}
this.listeners[event]?.add(callback);
}
off(event, callback) {
this.listeners[event]?.delete(callback);
}
emit(event, ...args) {
this.listeners[event]?.forEach((callback) => callback(...args));
}
clearListeners() {
for (const key in this.listeners) {
if (this.listeners[key]) {
this.listeners[key]?.clear();
}
}
}
}