UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

37 lines 1.64 kB
import { assert } from "@lincode/utils"; import { getGameGraph } from "../../../states/useGameGraph"; import { findConnected } from "../../../visualScripting/Connector"; import TemplateNode from "../../../visualScripting/TemplateNode"; import createConnector from "./createConnector"; import { managerConnectorsMap } from "../../../collections/managerConnectorsMap"; export default (manager, spawnNode) => { const gameGraph = getGameGraph(); const managerNode = gameGraph.data[manager.uuid]; assert(managerNode.type === "node"); const sourceUUIDTemplateMap = new Map(); const connectors = new Set(); let managerTemplate; for (const connected of findConnected(manager)) { const connectedNode = gameGraph.data[connected.uuid]; assert(connectedNode.type === "node"); for (const connector of managerConnectorsMap.get(connected) ?? []) connectors.add(connector); const template = new TemplateNode(); template.source = connected; template.spawnNode = spawnNode.uuid; gameGraph.mergeData({ [template.uuid]: { type: "node", x: connectedNode.x, y: connectedNode.y } }); sourceUUIDTemplateMap.set(connected.uuid, template); if (connected === manager) managerTemplate = template; } for (const { from, to, fromProp, toProp, xyz } of connectors) createConnector(sourceUUIDTemplateMap.get(from), fromProp, sourceUUIDTemplateMap.get(to), toProp, xyz); return managerTemplate; }; //# sourceMappingURL=convertToTemplateNodes.js.map