@awesome-flow/noise 0.10.0 → 0.12.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.
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_abstract = require('../abstract-3knbwDkz.cjs');
2
+ const require_abstract = require('../abstract-ed4ZdB8H.cjs');
3
3
 
4
4
  exports.DisplacementHandle = require_abstract.DisplacementHandle;
5
5
  exports.NoiseCombineType = require_abstract.NoiseCombineType;
@@ -1,3 +1,3 @@
1
- import { C as noiseCombineModuleMap, H as DisplacementHandle, L as NoiseTemplateGroup, S as NoiseCombineType, U as NoiseHandleType, W as NoiseSourceControlHandle, n as noiseNodeTemplates, r as noiseNodeTypes, t as NoiseNodeType } from "../abstract-DNmiw2MC.mjs";
1
+ import { C as noiseCombineModuleMap, H as DisplacementHandle, L as NoiseTemplateGroup, S as NoiseCombineType, U as NoiseHandleType, W as NoiseSourceControlHandle, n as noiseNodeTemplates, r as noiseNodeTypes, t as NoiseNodeType } from "../abstract-DQyDnRw-.mjs";
2
2
 
3
3
  export { DisplacementHandle, NoiseCombineType, NoiseHandleType, NoiseNodeType, NoiseSourceControlHandle, NoiseTemplateGroup, noiseCombineModuleMap, noiseNodeTemplates, noiseNodeTypes };
@@ -11,7 +11,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
11
11
  import { useNodeContext } from "@awesome-flow/core/hooks";
12
12
  import { Divider, Group, Stack, Text } from "@mantine/core";
13
13
  import { CoreHandleType, CoreTemplateGroup } from "@awesome-flow/core/abstract";
14
- import { PipelineFactory } from "@awesome-flow/core/factories";
14
+ import { PipelineFactory } from "@awesome-ecs/core/factories";
15
15
  import { IDGenerator } from "@awesome-flow/core/utils";
16
16
  import { Position } from "@xyflow/system";
17
17
  import { Abs, Add, Billow, Blend, Checkerboard, Clamp, Const, Curve, Cylinders, Displace, Exponent, Invert, Max, Min, Multiply, Perlin, Power, RidgedMulti, RotatePoint, ScaleBias, ScalePoint, Select, Spheres, Terrace, TranslatePoint, Tuple, Turbulence, Voronoi } from "libnoise-simplex-ts";
@@ -1502,4 +1502,4 @@ const noiseNodeTemplates = {
1502
1502
 
1503
1503
  //#endregion
1504
1504
  export { NoiseSpheresNodeTemplateFactory as A, noise_output_node_default as B, noiseCombineModuleMap as C, PositionGridNodeTemplateFactory as D, ModuleGroupNodeTemplateFactory as E, NoiseCheckerboardNodeTemplateFactory as F, DisplacementHandle as H, NoiseBillowNodeTemplateFactory as I, NoiseTemplateGroup as L, NoisePerlinNodeTemplateFactory as M, NoiseCylindersNodeTemplateFactory as N, PositionConstNodeTemplateFactory as O, NoiseConstNodeTemplateFactory as P, positions_logger_node_default as R, NoiseCombineType as S, NoiseAbsNodeTemplateFactory as T, NoiseHandleType as U, noise_logger_node_default as V, NoiseSourceControlHandle as W, NoiseNormalizeNodeTemplateFactory as _, NoiseTranslatePointNodeTemplateFactory as a, NoiseCurveNodeTemplateFactory as b, NoiseDisplaceNodeTemplateFactory as c, PositionLoggerNodeTemplateFactory as d, NoiseTextureDataTemplateFactory as f, NoiseScaleBiasNodeTemplateFactory as g, NoiseTerraceNodeTemplateFactory as h, NoiseTurbulenceNodeTemplateFactory as i, NoiseRidgedMultiNodeTemplateFactory as j, NoiseVoronoiNodeTemplateFactory as k, NoiseSelectNodeTemplateFactory as l, NoiseLoggerNodeTemplateFactory as m, noiseNodeTemplates as n, NoiseScalePointNodeTemplateFactory as o, NoiseOutputNodeTemplateFactory as p, noiseNodeTypes as r, NoiseRotatePointNodeTemplateFactory as s, NoiseNodeType as t, NoiseBlendNodeTemplateFactory as u, NoiseInvertNodeTemplateFactory as v, NoiseClampNodeTemplateFactory as w, NoiseCombineNodeTemplateFactory as x, NoiseExponentNodeTemplateFactory as y, noise_texture_data_node_default as z };
1505
- //# sourceMappingURL=abstract-DNmiw2MC.mjs.map
1505
+ //# sourceMappingURL=abstract-DQyDnRw-.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-DQyDnRw-.mjs","names":["ModuleGroupNode","PositionConstNode","PositionGridNode","NoiseOutputNode","NoiseTextureDataNode","NoiseLoggerNode","PositionsLoggerNode","NoiseConstNode","NoiseBillowNode","NoiseCheckerboardNode","NoiseCylindersNode","NoisePerlinNode","NoiseRidgedMultiNode","NoiseSpheresNode","NoiseVoronoiNode","NoiseCombineNode","NoiseClampNode","NoiseAbsNode","NoiseNormalizeNode","NoiseCurveNode","NoiseExponentNode","NoiseInvertNode","NoiseScaleBiasNode","NoiseTerraceNode","NoiseBlendNode","NoiseSelectNode","NoiseDisplaceNode","NoiseRotatePointNode","NoiseScalePointNode","NoiseTranslatePointNode","NoiseTurbulenceNode"],"sources":["../src/abstract/handle-types.ts","../src/nodes/output/noise-logger-node.tsx","../src/nodes/output/noise-output-node.tsx","../src/nodes/output/noise-texture-data-node.tsx","../src/nodes/output/positions-logger-node.tsx","../src/abstract/templates.ts","../src/middleware/incoming-property-value.ts","../src/templates/generators/noise-billow-template.ts","../src/templates/generators/noise-checkerboard-template.ts","../src/templates/generators/noise-const-template.ts","../src/templates/generators/noise-cylinders-template.ts","../src/templates/generators/noise-perlin-template.ts","../src/templates/generators/noise-ridgedmulti-template.ts","../src/templates/generators/noise-spheres-template.ts","../src/templates/generators/noise-voronoi-template.ts","../src/templates/generators/position-const-template.ts","../src/templates/generators/position-grid-template.ts","../src/templates/groups/module-group-template.ts","../src/templates/modifiers/noise-abs-template.ts","../src/templates/modifiers/noise-clamp-template.ts","../src/abstract/operations.ts","../src/templates/modifiers/noise-combine-template.ts","../src/templates/modifiers/noise-curve-template.ts","../src/templates/modifiers/noise-exponent-template.ts","../src/templates/modifiers/noise-invert-template.ts","../src/templates/modifiers/noise-normalize-template.ts","../src/templates/modifiers/noise-scalebias-template.ts","../src/templates/modifiers/noise-terrace-template.ts","../src/templates/output/noise-logger-template.ts","../src/templates/output/noise-output-template.ts","../src/templates/output/noise-texture-data-template.ts","../src/templates/output/position-logger-template.ts","../src/templates/selectors/noise-blend-template.ts","../src/templates/selectors/noise-select-template.ts","../src/templates/transformers/noise-displace-template.ts","../src/templates/transformers/noise-rotate-point-template.ts","../src/templates/transformers/noise-scale-point-template.ts","../src/templates/transformers/noise-translate-point-template.ts","../src/templates/transformers/noise-turbulence-template.ts","../src/abstract/node-types.ts"],"sourcesContent":["import { CustomNodeHandle } from '@awesome-flow/core/abstract';\n\nexport enum NoiseHandleType {\n textureData = 'texture-data',\n noise = 'noise',\n position = 'position',\n module = 'module'\n}\n\nexport enum DisplacementHandle {\n sourceModule = 'source',\n xModule = 'x-module',\n yModule = 'y-module',\n zModule = 'z-module',\n output = 'output'\n}\n\nexport enum NoiseSourceControlHandle {\n source = 'source',\n control = 'control',\n output = 'output'\n}\n\nexport type DisplacementModuleHandle = CustomNodeHandle & {\n dataId: DisplacementHandle;\n};\n\nexport type NoiseSourceControlModuleHandle = CustomNodeHandle & {\n dataId: NoiseSourceControlHandle;\n};\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\r\nimport { useNodeContext } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Divider, Stack, Text } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo } from 'react';\r\nimport { NoiseHandleType } from '../../abstract';\r\nimport { NoiseLoggerContext } from '../../templates';\r\n\r\nfunction NoiseLoggerNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\r\n const context = useNodeContext<NoiseLoggerContext>(id)?.incoming?.[NoiseHandleType.noise];\r\n const noise = context?.filter((c) => c.computed?.noise).flatMap((c) => c.computed.noise) || [];\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <Text>Size: {noise?.length || 0}</Text>\r\n <Divider h={5} />\r\n <Stack>\r\n {noise?.map((v, i) => (\r\n <Text key={i}>\r\n {v.position?.x}:{v.position?.y}:{v.position?.z}: {v.value}\r\n </Text>\r\n ))}\r\n </Stack>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseLoggerNode);\r\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\r\nimport { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\r\nimport { useNodeContext } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { NoiseOutputContext } from '@awesome-flow/noise/templates';\r\nimport { Text } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo } from 'react';\r\n\r\nfunction NoiseOutputNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\r\n const context = useNodeContext<NoiseOutputContext>(id);\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <HandlesIncomingDataStatus nodeId={id} handles={data.handles} />\r\n <Text mt={5}>Noise points: {context?.computed?.noise?.length || 0}</Text>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseOutputNode);\r\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\r\nimport { useNodeContext } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { NoiseTextureDataContext } from '@awesome-flow/noise/templates';\r\nimport { Group, Stack } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo } from 'react';\r\n\r\nfunction NoiseTextureDataNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\r\n const context = useNodeContext<NoiseTextureDataContext>(id)?.computed;\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <Stack>\r\n <Group>\r\n Resolution: {context?.textureResolutionX}x{context?.textureResolutionY}\r\n </Group>\r\n <Group>Input Length: {context?.textureData?.length || 0}</Group>\r\n <Group>\r\n Output Length ({context?.textureResolutionX}*{context?.textureResolutionY}*4): {context?.textureData?.length || 0}\r\n </Group>\r\n </Stack>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseTextureDataNode);\r\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\r\nimport { useNodeContext } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Divider, Stack, Text } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo } from 'react';\r\nimport { NoiseHandleType } from '../../abstract';\r\nimport { PositionLoggerNodeContext } from '../../templates';\r\n\r\nfunction PositionsLoggerNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\r\n const incoming = useNodeContext<PositionLoggerNodeContext>(id)?.incoming[NoiseHandleType.position];\r\n const positions = incoming\r\n ?.filter((p) => !!p.computed?.positions?.length)\r\n .flatMap((p) => p.computed.positions);\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <Text>Size: {positions?.length || 0}</Text>\r\n <Divider h={5} />\r\n <Stack>\r\n {positions?.map((v, i) => (\r\n <Text key={i}>\r\n {v.x}:{v.y}:{v.z}\r\n </Text>\r\n ))}\r\n </Stack>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(PositionsLoggerNode);\r\n","export enum NoiseTemplateGroup {\n positions = 'Positions',\n output = 'Output',\n noiseGenerators = 'Noise Generators',\n noiseModifiers = 'Noise Modifiers',\n noiseSelectors = 'Noise Selectors',\n noiseTransformers = 'Noise Transformers'\n}\n","import { IMiddleware } from '@awesome-ecs/abstract/pipelines';\nimport { CoreHandleType } from '@awesome-flow/core/abstract';\nimport { NoiseGeneratorContext } from '../abstract/node-props';\n\nexport class IncomingPropertyValueMiddleware implements IMiddleware<NoiseGeneratorContext<any>> {\n action(context: NoiseGeneratorContext<any>): void {\n const incoming = context.incoming?.[CoreHandleType.variableProperty] ?? [];\n\n const properties = { ...context.data };\n\n for (const connection of incoming) {\n const overwrite = connection.computed;\n\n if (overwrite) {\n Object.assign(properties, { [overwrite.property]: overwrite.value });\n }\n }\n\n context.properties = properties;\n }\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { Billow } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeFBMNoiseData, NoiseGeneratorContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\nimport { IncomingPropertyValueMiddleware } from '../../middleware/incoming-property-value';\n\nexport type NoiseBillowContext = NoiseGeneratorContext<NodeFBMNoiseData>;\n\nexport class NoiseBillowNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeFBMNoiseData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.noiseBillow,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Billow Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 5,\n persistence: 0.5,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseBillowContext> = PipelineFactory.create(new IncomingPropertyValueMiddleware(), {\n action: (context: NoiseBillowContext) => {\n const { properties } = context;\n\n context.computed = {\n module: new Billow(\n properties.frequency,\n properties.lacunarity,\n properties.octaves,\n properties.persistence,\n properties.seed\n )\n };\n },\n cleanup: (context: NoiseBillowContext) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { ComputedModuleData } from '@awesome-flow/noise/abstract';\nimport { Position } from '@xyflow/system';\nimport { Checkerboard } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport type NoiseCheckerboardContext = NodeContext<BasicNodeData, ComputedModuleData>;\n\nexport class NoiseCheckerboardNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseCheckerboard,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Checkerboard Noise'\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseCheckerboardContext> = PipelineFactory.create({\n action: (context: NoiseCheckerboardContext) => {\n context.computed = {\n module: new Checkerboard()\n };\n },\n cleanup: (context: NoiseCheckerboardContext) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Const } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeConstNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport type NoiseConstContext = NodeContext<NodeConstNoiseData, ComputedModuleData>;\n\nexport class NoiseConstNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeConstNoiseData> = {\n type: NoiseNodeType.noiseConst,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Const Value Noise',\n noise: 0,\n min: -1,\n max: 1\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseConstContext> = PipelineFactory.create<NoiseConstContext>({\n shouldRun(context: NoiseConstContext) {\n return context.data.noise !== undefined && context.data.noise !== null;\n },\n action(context: NoiseConstContext) {\n const module = new Const(context.data.noise);\n context.computed = { module };\n },\n cleanup(context: NoiseConstContext) {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { Cylinders } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeCylindersNoiseData, NoiseGeneratorContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\nimport { IncomingPropertyValueMiddleware } from '../../middleware/incoming-property-value';\n\nexport type NoiseCylindersContext = NoiseGeneratorContext<NodeCylindersNoiseData>;\n\nexport class NoiseCylindersNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCylindersNoiseData> = {\n type: NoiseNodeType.noiseCylinders,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Cylinders Noise',\n frequency: 0.1\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseCylindersContext> = PipelineFactory.create(new IncomingPropertyValueMiddleware(), {\n action: (context: NoiseCylindersContext) => {\n const { properties } = context;\n context.computed = {\n module: new Cylinders(properties.frequency)\n };\n },\n cleanup: (context: NoiseCylindersContext) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { Perlin } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeFBMNoiseData, NoiseGeneratorContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\nimport { IncomingPropertyValueMiddleware } from '../../middleware/incoming-property-value';\n\nexport type NoisePerlinContext = NoiseGeneratorContext<NodeFBMNoiseData>;\n\nexport class NoisePerlinNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeFBMNoiseData> = {\n type: NoiseNodeType.noisePerlin,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Perlin Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 5,\n persistence: 0.5,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoisePerlinContext> = PipelineFactory.create(new IncomingPropertyValueMiddleware(), {\n action: (context: NoisePerlinContext) => {\n const { properties } = context;\n context.computed = {\n module: new Perlin(\n properties.frequency,\n properties.lacunarity,\n properties.octaves,\n properties.persistence,\n properties.seed\n )\n };\n },\n cleanup: (context: NoisePerlinContext) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { RidgedMulti } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeRidgedNoiseData, NoiseGeneratorContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\nimport { IncomingPropertyValueMiddleware } from '../../middleware/incoming-property-value';\n\nexport type NoiseRidgedMultiContext = NoiseGeneratorContext<NodeRidgedNoiseData>;\n\nexport class NoiseRidgedMultiNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeRidgedNoiseData> = {\n type: NoiseNodeType.noiseRidgedMulti,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Ridged Multi Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 6,\n offset: 1.0,\n gain: 2.0,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseRidgedMultiContext> = PipelineFactory.create(new IncomingPropertyValueMiddleware(), {\n action: (context: NoiseRidgedMultiContext) => {\n const { properties } = context;\n context.computed = {\n module: new RidgedMulti(\n properties.frequency,\n properties.lacunarity,\n properties.octaves,\n properties.offset,\n properties.gain,\n properties.seed\n )\n };\n },\n cleanup: (context: NoiseRidgedMultiContext) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { Spheres } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeSpheresNoiseData, NoiseGeneratorContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\nimport { IncomingPropertyValueMiddleware } from '../../middleware/incoming-property-value';\n\nexport type NoiseSpheresContext = NoiseGeneratorContext<NodeSpheresNoiseData>;\n\nexport class NoiseSpheresNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeSpheresNoiseData> = {\n type: NoiseNodeType.noiseSpheres,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Spheres Noise',\n frequency: 0.1\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseSpheresContext> = PipelineFactory.create(new IncomingPropertyValueMiddleware(), {\n action: (context: NoiseSpheresContext) => {\n const { properties } = context;\n context.computed = {\n module: new Spheres(properties.frequency)\n };\n },\n cleanup: (context: NoiseSpheresContext) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { Voronoi } from 'libnoise-simplex-ts';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeVoronoiNoiseData, NoiseGeneratorContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\nimport { IncomingPropertyValueMiddleware } from '../../middleware/incoming-property-value';\n\nexport type NoiseVoronoiContext = NoiseGeneratorContext<NodeVoronoiNoiseData>;\n\nexport class NoiseVoronoiNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeVoronoiNoiseData> = {\n type: NoiseNodeType.noiseVoronoi,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Voronoi Noise',\n frequency: 0.1,\n displacement: 1.0,\n distance: true,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseVoronoiContext> = PipelineFactory.create(new IncomingPropertyValueMiddleware(), {\n action: (context: NoiseVoronoiContext) => {\n const { properties } = context;\n context.computed = {\n module: new Voronoi(properties.frequency, properties.displacement, properties.distance, properties.seed)\n };\n },\n cleanup: (context: NoiseVoronoiContext) => {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedPositionsData, NodePositionData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport type NodePositionContext = NodeContext<NodePositionData, ComputedPositionsData>;\n\nexport class PositionConstNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodePositionData> = {\n type: NoiseNodeType.position,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Position Output',\n position: { x: 0, y: 0, z: 0 }\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.position,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NodePositionContext>({\n shouldRun(context: NodePositionContext) {\n return context.data.position !== undefined && context.data.position !== null;\n },\n action(context: NodePositionContext) {\n const { data } = context;\n\n context.computed = {\n positions: [data.position]\n };\n },\n cleanup(context: NodePositionContext) {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedPositionsData, Position as GridPosition, NodeGridData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport type NodeGridPositionContext = NodeContext<NodeGridData, ComputedPositionsData>;\n\nexport class PositionGridNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeGridData> = {\n type: NoiseNodeType.grid,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Grid Output',\n center: { x: 0, y: 0, z: 0 },\n radius: 1\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.position,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NodeGridPositionContext>({\n shouldRun(context: NodeGridPositionContext) {\n const { center, radius } = context.data;\n return center !== undefined && radius !== undefined;\n },\n action(context: NodeGridPositionContext) {\n const { data } = context;\n const { center, radius } = data;\n\n const positions: GridPosition[] = [];\n\n for (let i = -radius; i < radius; i++) {\n for (let j = -radius; j < radius; j++) {\n positions.push({ x: center.x + i, y: center.y + j, z: center.z });\n }\n }\n\n context.computed = {\n positions\n };\n },\n cleanup(context: NodeGridPositionContext) {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, CoreTemplateGroup, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { ComputedModuleData, NoiseModuleContext } from '@awesome-flow/noise/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type ModuleGroupNodeContext = NodeContext<\n BasicNodeData,\n ComputedModuleData,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class ModuleGroupNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.groupModule,\n group: CoreTemplateGroup.groups,\n data: {\n title: 'Modules Group',\n isGroup: true,\n initialSize: {\n width: 300,\n height: 200\n },\n collapsedSize: {\n width: 300,\n height: 80\n }\n },\n handles: [\n {\n position: Position.Bottom,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1,\n hideOnCollapse: true\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<ModuleGroupNodeContext> = PipelineFactory.create({\n shouldRun(context: ModuleGroupNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action: (context: ModuleGroupNodeContext) => {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n context.computed = { module };\n },\n cleanup: (context: ModuleGroupNodeContext) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Abs, ModifierModule } from 'libnoise-simplex-ts';\nimport { ComputedModuleData, NoiseModuleContext, NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseAbsNodeContext = NodeContext<\n BasicNodeData,\n ComputedModuleData<ModifierModule>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseAbsNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseAbs,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Abs Noise'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseAbsNodeContext> = PipelineFactory.create({\n shouldRun(context: NoiseAbsNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseAbsNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (module) {\n if (context.computed?.module) {\n context.computed.module.sourceModule = module;\n } else {\n context.computed = { module: new Abs(module) };\n }\n }\n },\n cleanup(context: NoiseAbsNodeContext) {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Clamp, ModifierModule } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeClampNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseClampNodeContext = NodeContext<\n NodeClampNoiseData,\n ComputedModuleData<ModifierModule>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseClampNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeClampNoiseData> = {\n type: NoiseNodeType.noiseClamp,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Clamp Noise',\n lowerBound: -1,\n upperBound: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseClampNodeContext>({\n shouldRun(context: NoiseClampNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseClampNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (module) {\n const clampModule = context.computed?.module as Clamp;\n\n if (clampModule) {\n clampModule.sourceModule = module;\n clampModule.lowerBound = context.data.lowerBound;\n clampModule.upperBound = context.data.upperBound;\n } else {\n context.computed = {\n module: new Clamp(module, context.data.lowerBound, context.data.upperBound)\n };\n }\n }\n },\n cleanup(context: NoiseClampNodeContext) {\n context.computed = null;\n }\n });\n}\n","import { Add, Max, Min, Multiply, Power } from 'libnoise-simplex-ts';\n\nexport enum NoiseCombineType {\n add = 'add',\n max = 'max',\n min = 'min',\n multiply = 'multiply',\n power = 'power'\n}\n\nexport const noiseCombineModuleMap = {\n [NoiseCombineType.add]: Add,\n [NoiseCombineType.max]: Max,\n [NoiseCombineType.min]: Min,\n [NoiseCombineType.multiply]: Multiply,\n [NoiseCombineType.power]: Power\n};\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { CombinerModule } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeCombineNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseCombineType, noiseCombineModuleMap } from '../../abstract/operations';\n\nexport type NoiseCombineNodeContext = NodeContext<\n NodeCombineNoiseData,\n ComputedModuleData<CombinerModule>,\n { [NoiseHandleType.module]: NoiseModuleContext[] }\n>;\n\nexport class NoiseCombineNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCombineNoiseData> = {\n type: NoiseNodeType.noiseCombine,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Combine Noise',\n operation: NoiseCombineType.add\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n minConnections: 2,\n maxConnections: 2\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseCombineNodeContext>({\n shouldRun(context: NoiseCombineNodeContext): boolean {\n return context.incoming[NoiseHandleType.module]?.length === 2;\n },\n action(context: NoiseCombineNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n\n const ModuleFactory = noiseCombineModuleMap[context.data.operation];\n const module = new ModuleFactory(incoming[0].computed?.module, incoming[1].computed?.module);\n\n context.computed = { module };\n },\n cleanup(context: NoiseCombineNodeContext): void {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Curve, ModifierModule, Tuple } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeCurveNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseCurveNodeContext = NodeContext<\n NodeCurveNoiseData,\n ComputedModuleData<ModifierModule>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseCurveNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCurveNoiseData> = {\n type: NoiseNodeType.noiseCurve,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Curve',\n points: []\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseCurveNodeContext>({\n shouldRun(context: NoiseCurveNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseCurveNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (module) {\n const curve = new Curve(\n module,\n context.data.points.map((p) => new Tuple(p.input, p.output))\n );\n context.computed = { module: curve };\n }\n },\n cleanup(context: NoiseCurveNodeContext): void {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Exponent } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeExponentNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseExponentNodeContext = NodeContext<\n NodeExponentNoiseData,\n ComputedModuleData<Exponent>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseExponentNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeExponentNoiseData> = {\n type: NoiseNodeType.noiseExponent,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Exponent',\n exponent: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseExponentNodeContext>({\n shouldRun(context: NoiseExponentNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseExponentNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (context.computed?.module) {\n context.computed.module.exponent = context.data.exponent;\n } else if (module) {\n const exponentModule = new Exponent(module, context.data.exponent);\n context.computed = { module: exponentModule };\n }\n },\n cleanup(context: NoiseExponentNodeContext): void {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Invert } from 'libnoise-simplex-ts';\nimport { ComputedModuleData, NoiseModuleContext, NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseInvertNodeContext = NodeContext<\n BasicNodeData,\n ComputedModuleData<Invert>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseInvertNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseInvert,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Invert Noise'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseInvertNodeContext>({\n shouldRun(context: NoiseInvertNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseInvertNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (context.computed?.module) {\n context.computed.module.sourceModule = module;\n } else if (module) {\n context.computed = { module: new Invert(module) };\n }\n },\n cleanup(context: NoiseInvertNodeContext): void {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeNormalizeNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NormalizeNoiseModule } from '../../modules';\n\nexport type NoiseNormalizeNodeContext = NodeContext<\n NodeNormalizeNoiseData,\n ComputedModuleData<NormalizeNoiseModule>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseNormalizeNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeNormalizeNoiseData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.noiseNormalize,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Normalize Noise',\n intervalStart: -1,\n intervalEnd: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseNormalizeNodeContext>({\n shouldRun(context: NoiseNormalizeNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseNormalizeNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (module) {\n const normalizeModule = new NormalizeNoiseModule(module, context.data.intervalStart, context.data.intervalEnd);\n context.computed = { module: normalizeModule };\n }\n },\n cleanup(context: NoiseNormalizeNodeContext): void {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { ScaleBias } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeScaleBiasNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseScaleBiasNodeContext = NodeContext<\n NodeScaleBiasNoiseData,\n ComputedModuleData<ScaleBias>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseScaleBiasNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeScaleBiasNoiseData> = {\n type: NoiseNodeType.noiseScaleBias,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Scale/Bias Noise',\n scale: 1.0,\n bias: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseScaleBiasNodeContext>({\n shouldRun(context: NoiseScaleBiasNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseScaleBiasNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (context.computed?.module) {\n context.computed.module.sourceModule = module;\n context.computed.module.scale = context.data.scale;\n context.computed.module.bias = context.data.bias;\n } else if (module) {\n const scaleBiasModule = new ScaleBias(module, context.data.scale, context.data.bias);\n context.computed = { module: scaleBiasModule };\n }\n },\n cleanup(context: NoiseScaleBiasNodeContext): void {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Terrace } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeTerraceNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseTerraceNodeContext = NodeContext<\n NodeTerraceNoiseData,\n ComputedModuleData<Terrace>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseTerraceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTerraceNoiseData> = {\n type: NoiseNodeType.noiseTerrace,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Terrace',\n points: []\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseTerraceNodeContext>({\n shouldRun(context: NoiseTerraceNodeContext): boolean {\n return !!context.incoming[NoiseHandleType.module];\n },\n action(context: NoiseTerraceNodeContext): void {\n const incoming = context.incoming[NoiseHandleType.module];\n const module = incoming.computed?.module;\n\n if (module) {\n const terrace = new Terrace(module, context.data.points);\n context.computed = { module: terrace };\n }\n },\n cleanup(context: NoiseTerraceNodeContext): void {\n context.computed = null;\n }\n });\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { ComputedNoiseData, NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseLoggerContext = NodeContext<\n BasicNodeData,\n never,\n { [NoiseHandleType.noise]: NodeContext<any, ComputedNoiseData>[] }\n>;\n\nexport class NoiseLoggerNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseLogger,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Noise Logger'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.noise,\n connection: 'target'\n }\n ]\n };\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport {\n ComputedNoiseData,\n ComputedPositionsData,\n NoiseModuleContext,\n NoiseTemplateGroup,\n PositionNoiseValue\n} from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseOutputContext = NodeContext<\n BasicNodeData,\n ComputedNoiseData,\n {\n [NoiseHandleType.position]: NodeContext<any, ComputedPositionsData>[];\n [NoiseHandleType.module]: NoiseModuleContext;\n }\n>;\n\nexport class NoiseOutputNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseOutput,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Noise Output'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.position,\n connection: 'target'\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.noise,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseOutputContext> = PipelineFactory.create({\n action: (context) => {\n const incomingPositions = context.incoming[NoiseHandleType.position];\n const incomingModule = context.incoming[NoiseHandleType.module];\n\n if (incomingPositions?.length && incomingModule?.computed?.module) {\n const { module } = incomingModule.computed;\n\n const noise: PositionNoiseValue[] = [];\n\n for (const input of incomingPositions) {\n const { positions } = input.computed;\n for (const position of positions) {\n const value = module.getValue(position.x, position.y, position.z);\n\n noise.push({\n position,\n value\n });\n }\n }\n\n context.computed = {\n noise\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { IPipeline } from '@awesome-ecs/abstract/pipelines';\nimport { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { ComputedNoiseData, ComputedNoiseTextureData, NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseTextureDataContext = NodeContext<\n BasicNodeData,\n ComputedNoiseTextureData,\n { [NoiseHandleType.noise]: NodeContext<any, ComputedNoiseData> }\n>;\n\nexport class NoiseTextureDataTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.textureData,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Texture Data'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.noise,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.textureData,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline?: IPipeline<NoiseTextureDataContext> = PipelineFactory.create({\n shouldRun: (context) => {\n const incoming = context.incoming[NoiseHandleType.noise];\n return !!incoming?.computed?.noise.length;\n },\n action: (context) => {\n const incoming = context.incoming[NoiseHandleType.noise];\n const noise = incoming?.computed?.noise;\n\n const size = Math.ceil(Math.sqrt(noise.length));\n\n const colors = noise.flatMap((n) => [n.value * 255, n.value * 255, n.value * 255, 255]);\n const dataArray = new Uint8Array(size * size * 4);\n dataArray.set(colors);\n\n context.computed = {\n textureData: dataArray,\n textureResolutionX: size,\n textureResolutionY: size\n };\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { ComputedPositionsData, NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type PositionLoggerNodeContext = NodeContext<\n BasicNodeData,\n never,\n { [NoiseNodeType.position]: NodeContext<any, ComputedPositionsData>[] }\n>;\n\nexport class PositionLoggerNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.positionLogger,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Position Logger'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.position,\n connection: 'target'\n }\n ]\n };\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Blend } from 'libnoise-simplex-ts';\nimport { ComputedModuleData, NoiseModuleContext, NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType, NoiseSourceControlHandle } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseBlendNodeContext = NodeContext<\n BasicNodeData,\n ComputedModuleData<Blend>,\n {\n [NoiseSourceControlHandle.source]: NoiseModuleContext[];\n [NoiseSourceControlHandle.control]: NoiseModuleContext;\n }\n>;\n\nexport class NoiseBlendNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseBlend,\n group: NoiseTemplateGroup.noiseSelectors,\n data: {\n title: 'Noise Blend'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Modules',\n dataId: NoiseSourceControlHandle.source,\n groupBy: 'dataId',\n maxConnections: 2,\n minConnections: 2\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.control,\n groupBy: 'dataId',\n connection: 'target',\n label: 'Control Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.output,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseBlendNodeContext>({\n shouldRun: (context) => {\n return (\n context.incoming[NoiseSourceControlHandle.source]?.length === 2 && !!context.incoming[NoiseSourceControlHandle.control]\n );\n },\n action: (context) => {\n const incomingSources = context.incoming[NoiseSourceControlHandle.source];\n const incomingControl = context.incoming[NoiseSourceControlHandle.control];\n\n if (context.computed?.module) {\n context.computed.module.controlModule = incomingControl.computed.module;\n context.computed.module.sourceModuleA = incomingSources[0].computed.module;\n context.computed.module.sourceModuleB = incomingSources[1].computed.module;\n } else {\n context.computed = {\n module: new Blend(\n incomingSources[0].computed.module,\n incomingSources[1].computed.module,\n incomingControl.computed.module\n )\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Select } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType, NoiseSourceControlHandle } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeSelectNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseSelectNodeContext = NodeContext<\n NodeSelectNoiseData,\n ComputedModuleData<Select>,\n {\n [NoiseSourceControlHandle.source]: NoiseModuleContext[];\n [NoiseSourceControlHandle.control]: NoiseModuleContext;\n }\n>;\n\nexport class NoiseSelectNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeSelectNoiseData> = {\n type: NoiseNodeType.noiseSelect,\n group: NoiseTemplateGroup.noiseSelectors,\n data: {\n title: 'Noise Select',\n edgeFalloff: 0.0,\n lowerBound: -1.0,\n upperBound: 1.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.source,\n groupBy: 'dataId',\n connection: 'target',\n label: 'Source Modules',\n maxConnections: 2,\n minConnections: 2\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.control,\n groupBy: 'dataId',\n connection: 'target',\n label: 'Control Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.output,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseSelectNodeContext>({\n shouldRun: (context) => {\n return (\n context.incoming[NoiseSourceControlHandle.source]?.length === 2 && !!context.incoming[NoiseSourceControlHandle.control]\n );\n },\n action: (context) => {\n const incomingSources = context.incoming[NoiseSourceControlHandle.source];\n const incomingControl = context.incoming[NoiseSourceControlHandle.control];\n\n if (context.computed?.module) {\n context.computed.module.controlModule = incomingControl.computed.module;\n context.computed.module.sourceModuleA = incomingSources[0].computed.module;\n context.computed.module.sourceModuleB = incomingSources[1].computed.module;\n context.computed.module.edgeFalloff = context.data.edgeFalloff;\n context.computed.module.lowerBound = context.data.lowerBound;\n context.computed.module.upperBound = context.data.upperBound;\n } else {\n context.computed = {\n module: new Select(\n incomingSources[0].computed.module,\n incomingSources[1].computed.module,\n incomingControl.computed.module,\n context.data.edgeFalloff,\n context.data.lowerBound,\n context.data.upperBound\n )\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { Displace } from 'libnoise-simplex-ts';\nimport { ComputedModuleData, NoiseModuleContext, NoiseTemplateGroup } from '../../abstract';\nimport { DisplacementHandle, DisplacementModuleHandle, NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseDisplaceNodeContext = NodeContext<\n BasicNodeData,\n ComputedModuleData<Displace>,\n {\n [DisplacementHandle.sourceModule]: NoiseModuleContext;\n [DisplacementHandle.xModule]: NoiseModuleContext;\n [DisplacementHandle.yModule]: NoiseModuleContext;\n [DisplacementHandle.zModule]: NoiseModuleContext;\n }\n>;\n\nexport class NoiseDisplaceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData, Omit<DisplacementModuleHandle, 'handleId'>> = {\n type: NoiseNodeType.noiseDisplace,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Displace'\n },\n handles: [\n {\n position: Position.Left,\n connection: 'target',\n label: 'Source Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.sourceModule,\n groupBy: 'dataId',\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'X Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.xModule,\n groupBy: 'dataId',\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'Y Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.yModule,\n groupBy: 'dataId',\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'Z Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.zModule,\n groupBy: 'dataId',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.output,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseDisplaceNodeContext>({\n shouldRun: (context) => {\n return (\n !!context.incoming[DisplacementHandle.sourceModule]?.computed?.module &&\n !!context.incoming[DisplacementHandle.xModule]?.computed?.module &&\n !!context.incoming[DisplacementHandle.yModule]?.computed?.module &&\n !!context.incoming[DisplacementHandle.zModule]?.computed?.module\n );\n },\n action: (context) => {\n const sourceModule = context.incoming[DisplacementHandle.sourceModule].computed.module;\n const xModule = context.incoming[DisplacementHandle.xModule].computed.module;\n const yModule = context.incoming[DisplacementHandle.yModule].computed.module;\n const zModule = context.incoming[DisplacementHandle.zModule].computed.module;\n\n const hasModules = !!sourceModule && !!xModule && !!yModule && !!zModule;\n\n if (context.computed?.module) {\n if (hasModules) {\n context.computed.module.sourceModule = sourceModule;\n context.computed.module.xModule = xModule;\n context.computed.module.yModule = yModule;\n context.computed.module.zModule = zModule;\n }\n } else {\n context.computed = {\n module: new Displace(sourceModule, xModule, yModule, zModule)\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { RotatePoint } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeRotatePointNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseRotatePointNodeContext = NodeContext<\n NodeRotatePointNoiseData,\n ComputedModuleData<RotatePoint>,\n {\n [NoiseHandleType.module]: NoiseModuleContext;\n }\n>;\n\nexport class NoiseRotatePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeRotatePointNoiseData> = {\n type: NoiseNodeType.noiseRotatePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Rotate Point',\n xAngle: 0.0,\n yAngle: 0.0,\n zAngle: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseRotatePointNodeContext>({\n shouldRun: (context) => {\n return !!context.incoming[NoiseHandleType.module]?.computed?.module;\n },\n action: (context) => {\n const sourceModule = context.incoming[NoiseHandleType.module].computed.module;\n const { xAngle, yAngle, zAngle } = context.data;\n\n if (context.computed?.module) {\n context.computed.module.sourceModule = sourceModule;\n context.computed.module.xAngle = xAngle;\n context.computed.module.yAngle = yAngle;\n context.computed.module.zAngle = zAngle;\n } else {\n context.computed = {\n module: new RotatePoint(sourceModule, xAngle, yAngle, zAngle)\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { ScalePoint } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeScalePointNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseScalePointNodeContext = NodeContext<\n NodeScalePointNoiseData,\n ComputedModuleData<ScalePoint>,\n {\n [NoiseHandleType.module]: NoiseModuleContext;\n }\n>;\n\nexport class NoiseScalePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeScalePointNoiseData> = {\n type: NoiseNodeType.noiseScalePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Scale Point',\n xScale: 1.0,\n yScale: 1.0,\n zScale: 1.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseScalePointNodeContext>({\n shouldRun: (context) => {\n return !!context.incoming[NoiseHandleType.module]?.computed?.module;\n },\n action: (context) => {\n const sourceModule = context.incoming[NoiseHandleType.module].computed.module;\n const { xScale, yScale, zScale } = context.data;\n\n if (context.computed?.module) {\n context.computed.module.sourceModule = sourceModule;\n context.computed.module.xScale = xScale;\n context.computed.module.yScale = yScale;\n context.computed.module.zScale = zScale;\n } else {\n context.computed = {\n module: new ScalePoint(sourceModule, xScale, yScale, zScale)\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { Position } from '@xyflow/system';\nimport { TranslatePoint } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { ComputedModuleData, NodeTranslatePointNoiseData, NoiseModuleContext } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport type NoiseTranslatePointNodeContext = NodeContext<\n NodeTranslatePointNoiseData,\n ComputedModuleData<TranslatePoint>,\n { [NoiseHandleType.module]: NoiseModuleContext }\n>;\n\nexport class NoiseTranslatePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTranslatePointNoiseData> = {\n type: NoiseNodeType.noiseTranslatePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Translate Point',\n translateX: 0.0,\n translateY: 0.0,\n translateZ: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create<NoiseTranslatePointNodeContext>({\n shouldRun: (context) => {\n return !!context.incoming[NoiseHandleType.module]?.computed?.module;\n },\n action: (context) => {\n const sourceModule = context.incoming[NoiseHandleType.module].computed.module;\n const { translateX, translateY, translateZ } = context.data;\n\n if (context.computed?.module) {\n context.computed.module.sourceModule = sourceModule;\n context.computed.module.translateX = translateX;\n context.computed.module.translateY = translateY;\n context.computed.module.translateZ = translateZ;\n } else {\n context.computed = {\n module: new TranslatePoint(sourceModule, translateX, translateY, translateZ)\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { PipelineFactory } from '@awesome-ecs/core/factories';\nimport { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { NodeContext } from '@awesome-flow/core/abstract/pipelines';\nimport { NodeVariablePropertyContext } from '@awesome-flow/core/templates';\nimport { Position } from '@xyflow/system';\nimport { Turbulence } from 'libnoise-simplex-ts';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport {\n ComputedModuleData,\n NodeTurbulenceNoiseData,\n NoiseGeneratorContext,\n NoiseModuleContext\n} from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { IncomingPropertyValueMiddleware } from '../../middleware/incoming-property-value';\n\nexport type NoiseTurbulenceNodeContext = NodeContext<\n NodeTurbulenceNoiseData,\n ComputedModuleData<Turbulence>,\n {\n [NoiseHandleType.module]: NoiseModuleContext;\n [CoreHandleType.variableProperty]: NodeVariablePropertyContext[];\n }\n> &\n NoiseGeneratorContext<NodeTurbulenceNoiseData>;\n\nexport class NoiseTurbulenceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTurbulenceNoiseData> = {\n type: NoiseNodeType.noiseTurbulence,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Turbulence',\n frequency: 1.0,\n power: 1.0,\n roughness: 1.0,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n label: 'Variable Properties',\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n\n readonly pipeline = PipelineFactory.create(new IncomingPropertyValueMiddleware(), {\n shouldRun: (context) => {\n return !!context.incoming[NoiseHandleType.module]?.computed?.module;\n },\n action: (context: NoiseTurbulenceNodeContext) => {\n const { properties } = context;\n const incoming = context.incoming[NoiseHandleType.module].computed.module;\n\n if (context.computed?.module) {\n context.computed.module.sourceModule = incoming;\n context.computed.module.frequency = properties.frequency;\n context.computed.module.power = properties.power;\n context.computed.module.roughness = properties.roughness;\n context.computed.module.seed = properties.seed;\n } else {\n context.computed = {\n module: new Turbulence(incoming, properties.frequency, properties.power, properties.roughness, properties.seed)\n };\n }\n },\n cleanup: (context) => {\n context.computed = null;\n }\n });\n}\n","import { ITemplateFactory } from '@awesome-flow/core/abstract';\nimport { NodeTypes } from '@xyflow/react';\nimport { ModuleGroupNode } from '../nodes';\nimport NoiseBillowNode from '../nodes/generators/noise-billow-node';\nimport NoiseCheckerboardNode from '../nodes/generators/noise-checkerboard-node';\nimport NoiseConstNode from '../nodes/generators/noise-const-node';\nimport NoiseCylindersNode from '../nodes/generators/noise-cylinders-node';\nimport NoisePerlinNode from '../nodes/generators/noise-perlin-node';\nimport NoiseRidgedMultiNode from '../nodes/generators/noise-ridgedmulti-node';\nimport NoiseSpheresNode from '../nodes/generators/noise-spheres-node';\nimport NoiseVoronoiNode from '../nodes/generators/noise-voronoi-node';\nimport PositionConstNode from '../nodes/generators/position-const-node';\nimport PositionGridNode from '../nodes/generators/position-grid-node';\nimport NoiseAbsNode from '../nodes/modifiers/noise-abs-node';\nimport NoiseClampNode from '../nodes/modifiers/noise-clamp-node';\nimport NoiseCombineNode from '../nodes/modifiers/noise-combine-node';\nimport NoiseCurveNode from '../nodes/modifiers/noise-curve-node';\nimport NoiseExponentNode from '../nodes/modifiers/noise-exponent-node';\nimport NoiseInvertNode from '../nodes/modifiers/noise-invert-node';\nimport NoiseNormalizeNode from '../nodes/modifiers/noise-normalize-node';\nimport NoiseScaleBiasNode from '../nodes/modifiers/noise-scale-bias-node';\nimport NoiseTerraceNode from '../nodes/modifiers/noise-terrace-node';\nimport NoiseLoggerNode from '../nodes/output/noise-logger-node';\nimport NoiseOutputNode from '../nodes/output/noise-output-node';\nimport NoiseTextureDataNode from '../nodes/output/noise-texture-data-node';\nimport PositionsLoggerNode from '../nodes/output/positions-logger-node';\nimport NoiseBlendNode from '../nodes/selectors/noise-blend-node';\nimport NoiseSelectNode from '../nodes/selectors/noise-select-node';\nimport NoiseDisplaceNode from '../nodes/transformers/noise-displace-node';\nimport NoiseRotatePointNode from '../nodes/transformers/noise-rotate-point-node';\nimport NoiseScalePointNode from '../nodes/transformers/noise-scale-point-node';\nimport NoiseTranslatePointNode from '../nodes/transformers/noise-translate-point-node';\nimport NoiseTurbulenceNode from '../nodes/transformers/noise-turbulence-node';\nimport { NoiseBillowNodeTemplateFactory } from '../templates/generators/noise-billow-template';\nimport { NoiseCheckerboardNodeTemplateFactory } from '../templates/generators/noise-checkerboard-template';\nimport { NoiseConstNodeTemplateFactory } from '../templates/generators/noise-const-template';\nimport { NoiseCylindersNodeTemplateFactory } from '../templates/generators/noise-cylinders-template';\nimport { NoisePerlinNodeTemplateFactory } from '../templates/generators/noise-perlin-template';\nimport { NoiseRidgedMultiNodeTemplateFactory } from '../templates/generators/noise-ridgedmulti-template';\nimport { NoiseSpheresNodeTemplateFactory } from '../templates/generators/noise-spheres-template';\nimport { NoiseVoronoiNodeTemplateFactory } from '../templates/generators/noise-voronoi-template';\nimport { PositionConstNodeTemplateFactory } from '../templates/generators/position-const-template';\nimport { PositionGridNodeTemplateFactory } from '../templates/generators/position-grid-template';\nimport { ModuleGroupNodeTemplateFactory } from '../templates/groups/module-group-template';\nimport { NoiseAbsNodeTemplateFactory } from '../templates/modifiers/noise-abs-template';\nimport { NoiseClampNodeTemplateFactory } from '../templates/modifiers/noise-clamp-template';\nimport { NoiseCombineNodeTemplateFactory } from '../templates/modifiers/noise-combine-template';\nimport { NoiseCurveNodeTemplateFactory } from '../templates/modifiers/noise-curve-template';\nimport { NoiseExponentNodeTemplateFactory } from '../templates/modifiers/noise-exponent-template';\nimport { NoiseInvertNodeTemplateFactory } from '../templates/modifiers/noise-invert-template';\nimport { NoiseNormalizeNodeTemplateFactory } from '../templates/modifiers/noise-normalize-template';\nimport { NoiseScaleBiasNodeTemplateFactory } from '../templates/modifiers/noise-scalebias-template';\nimport { NoiseTerraceNodeTemplateFactory } from '../templates/modifiers/noise-terrace-template';\nimport { NoiseLoggerNodeTemplateFactory } from '../templates/output/noise-logger-template';\nimport { NoiseOutputNodeTemplateFactory } from '../templates/output/noise-output-template';\nimport { NoiseTextureDataTemplateFactory } from '../templates/output/noise-texture-data-template';\nimport { PositionLoggerNodeTemplateFactory } from '../templates/output/position-logger-template';\nimport { NoiseBlendNodeTemplateFactory } from '../templates/selectors/noise-blend-template';\nimport { NoiseSelectNodeTemplateFactory } from '../templates/selectors/noise-select-template';\nimport { NoiseDisplaceNodeTemplateFactory } from '../templates/transformers/noise-displace-template';\nimport { NoiseRotatePointNodeTemplateFactory } from '../templates/transformers/noise-rotate-point-template';\nimport { NoiseScalePointNodeTemplateFactory } from '../templates/transformers/noise-scale-point-template';\nimport { NoiseTranslatePointNodeTemplateFactory } from '../templates/transformers/noise-translate-point-template';\nimport { NoiseTurbulenceNodeTemplateFactory } from '../templates/transformers/noise-turbulence-template';\n\nexport enum NoiseNodeType {\n position = 'position',\n grid = 'grid',\n textureData = 'texture-data',\n groupModule = 'group-module',\n positionLogger = 'position-logger',\n noiseLogger = 'noise-logger',\n noiseOutput = 'noise-output',\n noiseConst = 'noise-constant',\n noiseBillow = 'noise-billow',\n noiseCheckerboard = 'noise-checkerboard',\n noiseNormalize = 'noise-normalize',\n noiseCylinders = 'noise-cylinders',\n noisePerlin = 'noise-perlin',\n noiseRidgedMulti = 'noise-ridged-multi',\n noiseSpheres = 'noise-spheres',\n noiseVoronoi = 'noise-voronoi',\n noiseCombine = 'noise-combiner',\n noiseClamp = 'noise-clamp',\n noiseAbs = 'noise-abs',\n noiseCurve = 'noise-curve',\n noiseExponent = 'noise-exponent',\n noiseInvert = 'noise-invert',\n noiseScaleBias = 'noise-scale-bias',\n noiseTerrace = 'noise-terrace',\n noiseBlend = 'noise-blend',\n noiseSelect = 'noise-select',\n noiseDisplace = 'noise-displace',\n noiseRotatePoint = 'noise-rotate-point',\n noiseScalePoint = 'noise-scale-point',\n noiseTranslatePoint = 'noise-translate-point',\n noiseTurbulence = 'noise-turbulence'\n}\n\nexport const noiseNodeTypes = {\n [NoiseNodeType.groupModule]: ModuleGroupNode,\n [NoiseNodeType.position]: PositionConstNode,\n [NoiseNodeType.grid]: PositionGridNode,\n [NoiseNodeType.noiseOutput]: NoiseOutputNode,\n [NoiseNodeType.textureData]: NoiseTextureDataNode,\n [NoiseNodeType.noiseLogger]: NoiseLoggerNode,\n [NoiseNodeType.positionLogger]: PositionsLoggerNode,\n [NoiseNodeType.noiseConst]: NoiseConstNode,\n [NoiseNodeType.noiseBillow]: NoiseBillowNode,\n [NoiseNodeType.noiseCheckerboard]: NoiseCheckerboardNode,\n [NoiseNodeType.noiseCylinders]: NoiseCylindersNode,\n [NoiseNodeType.noisePerlin]: NoisePerlinNode,\n [NoiseNodeType.noiseRidgedMulti]: NoiseRidgedMultiNode,\n [NoiseNodeType.noiseSpheres]: NoiseSpheresNode,\n [NoiseNodeType.noiseVoronoi]: NoiseVoronoiNode,\n [NoiseNodeType.noiseCombine]: NoiseCombineNode,\n [NoiseNodeType.noiseClamp]: NoiseClampNode,\n [NoiseNodeType.noiseAbs]: NoiseAbsNode,\n [NoiseNodeType.noiseNormalize]: NoiseNormalizeNode,\n [NoiseNodeType.noiseCurve]: NoiseCurveNode,\n [NoiseNodeType.noiseExponent]: NoiseExponentNode,\n [NoiseNodeType.noiseInvert]: NoiseInvertNode,\n [NoiseNodeType.noiseScaleBias]: NoiseScaleBiasNode,\n [NoiseNodeType.noiseTerrace]: NoiseTerraceNode,\n [NoiseNodeType.noiseBlend]: NoiseBlendNode,\n [NoiseNodeType.noiseSelect]: NoiseSelectNode,\n [NoiseNodeType.noiseDisplace]: NoiseDisplaceNode,\n [NoiseNodeType.noiseRotatePoint]: NoiseRotatePointNode,\n [NoiseNodeType.noiseScalePoint]: NoiseScalePointNode,\n [NoiseNodeType.noiseTranslatePoint]: NoiseTranslatePointNode,\n [NoiseNodeType.noiseTurbulence]: NoiseTurbulenceNode\n} satisfies NodeTypes;\n\nexport const noiseNodeTemplates = {\n [NoiseNodeType.noiseOutput]: new NoiseOutputNodeTemplateFactory(),\n [NoiseNodeType.noiseBillow]: new NoiseBillowNodeTemplateFactory(),\n [NoiseNodeType.noiseCheckerboard]: new NoiseCheckerboardNodeTemplateFactory(),\n [NoiseNodeType.noiseNormalize]: new NoiseNormalizeNodeTemplateFactory(),\n [NoiseNodeType.noiseLogger]: new NoiseLoggerNodeTemplateFactory(),\n [NoiseNodeType.noiseConst]: new NoiseConstNodeTemplateFactory(),\n [NoiseNodeType.position]: new PositionConstNodeTemplateFactory(),\n [NoiseNodeType.positionLogger]: new PositionLoggerNodeTemplateFactory(),\n [NoiseNodeType.grid]: new PositionGridNodeTemplateFactory(),\n [NoiseNodeType.textureData]: new NoiseTextureDataTemplateFactory(),\n [NoiseNodeType.noiseCylinders]: new NoiseCylindersNodeTemplateFactory(),\n [NoiseNodeType.noisePerlin]: new NoisePerlinNodeTemplateFactory(),\n [NoiseNodeType.noiseRidgedMulti]: new NoiseRidgedMultiNodeTemplateFactory(),\n [NoiseNodeType.noiseSpheres]: new NoiseSpheresNodeTemplateFactory(),\n [NoiseNodeType.noiseVoronoi]: new NoiseVoronoiNodeTemplateFactory(),\n [NoiseNodeType.noiseCombine]: new NoiseCombineNodeTemplateFactory(),\n [NoiseNodeType.noiseClamp]: new NoiseClampNodeTemplateFactory(),\n [NoiseNodeType.noiseAbs]: new NoiseAbsNodeTemplateFactory(),\n [NoiseNodeType.noiseCurve]: new NoiseCurveNodeTemplateFactory(),\n [NoiseNodeType.noiseExponent]: new NoiseExponentNodeTemplateFactory(),\n [NoiseNodeType.noiseInvert]: new NoiseInvertNodeTemplateFactory(),\n [NoiseNodeType.noiseScaleBias]: new NoiseScaleBiasNodeTemplateFactory(),\n [NoiseNodeType.noiseTerrace]: new NoiseTerraceNodeTemplateFactory(),\n [NoiseNodeType.noiseBlend]: new NoiseBlendNodeTemplateFactory(),\n [NoiseNodeType.noiseSelect]: new NoiseSelectNodeTemplateFactory(),\n [NoiseNodeType.noiseDisplace]: new NoiseDisplaceNodeTemplateFactory(),\n [NoiseNodeType.noiseRotatePoint]: new NoiseRotatePointNodeTemplateFactory(),\n [NoiseNodeType.noiseScalePoint]: new NoiseScalePointNodeTemplateFactory(),\n [NoiseNodeType.noiseTranslatePoint]: new NoiseTranslatePointNodeTemplateFactory(),\n [NoiseNodeType.noiseTurbulence]: new NoiseTurbulenceNodeTemplateFactory(),\n [NoiseNodeType.groupModule]: new ModuleGroupNodeTemplateFactory()\n} satisfies Record<NoiseNodeType, ITemplateFactory>;\n"],"mappings":"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"}
@@ -11,7 +11,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
11
11
  let _awesome_flow_core_hooks = require("@awesome-flow/core/hooks");
12
12
  let _mantine_core = require("@mantine/core");
13
13
  let _awesome_flow_core_abstract = require("@awesome-flow/core/abstract");
14
- let _awesome_flow_core_factories = require("@awesome-flow/core/factories");
14
+ let _awesome_ecs_core_factories = require("@awesome-ecs/core/factories");
15
15
  let _awesome_flow_core_utils = require("@awesome-flow/core/utils");
16
16
  let _xyflow_system = require("@xyflow/system");
17
17
  let libnoise_simplex_ts = require("libnoise-simplex-ts");
@@ -190,7 +190,7 @@ var NoiseBillowNodeTemplateFactory = class {
190
190
  connection: "source"
191
191
  }]
192
192
  };
193
- pipeline = _awesome_flow_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
193
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
194
194
  action: (context) => {
195
195
  const { properties } = context;
196
196
  context.computed = { module: new libnoise_simplex_ts.Billow(properties.frequency, properties.lacunarity, properties.octaves, properties.persistence, properties.seed) };
@@ -214,7 +214,7 @@ var NoiseCheckerboardNodeTemplateFactory = class {
214
214
  connection: "source"
215
215
  }]
216
216
  };
217
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
217
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
218
218
  action: (context) => {
219
219
  context.computed = { module: new libnoise_simplex_ts.Checkerboard() };
220
220
  },
@@ -242,7 +242,7 @@ var NoiseConstNodeTemplateFactory = class {
242
242
  connection: "source"
243
243
  }]
244
244
  };
245
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
245
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
246
246
  shouldRun(context) {
247
247
  return context.data.noise !== void 0 && context.data.noise !== null;
248
248
  },
@@ -275,7 +275,7 @@ var NoiseCylindersNodeTemplateFactory = class {
275
275
  connection: "source"
276
276
  }]
277
277
  };
278
- pipeline = _awesome_flow_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
278
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
279
279
  action: (context) => {
280
280
  const { properties } = context;
281
281
  context.computed = { module: new libnoise_simplex_ts.Cylinders(properties.frequency) };
@@ -310,7 +310,7 @@ var NoisePerlinNodeTemplateFactory = class {
310
310
  connection: "source"
311
311
  }]
312
312
  };
313
- pipeline = _awesome_flow_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
313
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
314
314
  action: (context) => {
315
315
  const { properties } = context;
316
316
  context.computed = { module: new libnoise_simplex_ts.Perlin(properties.frequency, properties.lacunarity, properties.octaves, properties.persistence, properties.seed) };
@@ -346,7 +346,7 @@ var NoiseRidgedMultiNodeTemplateFactory = class {
346
346
  connection: "source"
347
347
  }]
348
348
  };
349
- pipeline = _awesome_flow_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
349
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
350
350
  action: (context) => {
351
351
  const { properties } = context;
352
352
  context.computed = { module: new libnoise_simplex_ts.RidgedMulti(properties.frequency, properties.lacunarity, properties.octaves, properties.offset, properties.gain, properties.seed) };
@@ -377,7 +377,7 @@ var NoiseSpheresNodeTemplateFactory = class {
377
377
  connection: "source"
378
378
  }]
379
379
  };
380
- pipeline = _awesome_flow_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
380
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
381
381
  action: (context) => {
382
382
  const { properties } = context;
383
383
  context.computed = { module: new libnoise_simplex_ts.Spheres(properties.frequency) };
@@ -411,7 +411,7 @@ var NoiseVoronoiNodeTemplateFactory = class {
411
411
  connection: "source"
412
412
  }]
413
413
  };
414
- pipeline = _awesome_flow_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
414
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
415
415
  action: (context) => {
416
416
  const { properties } = context;
417
417
  context.computed = { module: new libnoise_simplex_ts.Voronoi(properties.frequency, properties.displacement, properties.distance, properties.seed) };
@@ -442,7 +442,7 @@ var PositionConstNodeTemplateFactory = class {
442
442
  connection: "source"
443
443
  }]
444
444
  };
445
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
445
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
446
446
  shouldRun(context) {
447
447
  return context.data.position !== void 0 && context.data.position !== null;
448
448
  },
@@ -477,7 +477,7 @@ var PositionGridNodeTemplateFactory = class {
477
477
  connection: "source"
478
478
  }]
479
479
  };
480
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
480
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
481
481
  shouldRun(context) {
482
482
  const { center, radius } = context.data;
483
483
  return center !== void 0 && radius !== void 0;
@@ -530,7 +530,7 @@ var ModuleGroupNodeTemplateFactory = class {
530
530
  connection: "source"
531
531
  }]
532
532
  };
533
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
533
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
534
534
  shouldRun(context) {
535
535
  return !!context.incoming[NoiseHandleType.module];
536
536
  },
@@ -561,7 +561,7 @@ var NoiseAbsNodeTemplateFactory = class {
561
561
  connection: "source"
562
562
  }]
563
563
  };
564
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
564
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
565
565
  shouldRun(context) {
566
566
  return !!context.incoming[NoiseHandleType.module];
567
567
  },
@@ -598,7 +598,7 @@ var NoiseClampNodeTemplateFactory = class {
598
598
  connection: "source"
599
599
  }]
600
600
  };
601
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
601
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
602
602
  shouldRun(context) {
603
603
  return !!context.incoming[NoiseHandleType.module];
604
604
  },
@@ -659,7 +659,7 @@ var NoiseCombineNodeTemplateFactory = class {
659
659
  connection: "source"
660
660
  }]
661
661
  };
662
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
662
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
663
663
  shouldRun(context) {
664
664
  return context.incoming[NoiseHandleType.module]?.length === 2;
665
665
  },
@@ -695,7 +695,7 @@ var NoiseCurveNodeTemplateFactory = class {
695
695
  connection: "source"
696
696
  }]
697
697
  };
698
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
698
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
699
699
  shouldRun(context) {
700
700
  return !!context.incoming[NoiseHandleType.module];
701
701
  },
@@ -730,7 +730,7 @@ var NoiseExponentNodeTemplateFactory = class {
730
730
  connection: "source"
731
731
  }]
732
732
  };
733
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
733
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
734
734
  shouldRun(context) {
735
735
  return !!context.incoming[NoiseHandleType.module];
736
736
  },
@@ -763,7 +763,7 @@ var NoiseInvertNodeTemplateFactory = class {
763
763
  connection: "source"
764
764
  }]
765
765
  };
766
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
766
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
767
767
  shouldRun(context) {
768
768
  return !!context.incoming[NoiseHandleType.module];
769
769
  },
@@ -801,7 +801,7 @@ var NoiseNormalizeNodeTemplateFactory = class {
801
801
  connection: "source"
802
802
  }]
803
803
  };
804
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
804
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
805
805
  shouldRun(context) {
806
806
  return !!context.incoming[NoiseHandleType.module];
807
807
  },
@@ -837,7 +837,7 @@ var NoiseScaleBiasNodeTemplateFactory = class {
837
837
  connection: "source"
838
838
  }]
839
839
  };
840
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
840
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
841
841
  shouldRun(context) {
842
842
  return !!context.incoming[NoiseHandleType.module];
843
843
  },
@@ -876,7 +876,7 @@ var NoiseTerraceNodeTemplateFactory = class {
876
876
  connection: "source"
877
877
  }]
878
878
  };
879
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
879
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
880
880
  shouldRun(context) {
881
881
  return !!context.incoming[NoiseHandleType.module];
882
882
  },
@@ -931,7 +931,7 @@ var NoiseOutputNodeTemplateFactory = class {
931
931
  }
932
932
  ]
933
933
  };
934
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
934
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
935
935
  action: (context) => {
936
936
  const incomingPositions = context.incoming[NoiseHandleType.position];
937
937
  const incomingModule = context.incoming[NoiseHandleType.module];
@@ -975,7 +975,7 @@ var NoiseTextureDataTemplateFactory = class {
975
975
  connection: "source"
976
976
  }]
977
977
  };
978
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
978
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
979
979
  shouldRun: (context) => {
980
980
  return !!context.incoming[NoiseHandleType.noise]?.computed?.noise.length;
981
981
  },
@@ -1052,7 +1052,7 @@ var NoiseBlendNodeTemplateFactory = class {
1052
1052
  }
1053
1053
  ]
1054
1054
  };
1055
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
1055
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
1056
1056
  shouldRun: (context) => {
1057
1057
  return context.incoming[NoiseSourceControlHandle.source]?.length === 2 && !!context.incoming[NoiseSourceControlHandle.control];
1058
1058
  },
@@ -1111,7 +1111,7 @@ var NoiseSelectNodeTemplateFactory = class {
1111
1111
  }
1112
1112
  ]
1113
1113
  };
1114
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
1114
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
1115
1115
  shouldRun: (context) => {
1116
1116
  return context.incoming[NoiseSourceControlHandle.source]?.length === 2 && !!context.incoming[NoiseSourceControlHandle.control];
1117
1117
  },
@@ -1185,7 +1185,7 @@ var NoiseDisplaceNodeTemplateFactory = class {
1185
1185
  }
1186
1186
  ]
1187
1187
  };
1188
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
1188
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
1189
1189
  shouldRun: (context) => {
1190
1190
  return !!context.incoming[DisplacementHandle.sourceModule]?.computed?.module && !!context.incoming[DisplacementHandle.xModule]?.computed?.module && !!context.incoming[DisplacementHandle.yModule]?.computed?.module && !!context.incoming[DisplacementHandle.zModule]?.computed?.module;
1191
1191
  },
@@ -1234,7 +1234,7 @@ var NoiseRotatePointNodeTemplateFactory = class {
1234
1234
  connection: "source"
1235
1235
  }]
1236
1236
  };
1237
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
1237
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
1238
1238
  shouldRun: (context) => {
1239
1239
  return !!context.incoming[NoiseHandleType.module]?.computed?.module;
1240
1240
  },
@@ -1278,7 +1278,7 @@ var NoiseScalePointNodeTemplateFactory = class {
1278
1278
  connection: "source"
1279
1279
  }]
1280
1280
  };
1281
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
1281
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
1282
1282
  shouldRun: (context) => {
1283
1283
  return !!context.incoming[NoiseHandleType.module]?.computed?.module;
1284
1284
  },
@@ -1322,7 +1322,7 @@ var NoiseTranslatePointNodeTemplateFactory = class {
1322
1322
  connection: "source"
1323
1323
  }]
1324
1324
  };
1325
- pipeline = _awesome_flow_core_factories.PipelineFactory.create({
1325
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create({
1326
1326
  shouldRun: (context) => {
1327
1327
  return !!context.incoming[NoiseHandleType.module]?.computed?.module;
1328
1328
  },
@@ -1376,7 +1376,7 @@ var NoiseTurbulenceNodeTemplateFactory = class {
1376
1376
  }
1377
1377
  ]
1378
1378
  };
1379
- pipeline = _awesome_flow_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
1379
+ pipeline = _awesome_ecs_core_factories.PipelineFactory.create(new IncomingPropertyValueMiddleware(), {
1380
1380
  shouldRun: (context) => {
1381
1381
  return !!context.incoming[NoiseHandleType.module]?.computed?.module;
1382
1382
  },
@@ -1765,4 +1765,4 @@ Object.defineProperty(exports, 'positions_logger_node_default', {
1765
1765
  return positions_logger_node_default;
1766
1766
  }
1767
1767
  });
1768
- //# sourceMappingURL=abstract-3knbwDkz.cjs.map
1768
+ //# sourceMappingURL=abstract-ed4ZdB8H.cjs.map