polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
22 lines (19 loc) • 771 B
text/typescript
import {AssemblersMap} from './All';
import {BaseAssemblersRegister, AssemblerName} from './_BaseRegister';
import {BaseNodeType} from '../../../nodes/_Base';
export class AssemblersRegister extends BaseAssemblersRegister {
assembler<K extends keyof AssemblersMap>(node: BaseNodeType, name: K): AssemblersMap[K]['controller'] | undefined {
const pair = this._controller_assembler_by_name.get(name as AssemblerName);
if (pair) {
const controller = pair.controller;
const assembler = pair.assembler;
return new controller(node, assembler);
}
return pair;
}
unregister<K extends keyof AssemblersMap>(name: K) {
const pair = this._controller_assembler_by_name.get(name as AssemblerName);
super.unregister(name as AssemblerName);
return pair;
}
}