UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

27 lines (26 loc) 969 B
"use strict"; import { addToSetAtEntry } from "../../../../core/MapUtils"; export class ActorKeyboardEventsController { constructor(actorsManager) { this.actorsManager = actorsManager; this._triggeredEvaluatorGeneratorsByMethodName = /* @__PURE__ */ new Map(); this._scene = actorsManager.scene; } addTriggeredEvaluators(evaluatorGenerators, methodName) { evaluatorGenerators.forEach((evaluatorGenerator) => { addToSetAtEntry(this._triggeredEvaluatorGeneratorsByMethodName, methodName, evaluatorGenerator); }); } runTriggers() { this._triggeredEvaluatorGeneratorsByMethodName.forEach((evaluatorGenerators, methodName) => { evaluatorGenerators.forEach((evaluatorGenerator) => { evaluatorGenerator.traverseEvaluator((evaluator) => { if (evaluator[methodName]) { evaluator[methodName](); } }); }); }); this._triggeredEvaluatorGeneratorsByMethodName.clear(); } }