UNPKG

phaser4-rex-plugins

Version:
49 lines (39 loc) 1.63 kB
import { Parser } from './flowparser/parser.js'; import DefaultCreateEdgeGameObjectCallback from './methods/DefaultCreateEdgeGameObjectCallback.js'; var BuildGraphFromText = function (graph, config) { graph.clear(); var { onCreateNodeGameObject, onCreateEdgeGameObject = DefaultCreateEdgeGameObjectCallback, text } = config; var { nodes, edges } = new Parser().parse(text); var scene = graph.scene; var nodeGameObject; for (var i = 0, cnt = nodes.length; i < cnt; i++) { var nodeData = nodes[i]; var { id, parameters, layoutOptions } = nodeData; parameters.layoutOptions = layoutOptions; if (onCreateNodeGameObject && !parameters.$dummy) { nodeGameObject = onCreateNodeGameObject(scene, id, parameters); } else { nodeGameObject = graph.createDummyNode(); } graph.addNode(nodeGameObject, parameters, id); } var edgeGameObject; for (var i = 0, cnt = edges.length; i < cnt; i++) { var edgeData = edges[i]; var id = edgeData.id; var parameters = edgeData.parameters; var sourceId = edgeData.sourceId; var targetId = edgeData.targetId; if (onCreateEdgeGameObject && !parameters.$invisible) { edgeGameObject = onCreateEdgeGameObject(scene, id, parameters); } else { edgeGameObject = graph.createInvisibleEdge(); } graph.addEdge(edgeGameObject, sourceId, targetId, undefined, parameters, id); } } export default BuildGraphFromText;