UNPKG

@polygonjs/polygonjs

Version:

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

37 lines (35 loc) 1.27 kB
import {NodeJsonImporter} from '../Node'; import {NodeJsonExporterData} from '../../export/Node'; import {SceneJsonImporter} from '../Scene'; import {PolyDictionary} from '../../../../../types/GlobalTypes'; import {PolyNodeController} from '../../../../nodes/utils/poly/PolyNodeController'; export class PolyNodeJsonImporter extends NodeJsonImporter<any> { override create_nodes( scene_importer: SceneJsonImporter, data: PolyDictionary<NodeJsonExporterData>, nodeData: NodeJsonExporterData ) { const node = this._node; const polyNodeController = node.polyNodeController as PolyNodeController; // const oldLockedState = polyNodeController.locked(); polyNodeController.setLockedState(false); if (this._isDataLocked(nodeData)) { polyNodeController.createChildNodesFromDefinition(); } else { super.create_nodes(scene_importer, data, nodeData); } // polyNodeController.setLockedState(oldLockedState); } override setCustomData(data: NodeJsonExporterData): void { if (this._node.polyNodeController) { this._node.polyNodeController.setLockedState(this._isDataLocked(data)); } } private _isDataLocked(data: NodeJsonExporterData): boolean { if (data['polyNode']) { return data['polyNode']['locked']; } else { return false; } } }