UNPKG

lingo3d

Version:

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

35 lines 1.19 kB
import serialize from "../api/serializer/serialize"; import throttleFrameTrailing from "./utils/throttleFrameTrailing"; let prevNodes = {}; export default throttleFrameTrailing(() => { //@ts-ignore const nodes = serialize().group((node) => node.uuid); const createNodes = []; const updateNodes = []; const deleteNodes = []; for (const [uuid, [node]] of Object.entries(nodes)) { if (!(uuid in prevNodes)) { createNodes.push(node); continue; } const prevNode = prevNodes[uuid][0]; const diffNode = { uuid }; let hasDiff = false; for (const [key, value] of Object.entries(node)) if (value !== prevNode[key]) { diffNode[key] = value; hasDiff = true; } hasDiff && updateNodes.push(diffNode); } for (const [uuid, [node]] of Object.entries(prevNodes)) { if (uuid in nodes) continue; deleteNodes.push(node); } console.log("create", createNodes); console.log("update", updateNodes); console.log("delete", deleteNodes); prevNodes = nodes; }); //# sourceMappingURL=diffSceneGraph.js.map