@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
27 lines (26 loc) • 969 B
JavaScript
;
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();
}
}