@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.
- package/dist/canvas/index.cjs +1 -1
- package/dist/canvas/index.d.cts +1 -1
- package/dist/canvas/index.d.mts +1 -1
- package/dist/canvas/index.mjs +1 -1
- package/dist/{canvas-C4nDXlkK.mjs → canvas-B21OqInM.mjs} +71 -71
- package/dist/canvas-B21OqInM.mjs.map +1 -0
- package/dist/{canvas-DlWcWu05.cjs → canvas-CC3xvbbA.cjs} +70 -70
- package/dist/canvas-CC3xvbbA.cjs.map +1 -0
- package/dist/context/index.cjs +18 -14
- package/dist/context/index.cjs.map +1 -1
- package/dist/context/index.d.cts +1 -1
- package/dist/context/index.d.mts +1 -1
- package/dist/context/index.mjs +18 -14
- package/dist/context/index.mjs.map +1 -1
- package/dist/{entity-component-inspector-VlwcaUqy.cjs → entity-component-inspector-7f3SijXE.cjs} +2 -2
- package/dist/{entity-component-inspector-VlwcaUqy.cjs.map → entity-component-inspector-7f3SijXE.cjs.map} +1 -1
- package/dist/{entity-component-inspector-CNaN8Scf.mjs → entity-component-inspector-BKpliIkt.mjs} +2 -2
- package/dist/{entity-component-inspector-CNaN8Scf.mjs.map → entity-component-inspector-BKpliIkt.mjs.map} +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +1 -1
- package/dist/hooks/index.d.mts +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/id-generator-C2_8g29M.cjs.map +1 -1
- package/dist/id-generator-DDsv3NdX.mjs.map +1 -1
- package/dist/{index-_BgjSgkQ.d.mts → index-BGxRtxzm.d.mts} +6 -9
- package/dist/index-BGxRtxzm.d.mts.map +1 -0
- package/dist/{index-CNCqWBLh.d.cts → index-BabUtsGu.d.mts} +10 -9
- package/dist/index-BabUtsGu.d.mts.map +1 -0
- package/dist/{index-B9WbxxFC.d.mts → index-BfZT1xsF.d.mts} +3 -3
- package/dist/index-BfZT1xsF.d.mts.map +1 -0
- package/dist/{index-t3_yRTa6.d.cts → index-CbjlHvOZ.d.cts} +3 -3
- package/dist/index-CbjlHvOZ.d.cts.map +1 -0
- package/dist/{index-BTs_8SY-.d.cts → index-Cet6AhTm.d.cts} +3 -4
- package/dist/index-Cet6AhTm.d.cts.map +1 -0
- package/dist/{index-DGjpWDlm.d.cts → index-D5HuA6I5.d.mts} +22 -15
- package/dist/index-D5HuA6I5.d.mts.map +1 -0
- package/dist/{index-DCOd7jg-.d.mts → index-DRUvPELK.d.cts} +22 -15
- package/dist/index-DRUvPELK.d.cts.map +1 -0
- package/dist/{index-CyeezgDI.d.mts → index-DoQL-Kim.d.mts} +3 -4
- package/dist/index-DoQL-Kim.d.mts.map +1 -0
- package/dist/{index-YNgbjS9S.d.cts → index-DwEO6FDo.d.cts} +6 -9
- package/dist/index-DwEO6FDo.d.cts.map +1 -0
- package/dist/{index-C-TDFHpq.d.mts → index-N2r0CM_0.d.cts} +10 -9
- package/dist/index-N2r0CM_0.d.cts.map +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +8 -8
- package/dist/index.d.mts +8 -8
- package/dist/index.mjs +3 -3
- package/dist/inspectors/index.cjs +1 -1
- package/dist/inspectors/index.d.cts +1 -1
- package/dist/inspectors/index.d.mts +1 -1
- package/dist/inspectors/index.mjs +1 -1
- package/dist/{node-props-BtAkmdqr.d.mts → node-props-Bryks8-5.d.cts} +3 -3
- package/dist/{node-props-BtAkmdqr.d.mts.map → node-props-Bryks8-5.d.cts.map} +1 -1
- package/dist/{node-props-DkuSwMA0.d.cts → node-props-Cusf_qtn.d.mts} +3 -3
- package/dist/{node-props-DkuSwMA0.d.cts.map → node-props-Cusf_qtn.d.mts.map} +1 -1
- package/dist/{node-systems-module-CPDV8u8O.d.mts → node-systems-module-BiefT_Cv.d.cts} +5 -5
- package/dist/node-systems-module-BiefT_Cv.d.cts.map +1 -0
- package/dist/{node-systems-module-CzkoMbdF.d.cts → node-systems-module-EYtTf6Re.d.mts} +5 -5
- package/dist/node-systems-module-EYtTf6Re.d.mts.map +1 -0
- package/dist/{node-types-BRcpbaeR.mjs → node-types-DV97CoAJ.mjs} +176 -99
- package/dist/node-types-DV97CoAJ.mjs.map +1 -0
- package/dist/{node-types-D_NfbsUT.cjs → node-types-Z4QaJir-.cjs} +175 -98
- package/dist/node-types-Z4QaJir-.cjs.map +1 -0
- package/dist/nodes/index.cjs +1 -1
- package/dist/nodes/index.d.cts +2 -2
- package/dist/nodes/index.d.mts +2 -2
- package/dist/nodes/index.mjs +1 -1
- package/dist/{template-tool-nodes-B7sT2iRc.d.cts → template-tool-nodes-CiwTFU-N.d.cts} +2 -2
- package/dist/{template-tool-nodes-B7sT2iRc.d.cts.map → template-tool-nodes-CiwTFU-N.d.cts.map} +1 -1
- package/dist/{template-tool-nodes-BwavFwMh.d.mts → template-tool-nodes-DWhekyQg.d.mts} +2 -2
- package/dist/{template-tool-nodes-BwavFwMh.d.mts.map → template-tool-nodes-DWhekyQg.d.mts.map} +1 -1
- package/dist/templates/index.cjs +1 -1
- package/dist/templates/index.d.cts +1 -1
- package/dist/templates/index.d.mts +1 -1
- package/dist/templates/index.mjs +1 -1
- package/package.json +13 -14
- package/dist/canvas-C4nDXlkK.mjs.map +0 -1
- package/dist/canvas-DlWcWu05.cjs.map +0 -1
- package/dist/index-B9WbxxFC.d.mts.map +0 -1
- package/dist/index-BTs_8SY-.d.cts.map +0 -1
- package/dist/index-C-TDFHpq.d.mts.map +0 -1
- package/dist/index-CNCqWBLh.d.cts.map +0 -1
- package/dist/index-CyeezgDI.d.mts.map +0 -1
- package/dist/index-DCOd7jg-.d.mts.map +0 -1
- package/dist/index-DGjpWDlm.d.cts.map +0 -1
- package/dist/index-YNgbjS9S.d.cts.map +0 -1
- package/dist/index-_BgjSgkQ.d.mts.map +0 -1
- package/dist/index-t3_yRTa6.d.cts.map +0 -1
- package/dist/node-systems-module-CPDV8u8O.d.mts.map +0 -1
- package/dist/node-systems-module-CzkoMbdF.d.cts.map +0 -1
- package/dist/node-types-BRcpbaeR.mjs.map +0 -1
- package/dist/node-types-D_NfbsUT.cjs.map +0 -1
package/dist/canvas/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_canvas = require('../canvas-
|
|
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;
|
package/dist/canvas/index.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as _default, n as FlowEcsCanvasProps, r as FlowEcsStateProps, t as FlowEcsCanvas } from "../index-
|
|
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 };
|
package/dist/canvas/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as _default, n as FlowEcsCanvasProps, r as FlowEcsStateProps, t as FlowEcsCanvas } from "../index-
|
|
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 };
|
package/dist/canvas/index.mjs
CHANGED
|
@@ -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-
|
|
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
|
|
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.
|
|
25
|
-
const systemModule = bridge.ecsFlowRepository.getSystemModuleNode(entity.
|
|
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.
|
|
87
|
-
const proxies = Array.from(bridge.entityProxyRepository.
|
|
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.
|
|
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.
|
|
164
|
-
node.data.entityType = entity.
|
|
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.
|
|
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-
|
|
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(
|
|
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]
|
|
595
|
-
t10 =
|
|
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
|
-
$[
|
|
600
|
-
$[
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
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
|
-
$[
|
|
610
|
-
$[
|
|
611
|
-
$[
|
|
612
|
-
} else
|
|
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 ($[
|
|
626
|
-
t14 = /* @__PURE__ */ jsx(
|
|
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
|
-
$[
|
|
635
|
-
$[
|
|
636
|
-
$[
|
|
637
|
-
$[
|
|
638
|
-
$[
|
|
639
|
-
$[
|
|
640
|
-
$[
|
|
641
|
-
} else
|
|
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 ($[
|
|
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
|
-
$[
|
|
668
|
-
$[
|
|
669
|
-
$[
|
|
670
|
-
$[
|
|
671
|
-
|
|
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-
|
|
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-
|
|
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.
|
|
25
|
-
const systemModule = bridge.ecsFlowRepository.getSystemModuleNode(entity.
|
|
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.
|
|
87
|
-
const proxies = Array.from(bridge.entityProxyRepository.
|
|
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.
|
|
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.
|
|
164
|
-
node.data.entityType = entity.
|
|
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.
|
|
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-
|
|
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)(
|
|
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]
|
|
595
|
-
t10 =
|
|
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
|
-
$[
|
|
600
|
-
$[
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
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
|
-
$[
|
|
610
|
-
$[
|
|
611
|
-
$[
|
|
612
|
-
} else
|
|
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 ($[
|
|
626
|
-
t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
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
|
-
$[
|
|
635
|
-
$[
|
|
636
|
-
$[
|
|
637
|
-
$[
|
|
638
|
-
$[
|
|
639
|
-
$[
|
|
640
|
-
$[
|
|
641
|
-
} else
|
|
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 ($[
|
|
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
|
-
$[
|
|
668
|
-
$[
|
|
669
|
-
$[
|
|
670
|
-
$[
|
|
671
|
-
|
|
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-
|
|
688
|
+
//# sourceMappingURL=canvas-CC3xvbbA.cjs.map
|