UNPKG

the-world-engine

Version:

three.js based, unity like game engine for browser

53 lines (51 loc) 1.34 kB
import { MutIteratableCollection } from "./collection/MutIteratableCollection"; import { ComponentEvent } from "./hierarchy_object/ComponentEvent"; export class SceneProcessor { H; J; U; V; X; constructor() { this.H = new MutIteratableCollection(ComponentEvent.comparator); this.J = new MutIteratableCollection(ComponentEvent.comparator); this.U = false; this.V = []; this.X = []; } addEventToNonSyncedCollection(e) { this.H.insert(e); } removeEventFromNonSyncedCollection(e) { this.H.delete(e); } addEventToSyncedCollection(e) { this.J.insert(e); } startProcessNonSyncedEvent() { this.H.forEach((e => e.invoke())); } tryStartProcessSyncedEvent() { if (this.U) return; this.U = true; this.J.forEach((e => e.invoke())); this.J.clear(); this.U = false; } addRemoveGameObject(e) { this.V.push(e); } addRemoveComponent(e) { this.X.push(e); } processRemoveObject() { const e = this.X; for (let t = 0; t < e.length; ++t) { e[t].gameObject.removeComponent(e[t]); } const t = this.V; for (let e = 0; e < t.length; ++e) { t[e].removeFromParent(); } } }