@hiddentao/clockwork-engine
Version:
A TypeScript/PIXI.js game engine for deterministic, replayable games with built-in rendering
40 lines (39 loc) • 867 B
JavaScript
/**
* Event Callback Manager
*
* Utility class for managing event callbacks with type safety.
* Eliminates duplicate callback array management across platform layers.
*/
export class EventCallbackManager {
constructor() {
this.callbacks = [];
}
/**
* Register a new event callback
*/
register(callback) {
if (!this.callbacks.includes(callback)) {
this.callbacks.push(callback);
}
}
/**
* Trigger all registered callbacks with an event
*/
trigger(event) {
for (const callback of this.callbacks) {
callback(event);
}
}
/**
* Clear all registered callbacks
*/
clear() {
this.callbacks = [];
}
/**
* Get the number of registered callbacks
*/
get count() {
return this.callbacks.length;
}
}