@awesome-flow/ecs 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/canvas/index.cjs +1 -1
  2. package/dist/canvas/index.d.cts +1 -1
  3. package/dist/canvas/index.d.mts +1 -1
  4. package/dist/canvas/index.mjs +1 -1
  5. package/dist/{canvas-C4nDXlkK.mjs → canvas-B21OqInM.mjs} +71 -71
  6. package/dist/canvas-B21OqInM.mjs.map +1 -0
  7. package/dist/{canvas-DlWcWu05.cjs → canvas-CC3xvbbA.cjs} +70 -70
  8. package/dist/canvas-CC3xvbbA.cjs.map +1 -0
  9. package/dist/context/index.cjs +18 -14
  10. package/dist/context/index.cjs.map +1 -1
  11. package/dist/context/index.d.cts +1 -1
  12. package/dist/context/index.d.mts +1 -1
  13. package/dist/context/index.mjs +18 -14
  14. package/dist/context/index.mjs.map +1 -1
  15. package/dist/{entity-component-inspector-VlwcaUqy.cjs → entity-component-inspector-7f3SijXE.cjs} +2 -2
  16. package/dist/{entity-component-inspector-VlwcaUqy.cjs.map → entity-component-inspector-7f3SijXE.cjs.map} +1 -1
  17. package/dist/{entity-component-inspector-CNaN8Scf.mjs → entity-component-inspector-BKpliIkt.mjs} +2 -2
  18. package/dist/{entity-component-inspector-CNaN8Scf.mjs.map → entity-component-inspector-BKpliIkt.mjs.map} +1 -1
  19. package/dist/hooks/index.cjs +1 -1
  20. package/dist/hooks/index.d.cts +1 -1
  21. package/dist/hooks/index.d.mts +1 -1
  22. package/dist/hooks/index.mjs +1 -1
  23. package/dist/id-generator-C2_8g29M.cjs.map +1 -1
  24. package/dist/id-generator-DDsv3NdX.mjs.map +1 -1
  25. package/dist/{index-_BgjSgkQ.d.mts → index-BGxRtxzm.d.mts} +6 -9
  26. package/dist/index-BGxRtxzm.d.mts.map +1 -0
  27. package/dist/{index-CNCqWBLh.d.cts → index-BabUtsGu.d.mts} +10 -9
  28. package/dist/index-BabUtsGu.d.mts.map +1 -0
  29. package/dist/{index-B9WbxxFC.d.mts → index-BfZT1xsF.d.mts} +3 -3
  30. package/dist/index-BfZT1xsF.d.mts.map +1 -0
  31. package/dist/{index-t3_yRTa6.d.cts → index-CbjlHvOZ.d.cts} +3 -3
  32. package/dist/index-CbjlHvOZ.d.cts.map +1 -0
  33. package/dist/{index-BTs_8SY-.d.cts → index-Cet6AhTm.d.cts} +3 -4
  34. package/dist/index-Cet6AhTm.d.cts.map +1 -0
  35. package/dist/{index-DGjpWDlm.d.cts → index-D5HuA6I5.d.mts} +22 -15
  36. package/dist/index-D5HuA6I5.d.mts.map +1 -0
  37. package/dist/{index-DCOd7jg-.d.mts → index-DRUvPELK.d.cts} +22 -15
  38. package/dist/index-DRUvPELK.d.cts.map +1 -0
  39. package/dist/{index-CyeezgDI.d.mts → index-DoQL-Kim.d.mts} +3 -4
  40. package/dist/index-DoQL-Kim.d.mts.map +1 -0
  41. package/dist/{index-YNgbjS9S.d.cts → index-DwEO6FDo.d.cts} +6 -9
  42. package/dist/index-DwEO6FDo.d.cts.map +1 -0
  43. package/dist/{index-C-TDFHpq.d.mts → index-N2r0CM_0.d.cts} +10 -9
  44. package/dist/index-N2r0CM_0.d.cts.map +1 -0
  45. package/dist/index.cjs +3 -3
  46. package/dist/index.d.cts +8 -8
  47. package/dist/index.d.mts +8 -8
  48. package/dist/index.mjs +3 -3
  49. package/dist/inspectors/index.cjs +1 -1
  50. package/dist/inspectors/index.d.cts +1 -1
  51. package/dist/inspectors/index.d.mts +1 -1
  52. package/dist/inspectors/index.mjs +1 -1
  53. package/dist/{node-props-BtAkmdqr.d.mts → node-props-Bryks8-5.d.cts} +3 -3
  54. package/dist/{node-props-BtAkmdqr.d.mts.map → node-props-Bryks8-5.d.cts.map} +1 -1
  55. package/dist/{node-props-DkuSwMA0.d.cts → node-props-Cusf_qtn.d.mts} +3 -3
  56. package/dist/{node-props-DkuSwMA0.d.cts.map → node-props-Cusf_qtn.d.mts.map} +1 -1
  57. package/dist/{node-systems-module-CPDV8u8O.d.mts → node-systems-module-BiefT_Cv.d.cts} +5 -5
  58. package/dist/node-systems-module-BiefT_Cv.d.cts.map +1 -0
  59. package/dist/{node-systems-module-CzkoMbdF.d.cts → node-systems-module-EYtTf6Re.d.mts} +5 -5
  60. package/dist/node-systems-module-EYtTf6Re.d.mts.map +1 -0
  61. package/dist/{node-types-BRcpbaeR.mjs → node-types-DV97CoAJ.mjs} +176 -99
  62. package/dist/node-types-DV97CoAJ.mjs.map +1 -0
  63. package/dist/{node-types-D_NfbsUT.cjs → node-types-Z4QaJir-.cjs} +175 -98
  64. package/dist/node-types-Z4QaJir-.cjs.map +1 -0
  65. package/dist/nodes/index.cjs +1 -1
  66. package/dist/nodes/index.d.cts +2 -2
  67. package/dist/nodes/index.d.mts +2 -2
  68. package/dist/nodes/index.mjs +1 -1
  69. package/dist/{template-tool-nodes-B7sT2iRc.d.cts → template-tool-nodes-CiwTFU-N.d.cts} +2 -2
  70. package/dist/{template-tool-nodes-B7sT2iRc.d.cts.map → template-tool-nodes-CiwTFU-N.d.cts.map} +1 -1
  71. package/dist/{template-tool-nodes-BwavFwMh.d.mts → template-tool-nodes-DWhekyQg.d.mts} +2 -2
  72. package/dist/{template-tool-nodes-BwavFwMh.d.mts.map → template-tool-nodes-DWhekyQg.d.mts.map} +1 -1
  73. package/dist/templates/index.cjs +1 -1
  74. package/dist/templates/index.d.cts +1 -1
  75. package/dist/templates/index.d.mts +1 -1
  76. package/dist/templates/index.mjs +1 -1
  77. package/package.json +13 -14
  78. package/dist/canvas-C4nDXlkK.mjs.map +0 -1
  79. package/dist/canvas-DlWcWu05.cjs.map +0 -1
  80. package/dist/index-B9WbxxFC.d.mts.map +0 -1
  81. package/dist/index-BTs_8SY-.d.cts.map +0 -1
  82. package/dist/index-C-TDFHpq.d.mts.map +0 -1
  83. package/dist/index-CNCqWBLh.d.cts.map +0 -1
  84. package/dist/index-CyeezgDI.d.mts.map +0 -1
  85. package/dist/index-DCOd7jg-.d.mts.map +0 -1
  86. package/dist/index-DGjpWDlm.d.cts.map +0 -1
  87. package/dist/index-YNgbjS9S.d.cts.map +0 -1
  88. package/dist/index-_BgjSgkQ.d.mts.map +0 -1
  89. package/dist/index-t3_yRTa6.d.cts.map +0 -1
  90. package/dist/node-systems-module-CPDV8u8O.d.mts.map +0 -1
  91. package/dist/node-systems-module-CzkoMbdF.d.cts.map +0 -1
  92. package/dist/node-types-BRcpbaeR.mjs.map +0 -1
  93. package/dist/node-types-D_NfbsUT.cjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_canvas = require('../canvas-DlWcWu05.cjs');
2
+ const require_canvas = require('../canvas-CC3xvbbA.cjs');
3
3
 
4
4
  exports.FlowEcsCanvas = require_canvas.FlowEcsCanvas;
5
5
  exports.FlowEcsState = require_canvas.flow_ecs_state_default;
@@ -1,2 +1,2 @@
1
- import { i as _default, n as FlowEcsCanvasProps, r as FlowEcsStateProps, t as FlowEcsCanvas } from "../index-DGjpWDlm.cjs";
1
+ import { i as _default, n as FlowEcsCanvasProps, r as FlowEcsStateProps, t as FlowEcsCanvas } from "../index-DRUvPELK.cjs";
2
2
  export { FlowEcsCanvas, FlowEcsCanvasProps, _default as FlowEcsState, FlowEcsStateProps };
@@ -1,2 +1,2 @@
1
- import { i as _default, n as FlowEcsCanvasProps, r as FlowEcsStateProps, t as FlowEcsCanvas } from "../index-DCOd7jg-.mjs";
1
+ import { i as _default, n as FlowEcsCanvasProps, r as FlowEcsStateProps, t as FlowEcsCanvas } from "../index-D5HuA6I5.mjs";
2
2
  export { FlowEcsCanvas, FlowEcsCanvasProps, _default as FlowEcsState, FlowEcsStateProps };
@@ -1,3 +1,3 @@
1
- import { n as flow_ecs_state_default, t as FlowEcsCanvas } from "../canvas-C4nDXlkK.mjs";
1
+ import { n as flow_ecs_state_default, t as FlowEcsCanvas } from "../canvas-B21OqInM.mjs";
2
2
 
3
3
  export { FlowEcsCanvas, flow_ecs_state_default as FlowEcsState };
@@ -1,7 +1,6 @@
1
- import { E as useEntityTypeTemplates, F as useBridgeStoreVersion, I as useEcsBridge, M as useEntityList, b as useScopeList, n as ecsNodeTemplates, r as ecsNodeTypes, t as EcsNodeType, y as useSystemsModuleList } from "./node-types-BRcpbaeR.mjs";
1
+ import { E as useEntityTypeTemplates, F as useBridgeStoreVersion, I as useEcsBridge, M as useEntityList, b as useScopeList, n as ecsNodeTemplates, r as ecsNodeTypes, t as EcsNodeType, y as useSystemsModuleList } from "./node-types-DV97CoAJ.mjs";
2
2
  import { c } from "react/compiler-runtime";
3
- import { FlowAutoLayout, FlowCanvasContext, FlowCanvasDropWrapper, FlowCanvasRenderIntersections, FlowCanvasWrapper, FlowConnectionStatus, FlowEdgesSelection, FlowTemplatesList } from "@awesome-flow/core/canvas";
4
- import { Portal } from "@mantine/core";
3
+ import { FlowAutoLayout, FlowCanvasContext, FlowCanvasDropWrapper, FlowCanvasRenderIntersections, FlowCanvasWrapper, FlowConnectionStatus } from "@awesome-flow/core/canvas";
5
4
  import { memo, useContext, useEffect, useState } from "react";
6
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
6
  import { useFlowStore } from "@awesome-flow/core/hooks";
@@ -21,8 +20,8 @@ function FlowEcsEdgeModules(props) {
21
20
  for (const node of nodesToConnect) {
22
21
  if (!node.data.entity) continue;
23
22
  const sourceHandle = node.data.handles.find(_temp2$2);
24
- const entity = bridge.entityRepository.get(node.data.entity);
25
- const systemModule = bridge.ecsFlowRepository.getSystemModuleNode(entity.myProxy.entityType);
23
+ const entity = bridge.entityRepository.getEntity(node.data.entity);
24
+ const systemModule = bridge.ecsFlowRepository.getSystemModuleNode(entity.identity.proxy.entityType);
26
25
  const targetHandle = systemModule?.data.handles.find(_temp3$1);
27
26
  if (sourceHandle && targetHandle) onConnect({
28
27
  source: node.id,
@@ -83,8 +82,8 @@ function FlowEcsEdgeProxies(props) {
83
82
  for (const node of nodesToConnect) {
84
83
  if (!node.data.entity) continue;
85
84
  const sourceHandle = node.data.handles.find(_temp2$1);
86
- const entity = bridge.entityRepository.get(node.data.entity);
87
- const proxies = Array.from(bridge.entityProxyRepository.getAll(entity.myProxy).values()).flat();
85
+ const entity = bridge.entityRepository.getEntity(node.data.entity);
86
+ const proxies = Array.from(bridge.entityProxyRepository.getAllProxies(entity.identity.proxy).values()).flat();
88
87
  for (const proxy of proxies) {
89
88
  const proxyNode = bridge.ecsFlowRepository.getEntityNode(proxy);
90
89
  if (proxyNode) {
@@ -157,11 +156,11 @@ function FlowEcsEntities() {
157
156
  const nodesToAdd = [];
158
157
  const nodesToConnect = [];
159
158
  for (const entity of entities) {
160
- let node = bridge.ecsFlowRepository.getEntityNode(entity.myProxy);
159
+ let node = bridge.ecsFlowRepository.getEntityNode(entity.identity.proxy);
161
160
  if (!node) {
162
161
  node = nodeFactory.createNodeFromType("entity-node");
163
- node.data.entity = entity.myProxy;
164
- node.data.entityType = entity.myProxy.entityType;
162
+ node.data.entity = entity.identity.proxy;
163
+ node.data.entityType = entity.identity.proxy.entityType;
165
164
  node.position = {
166
165
  x: 0,
167
166
  y: 0
@@ -291,7 +290,7 @@ function FlowEcsScopes() {
291
290
  }
292
291
  const childIds = [];
293
292
  for (const entity of scope.entities) {
294
- const entityNode = bridge.ecsFlowRepository.getEntityNode(entity.myProxy);
293
+ const entityNode = bridge.ecsFlowRepository.getEntityNode(entity.identity.proxy);
295
294
  if (!entityNode) continue;
296
295
  childIds.push(entityNode.id);
297
296
  }
@@ -384,7 +383,7 @@ function FlowEcsSpawnEntities() {
384
383
  if (node.type !== "entity-node" || !node.data.spawn || node.data.entity) continue;
385
384
  const update = bridge.enqueueEntitySpawn(node.data.spawn);
386
385
  if (!update) {
387
- updateNodeData(node.id, { spawnStatus: "missing-queue" });
386
+ updateNodeData(node.id, { spawnStatus: "missing-scheduler" });
388
387
  continue;
389
388
  }
390
389
  const data = {
@@ -577,8 +576,8 @@ var flow_ecs_state_default = memo(FlowEcsState);
577
576
  //#endregion
578
577
  //#region src/canvas/flow-ecs-canvas.tsx
579
578
  function FlowEcsCanvas(t0) {
580
- const $ = c(21);
581
- const { autoLayout: t1, enableEntitySpawning: t2, enableDragDrop: t3, showEntities: t4, showEntityTypeTemplates: t5, showScopes: t6, showSystemModules: t7, showTemplates: t8, toolNodes: t9 } = t0;
579
+ const $ = c(25);
580
+ const { autoLayout: t1, enableEntitySpawning: t2, enableDragDrop: t3, showEntities: t4, showEntityTypeTemplates: t5, showScopes: t6, showSystemModules: t7, showTemplates: t8, toolNodes: t9, hybrid, defaultPipelineExecution, layoutEngine, beforeInsert } = t0;
582
581
  const autoLayout = t1 === void 0 ? true : t1;
583
582
  const enableEntitySpawning = t2 === void 0 ? true : t2;
584
583
  const enableDragDrop = t3 === void 0 ? true : t3;
@@ -591,39 +590,50 @@ function FlowEcsCanvas(t0) {
591
590
  const [over, setOver] = useState(false);
592
591
  const entityTypeTemplates = useEntityTypeTemplates(showEntityTypeTemplates);
593
592
  let t10;
594
- if ($[0] !== over) {
595
- t10 = /* @__PURE__ */ jsx(FlowCanvasRenderIntersections, {
593
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
594
+ t10 = { autoLayout: true };
595
+ $[0] = t10;
596
+ } else t10 = $[0];
597
+ let t11;
598
+ if ($[1] !== entityTypeTemplates || $[2] !== showTemplates) {
599
+ t11 = showTemplates ? { extraTemplates: entityTypeTemplates } : false;
600
+ $[1] = entityTypeTemplates;
601
+ $[2] = showTemplates;
602
+ $[3] = t11;
603
+ } else t11 = $[3];
604
+ let t12;
605
+ if ($[4] !== hybrid || $[5] !== over || $[6] !== t11) {
606
+ t12 = /* @__PURE__ */ jsx(FlowCanvasRenderIntersections, {
596
607
  canvasHighlighted: over,
597
- nodeTypes: ecsNodeTypes
608
+ nodeTypes: ecsNodeTypes,
609
+ hybrid,
610
+ controls: t10,
611
+ templates: t11
598
612
  });
599
- $[0] = over;
600
- $[1] = t10;
601
- } else t10 = $[1];
602
- const canvas = t10;
603
- let t11;
604
- if ($[2] !== canvas || $[3] !== enableDragDrop) {
605
- t11 = enableDragDrop ? /* @__PURE__ */ jsx(FlowCanvasDropWrapper, {
613
+ $[4] = hybrid;
614
+ $[5] = over;
615
+ $[6] = t11;
616
+ $[7] = t12;
617
+ } else t12 = $[7];
618
+ const canvas = t12;
619
+ let t13;
620
+ if ($[8] !== canvas || $[9] !== enableDragDrop) {
621
+ t13 = enableDragDrop ? /* @__PURE__ */ jsx(FlowCanvasDropWrapper, {
606
622
  setOver,
607
623
  children: canvas
608
624
  }) : /* @__PURE__ */ jsx(FlowCanvasWrapper, { children: canvas });
609
- $[2] = canvas;
610
- $[3] = enableDragDrop;
611
- $[4] = t11;
612
- } else t11 = $[4];
613
- let t12;
614
- let t13;
615
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
616
- t12 = /* @__PURE__ */ jsx(FlowEdgesSelection, {});
617
- t13 = /* @__PURE__ */ jsx(FlowConnectionStatus, {});
618
- $[5] = t12;
619
- $[6] = t13;
620
- } else {
621
- t12 = $[5];
622
- t13 = $[6];
623
- }
625
+ $[8] = canvas;
626
+ $[9] = enableDragDrop;
627
+ $[10] = t13;
628
+ } else t13 = $[10];
624
629
  let t14;
625
- if ($[7] !== autoLayout || $[8] !== enableEntitySpawning || $[9] !== showEntities || $[10] !== showScopes || $[11] !== showSystemModules || $[12] !== toolNodes) {
626
- t14 = /* @__PURE__ */ jsx(flow_ecs_state_default, {
630
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
631
+ t14 = /* @__PURE__ */ jsx(FlowConnectionStatus, {});
632
+ $[11] = t14;
633
+ } else t14 = $[11];
634
+ let t15;
635
+ if ($[12] !== autoLayout || $[13] !== enableEntitySpawning || $[14] !== showEntities || $[15] !== showScopes || $[16] !== showSystemModules || $[17] !== toolNodes) {
636
+ t15 = /* @__PURE__ */ jsx(flow_ecs_state_default, {
627
637
  autoLayout,
628
638
  enableEntitySpawning,
629
639
  showEntities,
@@ -631,47 +641,37 @@ function FlowEcsCanvas(t0) {
631
641
  showSystemModules,
632
642
  toolNodes
633
643
  });
634
- $[7] = autoLayout;
635
- $[8] = enableEntitySpawning;
636
- $[9] = showEntities;
637
- $[10] = showScopes;
638
- $[11] = showSystemModules;
639
- $[12] = toolNodes;
640
- $[13] = t14;
641
- } else t14 = $[13];
642
- let t15;
643
- if ($[14] !== entityTypeTemplates || $[15] !== showTemplates) {
644
- t15 = showTemplates && /* @__PURE__ */ jsx(Portal, {
645
- target: "#portal-navbar",
646
- children: /* @__PURE__ */ jsx(FlowTemplatesList, {
647
- extraTemplates: entityTypeTemplates,
648
- nodeTypes: ecsNodeTypes
649
- })
650
- });
651
- $[14] = entityTypeTemplates;
652
- $[15] = showTemplates;
653
- $[16] = t15;
654
- } else t15 = $[16];
644
+ $[12] = autoLayout;
645
+ $[13] = enableEntitySpawning;
646
+ $[14] = showEntities;
647
+ $[15] = showScopes;
648
+ $[16] = showSystemModules;
649
+ $[17] = toolNodes;
650
+ $[18] = t15;
651
+ } else t15 = $[18];
655
652
  let t16;
656
- if ($[17] !== t11 || $[18] !== t14 || $[19] !== t15) {
653
+ if ($[19] !== beforeInsert || $[20] !== defaultPipelineExecution || $[21] !== layoutEngine || $[22] !== t13 || $[23] !== t15) {
657
654
  t16 = /* @__PURE__ */ jsxs(FlowCanvasContext, {
658
655
  nodeTemplates: ecsNodeTemplates,
656
+ defaultPipelineExecution,
657
+ layoutEngine,
658
+ beforeInsert,
659
659
  children: [
660
- t11,
661
- t12,
662
660
  t13,
663
661
  t14,
664
662
  t15
665
663
  ]
666
664
  });
667
- $[17] = t11;
668
- $[18] = t14;
669
- $[19] = t15;
670
- $[20] = t16;
671
- } else t16 = $[20];
665
+ $[19] = beforeInsert;
666
+ $[20] = defaultPipelineExecution;
667
+ $[21] = layoutEngine;
668
+ $[22] = t13;
669
+ $[23] = t15;
670
+ $[24] = t16;
671
+ } else t16 = $[24];
672
672
  return t16;
673
673
  }
674
674
 
675
675
  //#endregion
676
676
  export { flow_ecs_state_default as n, FlowEcsCanvas as t };
677
- //# sourceMappingURL=canvas-C4nDXlkK.mjs.map
677
+ //# sourceMappingURL=canvas-B21OqInM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-B21OqInM.mjs","names":["useFlowStore","Node","useEffect","EntityNodeData","useBridgeStoreVersion","useEcsBridge","FlowEcsEdgeProxiesProps","nodesToConnect","FlowEcsEdgeModules","props","$","_c","onConnect","_temp","bridge","moduleVersion","t0","node","data","entity","sourceHandle","handles","find","_temp2","entityRepository","getEntity","systemModule","ecsFlowRepository","getSystemModuleNode","identity","proxy","entityType","targetHandle","_temp3","source","id","target","handleId","t1","t2","Symbol","for","h_0","h","connection","state","useFlowStore","Node","useEffect","EntityNodeData","useBridgeStoreVersion","useEcsBridge","FlowEcsEdgeProxiesProps","nodesToConnect","FlowEcsEdgeProxies","props","$","_c","onConnect","_temp","bridge","proxyVersion","t0","node","data","entity","sourceHandle","handles","find","_temp2","entityRepository","getEntity","proxies","Array","from","entityProxyRepository","getAllProxies","identity","proxy","values","flat","proxyNode","ecsFlowRepository","getEntityNode","targetHandle","_temp3","source","id","target","handleId","t1","t2","Symbol","for","h_0","h","connection","state","FlowContext","useFlowStore","Node","useContext","useEffect","useState","EntityNodeData","EcsNodeType","useEcsBridge","useEntityList","FlowEcsEdgeModules","FlowEcsEdgeProxies","FlowEcsEntities","$","_c","nodeFactory","addNodes","_temp","bridge","entities","t0","Symbol","for","entityNodes","setEntityNodes","t1","t2","nodesToAdd","nodesToConnect","entity","node","ecsFlowRepository","getEntityNode","identity","proxy","createNodeFromType","data","entityType","position","x","y","addEntityNode","push","length","t3","state","FlowContext","useFlowStore","Node","useContext","useEffect","SystemsModuleNodeData","EcsNodeType","useEcsBridge","useSystemsModuleList","FlowEcsModules","$","_c","nodeFactory","addNodes","_temp","bridge","modules","t0","t1","keys","Array","from","nodesToAdd","element","ecsFlowRepository","getSystemModuleNode","node","createNodeFromType","systemsModule","data","entityType","position","x","y","addSystemModuleNode","push","length","t2","Symbol","for","state","FlowContext","StoreContext","useFlowStore","Node","useContext","useEffect","shallow","EntityNodeData","ScopeGroupNodeData","EcsNodeType","useEcsBridge","useScopeList","FlowEcsScopes","$","_c","nodeFactory","flowStore","bridge","scopes","nodes","setGroups","setNodes","_temp","t0","length","changed","currentNodes","instance","getState","nextNodes","groups","scope","groupNode","ecsFlowRepository","getScopeGroupNode","scopeId","createNodeFromType","scopeGroup","data","title","position","x","y","className","addScopeGroupNode","unshift","childIds","entity","entities","entityNode","getEntityNode","identity","proxy","push","id","scopedNodeIds","Set","Object","values","flat","groupIds","keys","orderedNodes","map","node","has","type","parentId","entries","find","t1","children","includes","undefined","extent","const","sort","_temp2","t2","Symbol","for","a","b","Number","isGroup","state","useFlowStore","FlowState","Node","useEffect","shallow","EntityNodeData","EcsNodeType","useEcsBridge","selector","state","nodes","updateNodeData","FlowEcsSpawnEntities","$","_c","bridge","t0","t1","node","type","entity","data","spawn","update","enqueueEntitySpawn","id","spawnStatus","entityType","ecsFlowRepository","addEntityNode","t2","Symbol","for","FlowContext","useFlowStore","Node","useContext","useEffect","EcsToolNodeData","EcsNodeType","useEcsBridge","defaultEcsToolNodes","scheduler","eventTimeline","telemetry","updateQueue","const","EcsToolNodeType","FlowEcsToolNodesProps","nodes","FlowEcsToolNodes","t0","$","_c","t1","undefined","nodeFactory","addNodes","_temp","bridge","t2","t3","nodesToAdd","forEach","type","index","ecsFlowRepository","getToolNode","node","createNodeFromType","position","x","y","addToolNode","push","length","t4","Symbol","for","state","FlowAutoLayout","memo","useEffect","useState","useBridgeStoreVersion","useEcsBridge","FlowEcsEntities","FlowEcsModules","FlowEcsScopes","FlowEcsSpawnEntities","FlowEcsToolNodes","EcsToolNodeType","FlowEcsStateProps","showSystemModules","showEntities","autoLayout","enableEntitySpawning","showScopes","toolNodes","FlowEcsState","props","$","_c","refreshLayout","setRefreshLayout","bridge","entityVersion","moduleVersion","t0","Symbol","for","frame","requestAnimationFrame","cancelAnimationFrame","t1","ecsFlowRepository","sizeNodes","t2","t3","t4","t5","t6","Array","isArray","undefined","t7","t8","FlowCanvasContext","FlowCanvasContextProps","FlowCanvasDropWrapper","FlowCanvasRenderIntersections","FlowCanvasRenderProps","FlowCanvasWrapper","FlowConnectionStatus","useState","ecsNodeTemplates","ecsNodeTypes","FlowEcsState","FlowEcsStateProps","useEntityTypeTemplates","FlowEcsCanvasProps","Partial","Pick","hybrid","enableDragDrop","showEntityTypeTemplates","showTemplates","FlowEcsCanvas","t0","$","_c","autoLayout","t1","enableEntitySpawning","t2","t3","showEntities","t4","t5","showScopes","t6","showSystemModules","t7","t8","toolNodes","t9","defaultPipelineExecution","layoutEngine","beforeInsert","undefined","over","setOver","entityTypeTemplates","t10","Symbol","for","t11","extraTemplates","t12","canvas","t13","t14","t15","t16"],"sources":["../src/flow/flow-ecs-edge-modules.tsx","../src/flow/flow-ecs-edge-proxies.tsx","../src/flow/flow-ecs-entities.tsx","../src/flow/flow-ecs-modules.tsx","../src/flow/flow-ecs-scopes.tsx","../src/flow/flow-ecs-spawn-entities.tsx","../src/flow/flow-ecs-tool-nodes.tsx","../src/flow/flow-ecs-state.tsx","../src/canvas/flow-ecs-canvas.tsx"],"sourcesContent":["import { useFlowStore } from '@awesome-flow/core/hooks';\nimport { Node } from '@xyflow/react';\nimport { useEffect } from 'react';\nimport { EntityNodeData } from '../abstract/node-props';\nimport { useBridgeStoreVersion, useEcsBridge } from '../hooks';\n\nexport type FlowEcsEdgeProxiesProps = {\n nodesToConnect: Node<EntityNodeData>[];\n};\n\nfunction FlowEcsEdgeModules(props: Readonly<FlowEcsEdgeProxiesProps>) {\n const { nodesToConnect } = props;\n\n const onConnect = useFlowStore((state: { onConnect: any }) => state.onConnect);\n\n const bridge = useEcsBridge();\n const moduleVersion = useBridgeStoreVersion('modules');\n\n useEffect(() => {\n for (const node of nodesToConnect) {\n if (!node.data.entity) {\n continue;\n }\n\n const sourceHandle = node.data.handles.find((h) => h.connection === 'source');\n const entity = bridge.entityRepository.getEntity(node.data.entity);\n\n const systemModule = bridge.ecsFlowRepository.getSystemModuleNode(entity.identity.proxy.entityType);\n const targetHandle = systemModule?.data.handles.find((h) => h.connection === 'target');\n\n if (sourceHandle && targetHandle) {\n onConnect({\n source: node.id,\n target: systemModule.id,\n sourceHandle: sourceHandle.handleId,\n targetHandle: targetHandle.handleId\n });\n }\n }\n }, [bridge, moduleVersion, nodesToConnect, onConnect]);\n\n return <></>;\n}\n\nexport default FlowEcsEdgeModules;\n","import { useFlowStore } from '@awesome-flow/core/hooks';\nimport { Node } from '@xyflow/react';\nimport { useEffect } from 'react';\nimport { EntityNodeData } from '../abstract/node-props';\nimport { useBridgeStoreVersion, useEcsBridge } from '../hooks';\n\nexport type FlowEcsEdgeProxiesProps = {\n nodesToConnect: Node<EntityNodeData>[];\n};\n\nfunction FlowEcsEdgeProxies(props: Readonly<FlowEcsEdgeProxiesProps>) {\n const { nodesToConnect } = props;\n\n const onConnect = useFlowStore((state: { onConnect: any }) => state.onConnect);\n\n const bridge = useEcsBridge();\n const proxyVersion = useBridgeStoreVersion('proxies');\n\n useEffect(() => {\n for (const node of nodesToConnect) {\n if (!node.data.entity) {\n continue;\n }\n\n const sourceHandle = node.data.handles.find((h) => h.connection === 'source');\n const entity = bridge.entityRepository.getEntity(node.data.entity);\n const proxies = Array.from(bridge.entityProxyRepository.getAllProxies(entity.identity.proxy).values()).flat();\n\n for (const proxy of proxies) {\n const proxyNode = bridge.ecsFlowRepository.getEntityNode(proxy);\n\n if (proxyNode) {\n const targetHandle = proxyNode.data.handles.find((h) => h.connection === 'target');\n\n if (sourceHandle && targetHandle) {\n onConnect({\n source: node.id,\n target: proxyNode.id,\n sourceHandle: sourceHandle.handleId,\n targetHandle: targetHandle.handleId\n });\n }\n }\n }\n }\n }, [bridge, nodesToConnect, onConnect, proxyVersion]);\n\n return <></>;\n}\n\nexport default FlowEcsEdgeProxies;\n","import { FlowContext } from '@awesome-flow/core/abstract';\nimport { useFlowStore } from '@awesome-flow/core/hooks';\nimport { Node } from '@xyflow/react';\nimport { useContext, useEffect, useState } from 'react';\nimport { EntityNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { useEcsBridge, useEntityList } from '../hooks';\nimport FlowEcsEdgeModules from './flow-ecs-edge-modules';\nimport FlowEcsEdgeProxies from './flow-ecs-edge-proxies';\n\nfunction FlowEcsEntities() {\n const { nodeFactory } = useContext(FlowContext);\n const addNodes = useFlowStore((state) => state.addNodes);\n\n const bridge = useEcsBridge();\n const entities = useEntityList();\n const [entityNodes, setEntityNodes] = useState<Node<EntityNodeData>[]>([]);\n\n useEffect(() => {\n const nodesToAdd: Node<EntityNodeData>[] = [];\n const nodesToConnect: Node<EntityNodeData>[] = [];\n\n for (const entity of entities) {\n let node = bridge.ecsFlowRepository.getEntityNode(entity.identity.proxy);\n\n if (!node) {\n node = nodeFactory.createNodeFromType<EntityNodeData>(EcsNodeType.entity);\n node.data.entity = entity.identity.proxy;\n node.data.entityType = entity.identity.proxy.entityType;\n node.position = { x: 0, y: 0 };\n\n bridge.ecsFlowRepository.addEntityNode(node);\n nodesToAdd.push(node);\n }\n\n nodesToConnect.push(node);\n }\n\n setEntityNodes(nodesToConnect);\n if (nodesToAdd.length) {\n addNodes(nodesToAdd);\n }\n }, [addNodes, bridge, entities, nodeFactory]);\n\n return (\n <>\n <FlowEcsEdgeProxies nodesToConnect={entityNodes} />\n <FlowEcsEdgeModules nodesToConnect={entityNodes} />\n </>\n );\n}\n\nexport default FlowEcsEntities;\n","import { FlowContext } from '@awesome-flow/core/abstract';\nimport { useFlowStore } from '@awesome-flow/core/hooks';\nimport { Node } from '@xyflow/react';\nimport { useContext, useEffect } from 'react';\nimport { SystemsModuleNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { useEcsBridge, useSystemsModuleList } from '../hooks';\n\nfunction FlowEcsModules() {\n const { nodeFactory } = useContext(FlowContext);\n const addNodes = useFlowStore((state) => state.addNodes);\n\n const bridge = useEcsBridge();\n const modules = useSystemsModuleList();\n\n useEffect(() => {\n const keys = Array.from(modules.keys());\n\n const nodesToAdd: Node<SystemsModuleNodeData>[] = [];\n\n for (const element of keys) {\n if (bridge.ecsFlowRepository.getSystemModuleNode(element)) {\n continue;\n }\n\n const node = nodeFactory.createNodeFromType<SystemsModuleNodeData>(EcsNodeType.systemsModule);\n\n node.data.entityType = element;\n node.position = { x: 0, y: 0 };\n\n bridge.ecsFlowRepository.addSystemModuleNode(node);\n nodesToAdd.push(node);\n }\n\n if (nodesToAdd.length) {\n addNodes(nodesToAdd);\n }\n }, [addNodes, bridge, modules, nodeFactory]);\n\n return <></>;\n}\n\nexport default FlowEcsModules;\n","import { FlowContext, StoreContext } from '@awesome-flow/core/abstract';\nimport { useFlowStore } from '@awesome-flow/core/hooks';\nimport { Node } from '@xyflow/react';\nimport { useContext, useEffect } from 'react';\nimport { shallow } from 'zustand/shallow';\nimport { EntityNodeData, ScopeGroupNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { useEcsBridge, useScopeList } from '../hooks';\n\nfunction FlowEcsScopes() {\n const { nodeFactory } = useContext(FlowContext);\n const { flowStore } = useContext(StoreContext);\n const bridge = useEcsBridge();\n const scopes = useScopeList();\n\n const { nodes, setGroups, setNodes } = useFlowStore(\n (state) => ({\n nodes: state.nodes,\n setGroups: state.setGroups,\n setNodes: state.setNodes\n }),\n shallow\n );\n\n useEffect(() => {\n if (!scopes.length) {\n return;\n }\n\n let changed = false;\n const currentNodes = flowStore.instance.getState().nodes;\n const nextNodes = [...currentNodes];\n const groups: Record<string, string[]> = {};\n\n for (const scope of scopes) {\n let groupNode = bridge.ecsFlowRepository.getScopeGroupNode(scope.scopeId);\n\n if (!groupNode) {\n groupNode = nodeFactory.createNodeFromType<ScopeGroupNodeData>(EcsNodeType.scopeGroup);\n groupNode.data.scopeId = scope.scopeId;\n groupNode.data.title = 'Scope';\n groupNode.position = { x: 0, y: 0 };\n groupNode.className = 'react-flow__node-group';\n\n bridge.ecsFlowRepository.addScopeGroupNode(groupNode);\n nextNodes.unshift(groupNode);\n changed = true;\n }\n\n const childIds: string[] = [];\n for (const entity of scope.entities) {\n const entityNode = bridge.ecsFlowRepository.getEntityNode(entity.identity.proxy) as Node<EntityNodeData> | undefined;\n if (!entityNode) {\n continue;\n }\n\n childIds.push(entityNode.id);\n }\n\n groups[groupNode.id] = childIds;\n }\n\n const scopedNodeIds = new Set(Object.values(groups).flat());\n const groupIds = new Set(Object.keys(groups));\n const orderedNodes = nextNodes\n .map((node) => {\n if (groupIds.has(node.id)) {\n return node;\n }\n\n if (node.type !== EcsNodeType.entity) {\n return node;\n }\n\n const parentId = scopedNodeIds.has(node.id)\n ? Object.entries(groups).find(([, children]) => children.includes(node.id))?.[0]\n : undefined;\n\n if (node.parentId !== parentId) {\n changed = true;\n return {\n ...node,\n extent: parentId ? ('parent' as const) : undefined,\n parentId\n };\n }\n\n return node;\n })\n .sort((a, b) => Number(!a.data?.isGroup) - Number(!b.data?.isGroup));\n\n if (changed) {\n setNodes(orderedNodes);\n }\n\n setGroups(groups);\n }, [bridge, flowStore, nodeFactory, nodes, scopes, setGroups, setNodes]);\n\n return <></>;\n}\n\nexport default FlowEcsScopes;\n","import { useFlowStore } from '@awesome-flow/core/hooks';\nimport { FlowState } from '@awesome-flow/core/stores';\nimport { Node } from '@xyflow/react';\nimport { useEffect } from 'react';\nimport { shallow } from 'zustand/shallow';\nimport { EntityNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { useEcsBridge } from '../hooks';\n\nconst selector = (state: FlowState) => ({\n nodes: state.nodes,\n updateNodeData: state.updateNodeData\n});\n\nfunction FlowEcsSpawnEntities() {\n const bridge = useEcsBridge();\n const { nodes, updateNodeData } = useFlowStore(selector, shallow);\n\n useEffect(() => {\n for (const node of nodes as Node<EntityNodeData>[]) {\n if (node.type !== EcsNodeType.entity || !node.data.spawn || node.data.entity) {\n continue;\n }\n\n const update = bridge.enqueueEntitySpawn(node.data.spawn);\n if (!update) {\n updateNodeData<EntityNodeData>(node.id, {\n spawnStatus: 'missing-scheduler'\n });\n continue;\n }\n\n const data: Partial<EntityNodeData> = {\n entity: update.entity,\n entityType: update.entity.entityType,\n spawnStatus: 'queued'\n };\n\n bridge.ecsFlowRepository.addEntityNode({\n ...node,\n data: {\n ...node.data,\n ...data\n }\n });\n updateNodeData<EntityNodeData>(node.id, data);\n }\n }, [bridge, nodes, updateNodeData]);\n\n return <></>;\n}\n\nexport default FlowEcsSpawnEntities;\n","import { FlowContext } from '@awesome-flow/core/abstract';\nimport { useFlowStore } from '@awesome-flow/core/hooks';\nimport { Node } from '@xyflow/react';\nimport { useContext, useEffect } from 'react';\nimport { EcsToolNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { useEcsBridge } from '../hooks';\n\nexport const defaultEcsToolNodes = [\n EcsNodeType.scheduler,\n EcsNodeType.eventTimeline,\n EcsNodeType.telemetry,\n EcsNodeType.updateQueue\n] as const;\n\nexport type EcsToolNodeType = (typeof defaultEcsToolNodes)[number];\n\nexport type FlowEcsToolNodesProps = {\n nodes?: readonly EcsToolNodeType[];\n};\n\nfunction FlowEcsToolNodes({ nodes = defaultEcsToolNodes }: Readonly<FlowEcsToolNodesProps>) {\n const { nodeFactory } = useContext(FlowContext);\n const addNodes = useFlowStore((state) => state.addNodes);\n const bridge = useEcsBridge();\n\n useEffect(() => {\n const nodesToAdd: Node<EcsToolNodeData>[] = [];\n\n nodes.forEach((type, index) => {\n if (bridge.ecsFlowRepository.getToolNode(type)) {\n return;\n }\n\n const node = nodeFactory.createNodeFromType<EcsToolNodeData>(type);\n node.position = { x: 980, y: index * 220 };\n bridge.ecsFlowRepository.addToolNode(node);\n nodesToAdd.push(node);\n });\n\n if (nodesToAdd.length) {\n addNodes(nodesToAdd);\n }\n }, [addNodes, bridge, nodeFactory, nodes]);\n\n return <></>;\n}\n\nexport default FlowEcsToolNodes;\n","import { FlowAutoLayout } from '@awesome-flow/core/canvas';\nimport { memo, useEffect, useState } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from '../hooks';\nimport FlowEcsEntities from './flow-ecs-entities';\nimport FlowEcsModules from './flow-ecs-modules';\nimport FlowEcsScopes from './flow-ecs-scopes';\nimport FlowEcsSpawnEntities from './flow-ecs-spawn-entities';\nimport FlowEcsToolNodes, { EcsToolNodeType } from './flow-ecs-tool-nodes';\n\nexport type FlowEcsStateProps = {\n showSystemModules: boolean;\n showEntities: boolean;\n autoLayout: boolean;\n enableEntitySpawning?: boolean;\n showScopes?: boolean;\n toolNodes?: boolean | readonly EcsToolNodeType[];\n};\n\nfunction FlowEcsState(props: Readonly<FlowEcsStateProps>) {\n const [refreshLayout, setRefreshLayout] = useState(false);\n const bridge = useEcsBridge();\n const entityVersion = useBridgeStoreVersion('entities');\n const moduleVersion = useBridgeStoreVersion('modules');\n\n useEffect(() => {\n setRefreshLayout(false);\n const frame = requestAnimationFrame(() => setRefreshLayout(true));\n\n return () => cancelAnimationFrame(frame);\n }, [bridge.ecsFlowRepository.sizeNodes, entityVersion, moduleVersion]);\n\n return (\n <>\n {props.showSystemModules && <FlowEcsModules />}\n {props.showEntities && <FlowEcsEntities />}\n {props.enableEntitySpawning && <FlowEcsSpawnEntities />}\n {props.showScopes && <FlowEcsScopes />}\n {props.toolNodes && <FlowEcsToolNodes nodes={Array.isArray(props.toolNodes) ? props.toolNodes : undefined} />}\n {props.autoLayout && <FlowAutoLayout refreshLayout={refreshLayout} />}\n </>\n );\n}\n\nexport default memo(FlowEcsState);\n","import {\n FlowCanvasContext,\n type FlowCanvasContextProps,\n FlowCanvasDropWrapper,\n FlowCanvasRenderIntersections,\n type FlowCanvasRenderProps,\n FlowCanvasWrapper,\n FlowConnectionStatus\n} from '@awesome-flow/core/canvas';\nimport { useState } from 'react';\nimport { ecsNodeTemplates, ecsNodeTypes } from '../abstract/node-types';\nimport FlowEcsState, { FlowEcsStateProps } from '../flow/flow-ecs-state';\nimport { useEntityTypeTemplates } from '../hooks';\n\nexport type FlowEcsCanvasProps = Partial<FlowEcsStateProps> &\n Pick<FlowCanvasContextProps, 'defaultPipelineExecution' | 'layoutEngine' | 'beforeInsert'> & {\n /** Shared production rendering policy; hybrid by default, false opts out. */\n hybrid?: FlowCanvasRenderProps['hybrid'];\n enableDragDrop?: boolean;\n showEntityTypeTemplates?: boolean;\n showTemplates?: boolean;\n };\n\nexport function FlowEcsCanvas({\n autoLayout = true,\n enableEntitySpawning = true,\n enableDragDrop = true,\n showEntities = true,\n showEntityTypeTemplates = true,\n showScopes = true,\n showSystemModules = true,\n showTemplates = false,\n toolNodes = false,\n hybrid,\n defaultPipelineExecution,\n layoutEngine,\n beforeInsert\n}: Readonly<FlowEcsCanvasProps>) {\n const [over, setOver] = useState(false);\n const entityTypeTemplates = useEntityTypeTemplates(showEntityTypeTemplates);\n const canvas = (\n <FlowCanvasRenderIntersections\n canvasHighlighted={over}\n nodeTypes={ecsNodeTypes}\n hybrid={hybrid}\n controls={{ autoLayout: true }}\n templates={showTemplates ? { extraTemplates: entityTypeTemplates } : false}\n />\n );\n\n return (\n <FlowCanvasContext\n nodeTemplates={ecsNodeTemplates}\n defaultPipelineExecution={defaultPipelineExecution}\n layoutEngine={layoutEngine}\n beforeInsert={beforeInsert}\n >\n {enableDragDrop ? (\n <FlowCanvasDropWrapper setOver={setOver}>{canvas}</FlowCanvasDropWrapper>\n ) : (\n <FlowCanvasWrapper>{canvas}</FlowCanvasWrapper>\n )}\n <FlowConnectionStatus />\n <FlowEcsState\n autoLayout={autoLayout}\n enableEntitySpawning={enableEntitySpawning}\n showEntities={showEntities}\n showScopes={showScopes}\n showSystemModules={showSystemModules}\n toolNodes={toolNodes}\n />\n </FlowCanvasContext>\n );\n}\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- const require_node_types = require('./node-types-D_NfbsUT.cjs');
1
+ const require_node_types = require('./node-types-Z4QaJir-.cjs');
2
2
  let react_compiler_runtime = require("react/compiler-runtime");
3
3
  let _awesome_flow_core_canvas = require("@awesome-flow/core/canvas");
4
- let _mantine_core = require("@mantine/core");
5
4
  let react = require("react");
6
5
  let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let _awesome_flow_core_hooks = require("@awesome-flow/core/hooks");
@@ -21,8 +20,8 @@ function FlowEcsEdgeModules(props) {
21
20
  for (const node of nodesToConnect) {
22
21
  if (!node.data.entity) continue;
23
22
  const sourceHandle = node.data.handles.find(_temp2$2);
24
- const entity = bridge.entityRepository.get(node.data.entity);
25
- const systemModule = bridge.ecsFlowRepository.getSystemModuleNode(entity.myProxy.entityType);
23
+ const entity = bridge.entityRepository.getEntity(node.data.entity);
24
+ const systemModule = bridge.ecsFlowRepository.getSystemModuleNode(entity.identity.proxy.entityType);
26
25
  const targetHandle = systemModule?.data.handles.find(_temp3$1);
27
26
  if (sourceHandle && targetHandle) onConnect({
28
27
  source: node.id,
@@ -83,8 +82,8 @@ function FlowEcsEdgeProxies(props) {
83
82
  for (const node of nodesToConnect) {
84
83
  if (!node.data.entity) continue;
85
84
  const sourceHandle = node.data.handles.find(_temp2$1);
86
- const entity = bridge.entityRepository.get(node.data.entity);
87
- const proxies = Array.from(bridge.entityProxyRepository.getAll(entity.myProxy).values()).flat();
85
+ const entity = bridge.entityRepository.getEntity(node.data.entity);
86
+ const proxies = Array.from(bridge.entityProxyRepository.getAllProxies(entity.identity.proxy).values()).flat();
88
87
  for (const proxy of proxies) {
89
88
  const proxyNode = bridge.ecsFlowRepository.getEntityNode(proxy);
90
89
  if (proxyNode) {
@@ -157,11 +156,11 @@ function FlowEcsEntities() {
157
156
  const nodesToAdd = [];
158
157
  const nodesToConnect = [];
159
158
  for (const entity of entities) {
160
- let node = bridge.ecsFlowRepository.getEntityNode(entity.myProxy);
159
+ let node = bridge.ecsFlowRepository.getEntityNode(entity.identity.proxy);
161
160
  if (!node) {
162
161
  node = nodeFactory.createNodeFromType("entity-node");
163
- node.data.entity = entity.myProxy;
164
- node.data.entityType = entity.myProxy.entityType;
162
+ node.data.entity = entity.identity.proxy;
163
+ node.data.entityType = entity.identity.proxy.entityType;
165
164
  node.position = {
166
165
  x: 0,
167
166
  y: 0
@@ -291,7 +290,7 @@ function FlowEcsScopes() {
291
290
  }
292
291
  const childIds = [];
293
292
  for (const entity of scope.entities) {
294
- const entityNode = bridge.ecsFlowRepository.getEntityNode(entity.myProxy);
293
+ const entityNode = bridge.ecsFlowRepository.getEntityNode(entity.identity.proxy);
295
294
  if (!entityNode) continue;
296
295
  childIds.push(entityNode.id);
297
296
  }
@@ -384,7 +383,7 @@ function FlowEcsSpawnEntities() {
384
383
  if (node.type !== "entity-node" || !node.data.spawn || node.data.entity) continue;
385
384
  const update = bridge.enqueueEntitySpawn(node.data.spawn);
386
385
  if (!update) {
387
- updateNodeData(node.id, { spawnStatus: "missing-queue" });
386
+ updateNodeData(node.id, { spawnStatus: "missing-scheduler" });
388
387
  continue;
389
388
  }
390
389
  const data = {
@@ -577,8 +576,8 @@ var flow_ecs_state_default = (0, react.memo)(FlowEcsState);
577
576
  //#endregion
578
577
  //#region src/canvas/flow-ecs-canvas.tsx
579
578
  function FlowEcsCanvas(t0) {
580
- const $ = (0, react_compiler_runtime.c)(21);
581
- const { autoLayout: t1, enableEntitySpawning: t2, enableDragDrop: t3, showEntities: t4, showEntityTypeTemplates: t5, showScopes: t6, showSystemModules: t7, showTemplates: t8, toolNodes: t9 } = t0;
579
+ const $ = (0, react_compiler_runtime.c)(25);
580
+ const { autoLayout: t1, enableEntitySpawning: t2, enableDragDrop: t3, showEntities: t4, showEntityTypeTemplates: t5, showScopes: t6, showSystemModules: t7, showTemplates: t8, toolNodes: t9, hybrid, defaultPipelineExecution, layoutEngine, beforeInsert } = t0;
582
581
  const autoLayout = t1 === void 0 ? true : t1;
583
582
  const enableEntitySpawning = t2 === void 0 ? true : t2;
584
583
  const enableDragDrop = t3 === void 0 ? true : t3;
@@ -591,39 +590,50 @@ function FlowEcsCanvas(t0) {
591
590
  const [over, setOver] = (0, react.useState)(false);
592
591
  const entityTypeTemplates = require_node_types.useEntityTypeTemplates(showEntityTypeTemplates);
593
592
  let t10;
594
- if ($[0] !== over) {
595
- t10 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowCanvasRenderIntersections, {
593
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
594
+ t10 = { autoLayout: true };
595
+ $[0] = t10;
596
+ } else t10 = $[0];
597
+ let t11;
598
+ if ($[1] !== entityTypeTemplates || $[2] !== showTemplates) {
599
+ t11 = showTemplates ? { extraTemplates: entityTypeTemplates } : false;
600
+ $[1] = entityTypeTemplates;
601
+ $[2] = showTemplates;
602
+ $[3] = t11;
603
+ } else t11 = $[3];
604
+ let t12;
605
+ if ($[4] !== hybrid || $[5] !== over || $[6] !== t11) {
606
+ t12 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowCanvasRenderIntersections, {
596
607
  canvasHighlighted: over,
597
- nodeTypes: require_node_types.ecsNodeTypes
608
+ nodeTypes: require_node_types.ecsNodeTypes,
609
+ hybrid,
610
+ controls: t10,
611
+ templates: t11
598
612
  });
599
- $[0] = over;
600
- $[1] = t10;
601
- } else t10 = $[1];
602
- const canvas = t10;
603
- let t11;
604
- if ($[2] !== canvas || $[3] !== enableDragDrop) {
605
- t11 = enableDragDrop ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowCanvasDropWrapper, {
613
+ $[4] = hybrid;
614
+ $[5] = over;
615
+ $[6] = t11;
616
+ $[7] = t12;
617
+ } else t12 = $[7];
618
+ const canvas = t12;
619
+ let t13;
620
+ if ($[8] !== canvas || $[9] !== enableDragDrop) {
621
+ t13 = enableDragDrop ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowCanvasDropWrapper, {
606
622
  setOver,
607
623
  children: canvas
608
624
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowCanvasWrapper, { children: canvas });
609
- $[2] = canvas;
610
- $[3] = enableDragDrop;
611
- $[4] = t11;
612
- } else t11 = $[4];
613
- let t12;
614
- let t13;
615
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
616
- t12 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowEdgesSelection, {});
617
- t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowConnectionStatus, {});
618
- $[5] = t12;
619
- $[6] = t13;
620
- } else {
621
- t12 = $[5];
622
- t13 = $[6];
623
- }
625
+ $[8] = canvas;
626
+ $[9] = enableDragDrop;
627
+ $[10] = t13;
628
+ } else t13 = $[10];
624
629
  let t14;
625
- if ($[7] !== autoLayout || $[8] !== enableEntitySpawning || $[9] !== showEntities || $[10] !== showScopes || $[11] !== showSystemModules || $[12] !== toolNodes) {
626
- t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(flow_ecs_state_default, {
630
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
631
+ t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowConnectionStatus, {});
632
+ $[11] = t14;
633
+ } else t14 = $[11];
634
+ let t15;
635
+ if ($[12] !== autoLayout || $[13] !== enableEntitySpawning || $[14] !== showEntities || $[15] !== showScopes || $[16] !== showSystemModules || $[17] !== toolNodes) {
636
+ t15 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(flow_ecs_state_default, {
627
637
  autoLayout,
628
638
  enableEntitySpawning,
629
639
  showEntities,
@@ -631,44 +641,34 @@ function FlowEcsCanvas(t0) {
631
641
  showSystemModules,
632
642
  toolNodes
633
643
  });
634
- $[7] = autoLayout;
635
- $[8] = enableEntitySpawning;
636
- $[9] = showEntities;
637
- $[10] = showScopes;
638
- $[11] = showSystemModules;
639
- $[12] = toolNodes;
640
- $[13] = t14;
641
- } else t14 = $[13];
642
- let t15;
643
- if ($[14] !== entityTypeTemplates || $[15] !== showTemplates) {
644
- t15 = showTemplates && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Portal, {
645
- target: "#portal-navbar",
646
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowTemplatesList, {
647
- extraTemplates: entityTypeTemplates,
648
- nodeTypes: require_node_types.ecsNodeTypes
649
- })
650
- });
651
- $[14] = entityTypeTemplates;
652
- $[15] = showTemplates;
653
- $[16] = t15;
654
- } else t15 = $[16];
644
+ $[12] = autoLayout;
645
+ $[13] = enableEntitySpawning;
646
+ $[14] = showEntities;
647
+ $[15] = showScopes;
648
+ $[16] = showSystemModules;
649
+ $[17] = toolNodes;
650
+ $[18] = t15;
651
+ } else t15 = $[18];
655
652
  let t16;
656
- if ($[17] !== t11 || $[18] !== t14 || $[19] !== t15) {
653
+ if ($[19] !== beforeInsert || $[20] !== defaultPipelineExecution || $[21] !== layoutEngine || $[22] !== t13 || $[23] !== t15) {
657
654
  t16 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_awesome_flow_core_canvas.FlowCanvasContext, {
658
655
  nodeTemplates: require_node_types.ecsNodeTemplates,
656
+ defaultPipelineExecution,
657
+ layoutEngine,
658
+ beforeInsert,
659
659
  children: [
660
- t11,
661
- t12,
662
660
  t13,
663
661
  t14,
664
662
  t15
665
663
  ]
666
664
  });
667
- $[17] = t11;
668
- $[18] = t14;
669
- $[19] = t15;
670
- $[20] = t16;
671
- } else t16 = $[20];
665
+ $[19] = beforeInsert;
666
+ $[20] = defaultPipelineExecution;
667
+ $[21] = layoutEngine;
668
+ $[22] = t13;
669
+ $[23] = t15;
670
+ $[24] = t16;
671
+ } else t16 = $[24];
672
672
  return t16;
673
673
  }
674
674
 
@@ -685,4 +685,4 @@ Object.defineProperty(exports, 'flow_ecs_state_default', {
685
685
  return flow_ecs_state_default;
686
686
  }
687
687
  });
688
- //# sourceMappingURL=canvas-DlWcWu05.cjs.map
688
+ //# sourceMappingURL=canvas-CC3xvbbA.cjs.map