UNPKG

@fuwu-yuan/bgew

Version:

Baguette Game Engine Web is a french 2D Web game engine

38 lines (37 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Dispatcher = void 0; const DispatcherEvent_1 = require("./DispatcherEvent"); class Dispatcher { constructor() { this.events = {}; } dispatch(eventName, ...args) { const event = this.events[eventName]; if (event) { event.fire(...args); } const all = this.events["all"]; if (all) { all.fire(...args); } } on(eventName, callback, options) { let event = this.events[eventName]; if (!event) { event = new DispatcherEvent_1.DispatcherEvent(eventName); this.events[eventName] = event; } event.registerCallback(callback, options); } off(eventName, callback) { const event = this.events[eventName]; if (event) { event.unregisterCallback(callback); if (event.callbacks.length === 0) { delete this.events[eventName]; } } } } exports.Dispatcher = Dispatcher;