lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
27 lines • 755 B
JavaScript
export default (cb, ticker) => {
const queued = new Set();
const execute = (payload) => {
for (const target of queued)
cb(target, payload);
};
let handle;
const start = () => (handle = ticker(execute));
const deleteSystem = (item) => {
if (!queued.delete(item))
return;
item.$deleteSystemSet.delete(deleteSystem);
queued.size === 0 && handle?.cancel();
};
return [
(item) => {
if (queued.has(item))
return;
queued.add(item);
item.$deleteSystemSet.add(deleteSystem);
if (queued.size === 1)
start();
},
deleteSystem
];
};
//# sourceMappingURL=eventSystem.js.map