@awesome-flow/noise 0.9.4 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/dist/abstract/index.cjs +7 -11
  2. package/dist/abstract/index.d.cts +4 -141
  3. package/dist/abstract/index.d.mts +4 -0
  4. package/dist/abstract/index.mjs +3 -0
  5. package/dist/abstract-3knbwDkz.cjs +1768 -0
  6. package/dist/abstract-3knbwDkz.cjs.map +1 -0
  7. package/dist/{abstract-Dhf_tSuO.js → abstract-DNmiw2MC.mjs} +562 -234
  8. package/dist/abstract-DNmiw2MC.mjs.map +1 -0
  9. package/dist/generators-BF_0y3pd.cjs +337 -0
  10. package/dist/generators-BF_0y3pd.cjs.map +1 -0
  11. package/dist/{generators-BzkwG_6g.js → generators-DSwgPqW2.mjs} +35 -110
  12. package/dist/generators-DSwgPqW2.mjs.map +1 -0
  13. package/dist/groups-BiuJL0DE.mjs +13 -0
  14. package/dist/groups-BiuJL0DE.mjs.map +1 -0
  15. package/dist/groups-DF2FTSBC.cjs +18 -0
  16. package/dist/groups-DF2FTSBC.cjs.map +1 -0
  17. package/dist/index-B09XEo3I.d.cts +496 -0
  18. package/dist/index-B09XEo3I.d.cts.map +1 -0
  19. package/dist/index-BGF1mgi8.d.mts +98 -0
  20. package/dist/index-BGF1mgi8.d.mts.map +1 -0
  21. package/dist/{modules/index.d.ts → index-BbHM1kxc.d.cts} +2 -5
  22. package/dist/index-BbHM1kxc.d.cts.map +1 -0
  23. package/dist/index-BgWB8f25.d.cts +53 -0
  24. package/dist/index-BgWB8f25.d.cts.map +1 -0
  25. package/dist/index-BhJiS2YS.d.mts +496 -0
  26. package/dist/index-BhJiS2YS.d.mts.map +1 -0
  27. package/dist/index-BwLhWefF.d.cts +43 -0
  28. package/dist/index-BwLhWefF.d.cts.map +1 -0
  29. package/dist/index-Bxg8IB-v.d.cts +26 -0
  30. package/dist/index-Bxg8IB-v.d.cts.map +1 -0
  31. package/dist/index-C0hF9uhX.d.mts +12 -0
  32. package/dist/index-C0hF9uhX.d.mts.map +1 -0
  33. package/dist/{index-Dun4VhYj.d.ts → index-CBvjQM3o.d.cts} +5 -4
  34. package/dist/index-CBvjQM3o.d.cts.map +1 -0
  35. package/dist/index-CDJdO0Cl.d.mts +11 -0
  36. package/dist/index-CDJdO0Cl.d.mts.map +1 -0
  37. package/dist/index-CiHIo5l6.d.cts +89 -0
  38. package/dist/index-CiHIo5l6.d.cts.map +1 -0
  39. package/dist/index-CkAu8Jje.d.mts +43 -0
  40. package/dist/index-CkAu8Jje.d.mts.map +1 -0
  41. package/dist/index-DQ5-4LVA.d.mts +26 -0
  42. package/dist/index-DQ5-4LVA.d.mts.map +1 -0
  43. package/dist/index-NvNXQIOG.d.mts +89 -0
  44. package/dist/index-NvNXQIOG.d.mts.map +1 -0
  45. package/dist/index-Rk69VHHb.d.cts +98 -0
  46. package/dist/index-Rk69VHHb.d.cts.map +1 -0
  47. package/dist/index-aAcFA6x8.d.mts +53 -0
  48. package/dist/index-aAcFA6x8.d.mts.map +1 -0
  49. package/dist/modifiers-BLV074OG.cjs +406 -0
  50. package/dist/modifiers-BLV074OG.cjs.map +1 -0
  51. package/dist/{modifiers-MSA4z6Gq.js → modifiers-I7YC0m3o.mjs} +72 -198
  52. package/dist/modifiers-I7YC0m3o.mjs.map +1 -0
  53. package/dist/module-group-template-CE4b0J24.d.cts +42 -0
  54. package/dist/module-group-template-CE4b0J24.d.cts.map +1 -0
  55. package/dist/module-group-template-D5doDEoa.d.mts +42 -0
  56. package/dist/module-group-template-D5doDEoa.d.mts.map +1 -0
  57. package/dist/modules/index.cjs +20 -2
  58. package/dist/modules/index.cjs.map +1 -0
  59. package/dist/modules/index.d.cts +2 -15
  60. package/dist/modules/index.d.mts +2 -0
  61. package/dist/{normalize-noise-module-CTxqByn9.js → modules/index.mjs} +1 -1
  62. package/dist/modules/index.mjs.map +1 -0
  63. package/dist/{node-props-76LXd76e.d.ts → node-props-CoXzPLD6.d.cts} +15 -13
  64. package/dist/node-props-CoXzPLD6.d.cts.map +1 -0
  65. package/dist/{node-props-D-fSg180.d.cts → node-props-GcUBDDY0.d.mts} +15 -13
  66. package/dist/node-props-GcUBDDY0.d.mts.map +1 -0
  67. package/dist/nodes/generators/index.cjs +2 -1
  68. package/dist/nodes/generators/index.d.cts +2 -3
  69. package/dist/nodes/generators/index.d.mts +2 -0
  70. package/dist/nodes/generators/{index.js → index.mjs} +1 -1
  71. package/dist/nodes/groups/index.cjs +2 -1
  72. package/dist/nodes/groups/index.d.cts +2 -2
  73. package/dist/nodes/groups/index.d.mts +2 -0
  74. package/dist/nodes/groups/index.mjs +3 -0
  75. package/dist/nodes/index.cjs +10 -9
  76. package/dist/nodes/index.d.cts +7 -9
  77. package/dist/nodes/index.d.mts +7 -0
  78. package/dist/nodes/index.mjs +8 -0
  79. package/dist/nodes/modifiers/index.cjs +2 -2
  80. package/dist/nodes/modifiers/index.d.cts +2 -3
  81. package/dist/nodes/modifiers/index.d.mts +2 -0
  82. package/dist/nodes/modifiers/index.mjs +3 -0
  83. package/dist/nodes/output/index.cjs +3 -7
  84. package/dist/nodes/output/index.d.cts +2 -2
  85. package/dist/nodes/output/index.d.mts +2 -0
  86. package/dist/nodes/output/index.mjs +3 -0
  87. package/dist/nodes/selectors/index.cjs +4 -8
  88. package/dist/nodes/selectors/index.d.cts +2 -3
  89. package/dist/nodes/selectors/index.d.mts +2 -0
  90. package/dist/nodes/selectors/index.mjs +3 -0
  91. package/dist/nodes/transformers/index.cjs +2 -1
  92. package/dist/nodes/transformers/index.d.cts +2 -3
  93. package/dist/nodes/transformers/index.d.mts +2 -0
  94. package/dist/nodes/transformers/index.mjs +3 -0
  95. package/dist/position-grid-template-Da_-z-NN.d.cts +79 -0
  96. package/dist/position-grid-template-Da_-z-NN.d.cts.map +1 -0
  97. package/dist/position-grid-template-FY_7BJcV.d.mts +79 -0
  98. package/dist/position-grid-template-FY_7BJcV.d.mts.map +1 -0
  99. package/dist/selectors-35pwVJ7Z.cjs +92 -0
  100. package/dist/selectors-35pwVJ7Z.cjs.map +1 -0
  101. package/dist/selectors-BHPJTidb.mjs +81 -0
  102. package/dist/selectors-BHPJTidb.mjs.map +1 -0
  103. package/dist/templates/generators/index.cjs +2 -7
  104. package/dist/templates/generators/index.d.cts +2 -4
  105. package/dist/templates/generators/index.d.mts +2 -0
  106. package/dist/templates/generators/index.mjs +3 -0
  107. package/dist/templates/groups/index.cjs +2 -7
  108. package/dist/templates/groups/index.d.cts +2 -3
  109. package/dist/templates/groups/index.d.mts +2 -0
  110. package/dist/templates/groups/index.mjs +3 -0
  111. package/dist/templates/index.cjs +9 -13
  112. package/dist/templates/index.d.cts +4 -14
  113. package/dist/templates/index.d.mts +4 -0
  114. package/dist/templates/index.mjs +9 -0
  115. package/dist/templates/modifiers/index.cjs +2 -7
  116. package/dist/templates/modifiers/index.d.cts +2 -4
  117. package/dist/templates/modifiers/index.d.mts +2 -0
  118. package/dist/templates/modifiers/index.mjs +3 -0
  119. package/dist/templates/output/index.cjs +3 -8
  120. package/dist/templates/output/index.d.cts +2 -3
  121. package/dist/templates/output/index.d.mts +2 -0
  122. package/dist/templates/output/index.mjs +3 -0
  123. package/dist/templates/selectors/index.cjs +2 -7
  124. package/dist/templates/selectors/index.d.cts +2 -4
  125. package/dist/templates/selectors/index.d.mts +2 -0
  126. package/dist/templates/selectors/index.mjs +3 -0
  127. package/dist/templates/transformers/index.cjs +2 -7
  128. package/dist/templates/transformers/index.d.cts +2 -4
  129. package/dist/templates/transformers/index.d.mts +2 -0
  130. package/dist/templates/transformers/index.mjs +3 -0
  131. package/dist/{transformers-Cpxm1ER8.js → transformers-D9B9IjR_.mjs} +11 -90
  132. package/dist/transformers-D9B9IjR_.mjs.map +1 -0
  133. package/dist/transformers-D9SfPky8.cjs +226 -0
  134. package/dist/transformers-D9SfPky8.cjs.map +1 -0
  135. package/package.json +26 -24
  136. package/dist/abstract/index.d.cts.map +0 -1
  137. package/dist/abstract/index.d.ts +0 -141
  138. package/dist/abstract/index.d.ts.map +0 -1
  139. package/dist/abstract/index.js +0 -8
  140. package/dist/abstract-Db8fFoLp.cjs +0 -1423
  141. package/dist/abstract-Db8fFoLp.cjs.map +0 -1
  142. package/dist/abstract-Dhf_tSuO.js.map +0 -1
  143. package/dist/chunk-CUT6urMc.cjs +0 -30
  144. package/dist/generators-BzkwG_6g.js.map +0 -1
  145. package/dist/generators-CEKtVh81.cjs +0 -0
  146. package/dist/generators-D3RjZdMN.cjs +0 -413
  147. package/dist/generators-D3RjZdMN.cjs.map +0 -1
  148. package/dist/generators-DUbGjGwn.js +0 -0
  149. package/dist/groups-7QhtZ7S3.js +0 -0
  150. package/dist/groups-BIS2AF5M.cjs +0 -32
  151. package/dist/groups-BIS2AF5M.cjs.map +0 -1
  152. package/dist/groups-CH_lk8Aw.js +0 -26
  153. package/dist/groups-CH_lk8Aw.js.map +0 -1
  154. package/dist/groups-_x04PMtP.cjs +0 -0
  155. package/dist/index-B5F3AfVc.d.ts +0 -1
  156. package/dist/index-B9liqMk7.d.cts +0 -106
  157. package/dist/index-B9liqMk7.d.cts.map +0 -1
  158. package/dist/index-BLREDRDJ.d.cts +0 -1
  159. package/dist/index-BQGb02a-.d.cts +0 -1
  160. package/dist/index-Be7jjS77.d.ts +0 -1
  161. package/dist/index-C2UIRuQU.d.ts +0 -56
  162. package/dist/index-C2UIRuQU.d.ts.map +0 -1
  163. package/dist/index-C7p7kRl6.d.ts +0 -106
  164. package/dist/index-C7p7kRl6.d.ts.map +0 -1
  165. package/dist/index-CLcwj8U0.d.ts +0 -1
  166. package/dist/index-CUPkUUOR.d.ts +0 -1
  167. package/dist/index-CdUm_2Oy.d.cts +0 -45
  168. package/dist/index-CdUm_2Oy.d.cts.map +0 -1
  169. package/dist/index-CnGot0Ls.d.ts +0 -26
  170. package/dist/index-CnGot0Ls.d.ts.map +0 -1
  171. package/dist/index-CtCMUyZA.d.cts +0 -1
  172. package/dist/index-DAwMsCZ3.d.ts +0 -1
  173. package/dist/index-DHPGVj1Q.d.cts +0 -56
  174. package/dist/index-DHPGVj1Q.d.cts.map +0 -1
  175. package/dist/index-DOvrmvAP.d.cts +0 -1
  176. package/dist/index-Dh6J9gb5.d.cts +0 -1
  177. package/dist/index-Dpmi5zcN.d.cts +0 -1
  178. package/dist/index-DsrVbQfJ.d.cts +0 -26
  179. package/dist/index-DsrVbQfJ.d.cts.map +0 -1
  180. package/dist/index-Dun4VhYj.d.ts.map +0 -1
  181. package/dist/index-Dyw_KDIi.d.ts +0 -45
  182. package/dist/index-Dyw_KDIi.d.ts.map +0 -1
  183. package/dist/index-I2m6W13H.d.ts +0 -1
  184. package/dist/index-QAtBiMxG.d.cts +0 -1
  185. package/dist/index-XpRnF8C9.d.cts +0 -98
  186. package/dist/index-XpRnF8C9.d.cts.map +0 -1
  187. package/dist/index-b3KxQSTX.d.ts +0 -98
  188. package/dist/index-b3KxQSTX.d.ts.map +0 -1
  189. package/dist/index-kr8Wk7v5.d.ts +0 -1
  190. package/dist/index-uyclP-_e.d.cts +0 -10
  191. package/dist/index-uyclP-_e.d.cts.map +0 -1
  192. package/dist/modifiers-BFuezug6.js +0 -0
  193. package/dist/modifiers-BPTSn-15.cjs +0 -0
  194. package/dist/modifiers-DU7AkD-K.cjs +0 -545
  195. package/dist/modifiers-DU7AkD-K.cjs.map +0 -1
  196. package/dist/modifiers-MSA4z6Gq.js.map +0 -1
  197. package/dist/module-group-template-evi7UU-G.d.ts +0 -12
  198. package/dist/module-group-template-evi7UU-G.d.ts.map +0 -1
  199. package/dist/module-group-template-hN1W1MZD.d.cts +0 -12
  200. package/dist/module-group-template-hN1W1MZD.d.cts.map +0 -1
  201. package/dist/modules/index.d.cts.map +0 -1
  202. package/dist/modules/index.d.ts.map +0 -1
  203. package/dist/modules/index.js +0 -3
  204. package/dist/node-props-76LXd76e.d.ts.map +0 -1
  205. package/dist/node-props-D-fSg180.d.cts.map +0 -1
  206. package/dist/nodes/generators/index.d.ts +0 -3
  207. package/dist/nodes/groups/index.d.ts +0 -2
  208. package/dist/nodes/groups/index.js +0 -3
  209. package/dist/nodes/index.d.ts +0 -9
  210. package/dist/nodes/index.js +0 -8
  211. package/dist/nodes/modifiers/index.d.ts +0 -3
  212. package/dist/nodes/modifiers/index.js +0 -4
  213. package/dist/nodes/output/index.d.ts +0 -2
  214. package/dist/nodes/output/index.js +0 -8
  215. package/dist/nodes/selectors/index.d.ts +0 -3
  216. package/dist/nodes/selectors/index.js +0 -8
  217. package/dist/nodes/transformers/index.d.ts +0 -3
  218. package/dist/nodes/transformers/index.js +0 -3
  219. package/dist/noise-select-template-BIc5lJ3B.d.ts +0 -20
  220. package/dist/noise-select-template-BIc5lJ3B.d.ts.map +0 -1
  221. package/dist/noise-select-template-DCaVwZ3-.d.cts +0 -20
  222. package/dist/noise-select-template-DCaVwZ3-.d.cts.map +0 -1
  223. package/dist/noise-terrace-template-0WFJalF_.d.cts +0 -69
  224. package/dist/noise-terrace-template-0WFJalF_.d.cts.map +0 -1
  225. package/dist/noise-terrace-template-li40jZuF.d.ts +0 -69
  226. package/dist/noise-terrace-template-li40jZuF.d.ts.map +0 -1
  227. package/dist/noise-turbulence-template-BhxPzE9y.d.ts +0 -68
  228. package/dist/noise-turbulence-template-BhxPzE9y.d.ts.map +0 -1
  229. package/dist/noise-turbulence-template-D1wvZo6-.d.cts +0 -68
  230. package/dist/noise-turbulence-template-D1wvZo6-.d.cts.map +0 -1
  231. package/dist/normalize-noise-module-CTxqByn9.js.map +0 -1
  232. package/dist/normalize-noise-module-U3fMmZRj.cjs +0 -26
  233. package/dist/normalize-noise-module-U3fMmZRj.cjs.map +0 -1
  234. package/dist/output-CsgQ-PfN.js +0 -0
  235. package/dist/output-DhHW36T8.cjs +0 -0
  236. package/dist/position-grid-template-B7YMhe83.d.cts +0 -76
  237. package/dist/position-grid-template-B7YMhe83.d.cts.map +0 -1
  238. package/dist/position-grid-template-QuIcXmat.d.ts +0 -76
  239. package/dist/position-grid-template-QuIcXmat.d.ts.map +0 -1
  240. package/dist/position-logger-template-Bj6c2m8v.d.ts +0 -33
  241. package/dist/position-logger-template-Bj6c2m8v.d.ts.map +0 -1
  242. package/dist/position-logger-template-DmcBLwwL.d.cts +0 -33
  243. package/dist/position-logger-template-DmcBLwwL.d.cts.map +0 -1
  244. package/dist/selectors-DOtoPc8O.cjs +0 -0
  245. package/dist/selectors-DPitHA56.js +0 -0
  246. package/dist/templates/generators/index.d.ts +0 -4
  247. package/dist/templates/generators/index.js +0 -9
  248. package/dist/templates/groups/index.d.ts +0 -3
  249. package/dist/templates/groups/index.js +0 -9
  250. package/dist/templates/index.d.ts +0 -14
  251. package/dist/templates/index.js +0 -14
  252. package/dist/templates/modifiers/index.d.ts +0 -4
  253. package/dist/templates/modifiers/index.js +0 -9
  254. package/dist/templates/output/index.d.ts +0 -3
  255. package/dist/templates/output/index.js +0 -9
  256. package/dist/templates/selectors/index.d.ts +0 -4
  257. package/dist/templates/selectors/index.js +0 -9
  258. package/dist/templates/transformers/index.d.ts +0 -4
  259. package/dist/templates/transformers/index.js +0 -9
  260. package/dist/transformers-C-NV_u9j.cjs +0 -324
  261. package/dist/transformers-C-NV_u9j.cjs.map +0 -1
  262. package/dist/transformers-CbfR4wDy.js +0 -0
  263. package/dist/transformers-Cpxm1ER8.js.map +0 -1
  264. package/dist/transformers-iRDXBonP.cjs +0 -0
@@ -1,9 +1,7 @@
1
- import { NormalizeNoiseModule } from "./normalize-noise-module-CTxqByn9.js";
2
- import { useIncomingComputedData, useUpdateNodeComputedData, useUpdateNodeData } from "@awesome-flow/core/hooks";
3
1
  import { NodeCombobox, NodeContainer } from "@awesome-flow/core/layout";
4
- import { Abs, Add, Clamp, Curve, Exponent, Invert, Max, Min, Multiply, Power, ScaleBias, Terrace, Tuple } from "libnoise-simplex-ts";
5
2
  import { memo, useCallback, useEffect, useMemo, useState } from "react";
6
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ import { useUpdateNodeData } from "@awesome-flow/core/hooks";
7
5
  import { ActionIcon, Button, Group, NumberInput, Space, Stack } from "@mantine/core";
8
6
  import { IconAsterisk, IconChevronLeft, IconChevronRight, IconChevronUp, IconPlus, IconX } from "@tabler/icons-react";
9
7
  import { NodeState } from "@awesome-flow/core/abstract";
@@ -12,18 +10,6 @@ import { randomId } from "@mantine/hooks";
12
10
 
13
11
  //#region src/nodes/modifiers/noise-abs-node.tsx
14
12
  function NoiseAbsNode({ id, selected, data, type }) {
15
- const incoming = useIncomingComputedData(id);
16
- const updateComputedData = useUpdateNodeComputedData();
17
- useEffect(() => {
18
- if (incoming?.length > 0) {
19
- const module = new Abs(incoming[0].module);
20
- updateComputedData(id, { module });
21
- }
22
- }, [
23
- incoming,
24
- id,
25
- updateComputedData
26
- ]);
27
13
  return /* @__PURE__ */ jsx(NodeContainer, {
28
14
  id,
29
15
  selected,
@@ -31,31 +17,23 @@ function NoiseAbsNode({ id, selected, data, type }) {
31
17
  type
32
18
  });
33
19
  }
34
- var noise_abs_node_default = NoiseAbsNode;
20
+ var noise_abs_node_default = memo(NoiseAbsNode);
35
21
 
36
22
  //#endregion
37
23
  //#region src/nodes/modifiers/noise-clamp-node.tsx
38
24
  function NoiseClampNode({ id, selected, data, type }) {
39
25
  const [lowerBound, setLowerBound] = useState(data.lowerBound);
40
26
  const [upperBound, setUpperBound] = useState(data.upperBound);
41
- const incoming = useIncomingComputedData(id);
42
27
  const updateNodeData = useUpdateNodeData();
43
- const updateComputedData = useUpdateNodeComputedData();
44
28
  useEffect(() => {
45
- if (incoming?.length) {
46
- const module = new Clamp(incoming[0].module, lowerBound, upperBound);
47
- updateComputedData(id, { module });
48
- }
49
29
  updateNodeData(id, {
50
30
  lowerBound,
51
31
  upperBound
52
32
  });
53
33
  }, [
54
- incoming,
55
34
  lowerBound,
56
35
  upperBound,
57
36
  id,
58
- updateComputedData,
59
37
  updateNodeData
60
38
  ]);
61
39
  return /* @__PURE__ */ jsx(NodeContainer, {
@@ -78,25 +56,7 @@ function NoiseClampNode({ id, selected, data, type }) {
78
56
  })] }) })
79
57
  });
80
58
  }
81
- var noise_clamp_node_default = NoiseClampNode;
82
-
83
- //#endregion
84
- //#region src/abstract/operations.ts
85
- let NoiseCombineType = /* @__PURE__ */ function(NoiseCombineType$1) {
86
- NoiseCombineType$1["add"] = "add";
87
- NoiseCombineType$1["max"] = "max";
88
- NoiseCombineType$1["min"] = "min";
89
- NoiseCombineType$1["multiply"] = "multiply";
90
- NoiseCombineType$1["power"] = "power";
91
- return NoiseCombineType$1;
92
- }({});
93
- const noiseCombineModuleMap = {
94
- [NoiseCombineType.add]: Add,
95
- [NoiseCombineType.max]: Max,
96
- [NoiseCombineType.min]: Min,
97
- [NoiseCombineType.multiply]: Multiply,
98
- [NoiseCombineType.power]: Power
99
- };
59
+ var noise_clamp_node_default = memo(NoiseClampNode);
100
60
 
101
61
  //#endregion
102
62
  //#region src/nodes/modifiers/noise-combine-node.tsx
@@ -109,20 +69,6 @@ const options = {
109
69
  };
110
70
  function NoiseCombineNode({ id, selected, data, type }) {
111
71
  const updateNodeData = useUpdateNodeData();
112
- const updateComputedData = useUpdateNodeComputedData();
113
- const incoming = useIncomingComputedData(id);
114
- useEffect(() => {
115
- const ModuleFactory = noiseCombineModuleMap[data.operation];
116
- if (incoming?.length > 1) {
117
- const module = new ModuleFactory(incoming[0].module, incoming[1].module);
118
- updateComputedData(id, { module });
119
- }
120
- }, [
121
- data.operation,
122
- incoming,
123
- id,
124
- updateComputedData
125
- ]);
126
72
  const onChange = useCallback((operation) => {
127
73
  updateNodeData(id, { operation });
128
74
  }, [id, updateNodeData]);
@@ -139,15 +85,12 @@ function NoiseCombineNode({ id, selected, data, type }) {
139
85
  })
140
86
  });
141
87
  }
142
- var noise_combine_node_default = NoiseCombineNode;
88
+ var noise_combine_node_default = memo(NoiseCombineNode);
143
89
 
144
90
  //#endregion
145
91
  //#region src/nodes/modifiers/noise-curve-node.tsx
146
92
  function NoiseCurveNode({ id, selected, data, type }) {
147
- const incoming = useIncomingComputedData(id);
148
93
  const updateNodeData = useUpdateNodeData();
149
- const updateComputedData = useUpdateNodeComputedData();
150
- const [values, setValues] = useState([]);
151
94
  const initialValues = useMemo(() => {
152
95
  return data.points?.length ? data.points.map((v) => ({
153
96
  input: v.input,
@@ -164,77 +107,65 @@ function NoiseCurveNode({ id, selected, data, type }) {
164
107
  key: randomId()
165
108
  }));
166
109
  }, [data.points]);
110
+ const [values, setValues] = useState(initialValues);
167
111
  const form = useForm({
168
112
  mode: "uncontrolled",
169
113
  initialValues: { points: initialValues },
170
114
  validateInputOnChange: [`points.${FORM_INDEX}.input`],
171
115
  clearInputErrorOnChange: true,
172
- validate: { points: { input: (value, values$1) => {
116
+ validate: { points: { input: (value, values) => {
173
117
  const counts = {};
174
- values$1.points.forEach((x) => {
118
+ values.points.forEach((x) => {
175
119
  counts[x.input] = (counts[x.input] || 0) + 1;
176
120
  });
177
121
  return counts[value] > 1;
178
122
  } } },
179
- onValuesChange: useCallback((values$1) => {
123
+ onValuesChange: useCallback((values) => {
180
124
  form.validate();
181
125
  if (form.isValid()) {
182
- const points = values$1.points.map((v) => ({
126
+ setValues(values.points);
127
+ updateNodeData(id, { points: values.points.map((v) => ({
183
128
  input: v.input,
184
129
  output: v.output
185
- }));
186
- setValues(points);
187
- updateNodeData(id, { points });
130
+ })) });
188
131
  }
189
132
  }, [id, updateNodeData])
190
133
  });
191
- useEffect(() => {
192
- if (incoming?.length && values?.length >= 4) {
193
- const module = new Curve(incoming[0].module, values.map((p) => new Tuple(p.input, p.output)));
194
- updateComputedData(id, { module });
195
- }
196
- }, [
197
- id,
198
- values,
199
- incoming,
200
- updateComputedData
201
- ]);
202
- const fields = useMemo(() => values.map((item, index) => /* @__PURE__ */ jsxs(Group, {
203
- mt: "xs",
204
- children: [
205
- /* @__PURE__ */ jsx(NumberInput, {
206
- size: "xs",
207
- w: 100,
208
- placeholder: "Input Value",
209
- ...form.getInputProps(`points.${index}.input`),
210
- step: .1
211
- }, form.key(`points.${index}.input`)),
212
- /* @__PURE__ */ jsx(NumberInput, {
213
- size: "xs",
214
- w: 100,
215
- placeholder: "Output Value",
216
- ...form.getInputProps(`points.${index}.output`),
217
- step: .1
218
- }, form.key(`points.${index}.output`)),
219
- data.state === NodeState.edit && values.length > 4 && /* @__PURE__ */ jsx(ActionIcon, {
220
- color: "red",
221
- variant: "outline",
222
- size: "sm",
223
- onClick: () => form.removeListItem("points", index),
224
- children: /* @__PURE__ */ jsx(IconX, { size: "1rem" })
225
- })
226
- ]
227
- }, item.key)), [
228
- data.state,
229
- values,
230
- form
231
- ]);
232
134
  return /* @__PURE__ */ jsxs(NodeContainer, {
233
135
  id,
234
136
  selected,
235
137
  type,
236
138
  data,
237
- children: [fields, data.state === NodeState.edit && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Space, { h: 10 }), /* @__PURE__ */ jsx(Button, {
139
+ children: [useMemo(() => values.map((item, index) => /* @__PURE__ */ jsxs(Group, {
140
+ mt: "xs",
141
+ children: [
142
+ /* @__PURE__ */ jsx(NumberInput, {
143
+ size: "xs",
144
+ w: 100,
145
+ placeholder: "Input Value",
146
+ ...form.getInputProps(`points.${index}.input`),
147
+ step: .1
148
+ }, form.key(`points.${index}.input`)),
149
+ /* @__PURE__ */ jsx(NumberInput, {
150
+ size: "xs",
151
+ w: 100,
152
+ placeholder: "Output Value",
153
+ ...form.getInputProps(`points.${index}.output`),
154
+ step: .1
155
+ }, form.key(`points.${index}.output`)),
156
+ data.state === NodeState.edit && values.length > 4 && /* @__PURE__ */ jsx(ActionIcon, {
157
+ color: "red",
158
+ variant: "outline",
159
+ size: "sm",
160
+ onClick: () => form.removeListItem("points", index),
161
+ children: /* @__PURE__ */ jsx(IconX, { size: "1rem" })
162
+ })
163
+ ]
164
+ }, item.key)), [
165
+ data.state,
166
+ values,
167
+ form
168
+ ]), data.state === NodeState.edit && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Space, { h: 10 }), /* @__PURE__ */ jsx(Button, {
238
169
  variant: "outline",
239
170
  size: "xs",
240
171
  fullWidth: true,
@@ -247,26 +178,18 @@ function NoiseCurveNode({ id, selected, data, type }) {
247
178
  })] })]
248
179
  });
249
180
  }
250
- var noise_curve_node_default = NoiseCurveNode;
181
+ var noise_curve_node_default = memo(NoiseCurveNode);
251
182
 
252
183
  //#endregion
253
184
  //#region src/nodes/modifiers/noise-exponent-node.tsx
254
185
  function NoiseExponentNode({ id, selected, data, type }) {
255
186
  const [exponent, setExponent] = useState(data.exponent);
256
- const incoming = useIncomingComputedData(id);
257
187
  const updateNodeData = useUpdateNodeData();
258
- const updateComputedData = useUpdateNodeComputedData();
259
188
  useEffect(() => {
260
- if (incoming?.length > 0) {
261
- const module = new Exponent(incoming[0].module, exponent);
262
- updateComputedData(id, { module });
263
- }
264
189
  updateNodeData(id, { exponent });
265
190
  }, [
266
191
  id,
267
- incoming,
268
192
  exponent,
269
- updateComputedData,
270
193
  updateNodeData
271
194
  ]);
272
195
  return /* @__PURE__ */ jsx(NodeContainer, {
@@ -282,23 +205,11 @@ function NoiseExponentNode({ id, selected, data, type }) {
282
205
  })] }) })
283
206
  });
284
207
  }
285
- var noise_exponent_node_default = NoiseExponentNode;
208
+ var noise_exponent_node_default = memo(NoiseExponentNode);
286
209
 
287
210
  //#endregion
288
211
  //#region src/nodes/modifiers/noise-invert-node.tsx
289
212
  function NoiseInvertNode({ id, selected, data, type }) {
290
- const incoming = useIncomingComputedData(id);
291
- const updateComputedData = useUpdateNodeComputedData();
292
- useEffect(() => {
293
- if (incoming?.length > 0) {
294
- const module = new Invert(incoming[0].module);
295
- updateComputedData(id, { module });
296
- }
297
- }, [
298
- id,
299
- incoming,
300
- updateComputedData
301
- ]);
302
213
  return /* @__PURE__ */ jsx(NodeContainer, {
303
214
  id,
304
215
  selected,
@@ -306,32 +217,23 @@ function NoiseInvertNode({ id, selected, data, type }) {
306
217
  type
307
218
  });
308
219
  }
309
- var noise_invert_node_default = NoiseInvertNode;
220
+ var noise_invert_node_default = memo(NoiseInvertNode);
310
221
 
311
222
  //#endregion
312
223
  //#region src/nodes/modifiers/noise-normalize-node.tsx
313
224
  function NoiseNormalizeNode({ id, selected, data, type }) {
314
225
  const [intervalStart, setIntervalStart] = useState(data.intervalStart);
315
226
  const [intervalEnd, setIntervalEnd] = useState(data.intervalEnd);
316
- const incoming = useIncomingComputedData(id);
317
227
  const updateNodeData = useUpdateNodeData();
318
- const updateComputedData = useUpdateNodeComputedData();
319
228
  useEffect(() => {
320
- if (incoming?.length) {
321
- const source = incoming[0].module;
322
- const module = new NormalizeNoiseModule(source, intervalStart, intervalEnd);
323
- updateComputedData(id, { module });
324
- }
325
229
  updateNodeData(id, {
326
230
  intervalStart,
327
231
  intervalEnd
328
232
  });
329
233
  }, [
330
234
  id,
331
- incoming,
332
235
  intervalStart,
333
236
  intervalEnd,
334
- updateComputedData,
335
237
  updateNodeData
336
238
  ]);
337
239
  return /* @__PURE__ */ jsx(NodeContainer, {
@@ -352,31 +254,23 @@ function NoiseNormalizeNode({ id, selected, data, type }) {
352
254
  })] }) })
353
255
  });
354
256
  }
355
- var noise_normalize_node_default = NoiseNormalizeNode;
257
+ var noise_normalize_node_default = memo(NoiseNormalizeNode);
356
258
 
357
259
  //#endregion
358
260
  //#region src/nodes/modifiers/noise-scale-bias-node.tsx
359
261
  function NoiseScaleBiasNode({ id, selected, data, type }) {
360
262
  const [scale, setScale] = useState(data.scale);
361
263
  const [bias, setBias] = useState(data.bias);
362
- const incoming = useIncomingComputedData(id);
363
264
  const updateNodeData = useUpdateNodeData();
364
- const updateComputedData = useUpdateNodeComputedData();
365
265
  useEffect(() => {
366
- if (incoming?.length > 0) {
367
- const module = new ScaleBias(incoming[0].module, scale, bias);
368
- updateComputedData(id, { module });
369
- }
370
266
  updateNodeData(id, {
371
267
  scale,
372
268
  bias
373
269
  });
374
270
  }, [
375
271
  id,
376
- incoming,
377
272
  scale,
378
273
  bias,
379
- updateComputedData,
380
274
  updateNodeData
381
275
  ]);
382
276
  return /* @__PURE__ */ jsx(NodeContainer, {
@@ -404,63 +298,43 @@ var noise_scale_bias_node_default = memo(NoiseScaleBiasNode);
404
298
  //#endregion
405
299
  //#region src/nodes/modifiers/noise-terrace-node.tsx
406
300
  function NoiseTerraceNode({ id, selected, data, type }) {
407
- const incoming = useIncomingComputedData(id);
408
301
  const updateNodeData = useUpdateNodeData();
409
- const updateComputedData = useUpdateNodeComputedData();
410
- const [values, setValues] = useState([]);
411
- const initialValues = useMemo(() => data.points?.length ? data.points.map((v) => ({
412
- value: v,
413
- key: randomId()
414
- })) : [1, 2].map(() => ({
415
- value: 0,
416
- key: randomId()
417
- })), [data.points]);
418
302
  const form = useForm({
419
303
  mode: "uncontrolled",
420
- initialValues: { points: initialValues },
304
+ initialValues: { points: useMemo(() => data.points?.length ? data.points.map((v) => ({
305
+ value: v,
306
+ key: randomId()
307
+ })) : [1, 2].map(() => ({
308
+ value: 0,
309
+ key: randomId()
310
+ })), [data.points]) },
421
311
  validateInputOnChange: [`points.${FORM_INDEX}.input`],
422
312
  clearInputErrorOnChange: true
423
313
  });
424
- form.watch("points", (values$1) => {
425
- if (form.isValid()) {
426
- const points = values$1.value.map((v) => v.value);
427
- setValues(points);
428
- updateNodeData(id, { points });
429
- }
314
+ form.watch("points", (values) => {
315
+ if (form.isValid()) updateNodeData(id, { points: values.value.map((v) => v.value) });
430
316
  form.validate();
431
317
  });
432
- useEffect(() => {
433
- if (incoming?.length && values?.length >= 2) {
434
- const module = new Terrace(incoming[0].module, values);
435
- updateComputedData(id, { module });
436
- }
437
- }, [
438
- id,
439
- values,
440
- incoming,
441
- updateComputedData
442
- ]);
443
- const fields = useMemo(() => form.values.points.map((_, index) => /* @__PURE__ */ jsxs(Group, {
444
- mt: "xs",
445
- children: [/* @__PURE__ */ jsx(NumberInput, {
446
- size: "xs",
447
- placeholder: "Input Value",
448
- ...form.getInputProps(`points.${index}.value`),
449
- step: .1
450
- }, form.key(`points.${index}.value`)), data.state === NodeState.edit && form.values.points.length > 2 && /* @__PURE__ */ jsx(ActionIcon, {
451
- color: "red",
452
- variant: "outline",
453
- size: "sm",
454
- onClick: () => form.removeListItem("points", index),
455
- children: /* @__PURE__ */ jsx(IconX, { size: "1rem" })
456
- })]
457
- }, index)), [form, data.state]);
458
318
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(NodeContainer, {
459
319
  id,
460
320
  selected,
461
321
  type,
462
322
  data,
463
- children: [fields, data.state === NodeState.edit && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Space, { h: 10 }), /* @__PURE__ */ jsx(Button, {
323
+ children: [useMemo(() => form.values.points.map((_, index) => /* @__PURE__ */ jsxs(Group, {
324
+ mt: "xs",
325
+ children: [/* @__PURE__ */ jsx(NumberInput, {
326
+ size: "xs",
327
+ placeholder: "Input Value",
328
+ ...form.getInputProps(`points.${index}.value`),
329
+ step: .1
330
+ }, form.key(`points.${index}.value`)), data.state === NodeState.edit && form.values.points.length > 2 && /* @__PURE__ */ jsx(ActionIcon, {
331
+ color: "red",
332
+ variant: "outline",
333
+ size: "sm",
334
+ onClick: () => form.removeListItem("points", index),
335
+ children: /* @__PURE__ */ jsx(IconX, { size: "1rem" })
336
+ })]
337
+ }, index)), [form, data.state]), data.state === NodeState.edit && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Space, { h: 10 }), /* @__PURE__ */ jsx(Button, {
464
338
  variant: "outline",
465
339
  size: "xs",
466
340
  fullWidth: true,
@@ -472,8 +346,8 @@ function NoiseTerraceNode({ id, selected, data, type }) {
472
346
  })] })]
473
347
  }) });
474
348
  }
475
- var noise_terrace_node_default = NoiseTerraceNode;
349
+ var noise_terrace_node_default = memo(NoiseTerraceNode);
476
350
 
477
351
  //#endregion
478
- export { NoiseCombineType, noiseCombineModuleMap, noise_abs_node_default, noise_clamp_node_default, noise_combine_node_default, noise_curve_node_default, noise_exponent_node_default, noise_invert_node_default, noise_normalize_node_default, noise_scale_bias_node_default, noise_terrace_node_default };
479
- //# sourceMappingURL=modifiers-MSA4z6Gq.js.map
352
+ export { noise_exponent_node_default as a, noise_clamp_node_default as c, noise_invert_node_default as i, noise_abs_node_default as l, noise_scale_bias_node_default as n, noise_curve_node_default as o, noise_normalize_node_default as r, noise_combine_node_default as s, noise_terrace_node_default as t };
353
+ //# sourceMappingURL=modifiers-I7YC0m3o.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifiers-I7YC0m3o.mjs","names":[],"sources":["../src/nodes/modifiers/noise-abs-node.tsx","../src/nodes/modifiers/noise-clamp-node.tsx","../src/nodes/modifiers/noise-combine-node.tsx","../src/nodes/modifiers/noise-curve-node.tsx","../src/nodes/modifiers/noise-exponent-node.tsx","../src/nodes/modifiers/noise-invert-node.tsx","../src/nodes/modifiers/noise-normalize-node.tsx","../src/nodes/modifiers/noise-scale-bias-node.tsx","../src/nodes/modifiers/noise-terrace-node.tsx"],"sourcesContent":["import { BasicNodeData } from '@awesome-flow/core/abstract';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo } from 'react';\r\n\r\nfunction NoiseAbsNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\r\n return <NodeContainer id={id} selected={selected} data={data} type={type} />;\r\n}\r\n\r\nexport default memo(NoiseAbsNode);\r\n","import { useUpdateNodeData } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Group, NumberInput, Stack } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo, useEffect, useState } from 'react';\r\nimport { NodeClampNoiseData } from '../../abstract/node-props';\r\n\r\nfunction NoiseClampNode({ id, selected, data, type }: NodeProps<Node<NodeClampNoiseData>>) {\r\n const [lowerBound, setLowerBound] = useState(data.lowerBound);\r\n const [upperBound, setUpperBound] = useState(data.upperBound);\r\n\r\n const updateNodeData = useUpdateNodeData<NodeClampNoiseData>();\r\n\r\n useEffect(() => {\r\n updateNodeData(id, { lowerBound, upperBound });\r\n }, [lowerBound, upperBound, id, updateNodeData]);\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <Stack>\r\n <Group>\r\n <NumberInput size=\"xs\" w={100} value={lowerBound} onChange={(e) => setLowerBound(Number(e))} step={0.1} />\r\n <NumberInput size=\"xs\" w={100} value={upperBound} onChange={(e) => setUpperBound(Number(e))} step={0.1} />\r\n </Group>\r\n </Stack>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseClampNode);\r\n","import { useUpdateNodeData } from '@awesome-flow/core/hooks';\r\nimport { NodeCombobox, NodeContainer } from '@awesome-flow/core/layout';\r\nimport { IconAsterisk, IconChevronLeft, IconChevronRight, IconChevronUp, IconPlus } from '@tabler/icons-react';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo, ReactNode, useCallback } from 'react';\r\nimport { NodeCombineNoiseData } from '../../abstract/node-props';\r\nimport { NoiseCombineType } from '../../abstract/operations';\r\n\r\nconst options: Record<NoiseCombineType, ReactNode | string> = {\r\n add: <IconPlus />,\r\n min: <IconChevronLeft />,\r\n max: <IconChevronRight />,\r\n multiply: <IconAsterisk />,\r\n power: <IconChevronUp />\r\n};\r\n\r\nfunction NoiseCombineNode({ id, selected, data, type }: NodeProps<Node<NodeCombineNoiseData>>) {\r\n const updateNodeData = useUpdateNodeData<NodeCombineNoiseData>();\r\n\r\n const onChange = useCallback(\r\n (operation: NoiseCombineType) => {\r\n updateNodeData(id, { operation });\r\n },\r\n [id, updateNodeData]\r\n );\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <NodeCombobox options={options} selected={data.operation} onChange={onChange} width={150} />\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseCombineNode);\r\n","import { NodeState } from '@awesome-flow/core/abstract';\r\nimport { useUpdateNodeData } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { ActionIcon, Button, Group, NumberInput, Space } from '@mantine/core';\r\nimport { FORM_INDEX, useForm } from '@mantine/form';\r\nimport { randomId } from '@mantine/hooks';\r\nimport { IconX } from '@tabler/icons-react';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo, useCallback, useMemo, useState } from 'react';\r\nimport { ControlPoint, NodeCurveNoiseData } from '../../abstract/node-props';\r\n\r\nfunction NoiseCurveNode({ id, selected, data, type }: NodeProps<Node<NodeCurveNoiseData>>) {\r\n const updateNodeData = useUpdateNodeData<NodeCurveNoiseData>();\r\n\r\n const initialValues = useMemo(() => {\r\n return data.points?.length\r\n ? data.points.map((v) => ({ input: v.input, output: v.output, key: randomId() }))\r\n : [1, 2, 3, 4].map(() => ({ input: 0, output: 0, key: randomId() }));\r\n }, [data.points]);\r\n\r\n const [values, setValues] = useState(initialValues);\r\n\r\n const form = useForm<{ points: (ControlPoint & { key: string })[] }>({\r\n mode: 'uncontrolled',\r\n initialValues: {\r\n points: initialValues\r\n },\r\n validateInputOnChange: [`points.${FORM_INDEX}.input`],\r\n clearInputErrorOnChange: true,\r\n validate: {\r\n points: {\r\n input: (value, values) => {\r\n const counts: Record<number, number> = {};\r\n\r\n values.points.forEach((x) => {\r\n counts[x.input] = (counts[x.input] || 0) + 1;\r\n });\r\n\r\n return counts[value] > 1;\r\n }\r\n }\r\n },\r\n onValuesChange: useCallback(\r\n (values) => {\r\n form.validate();\r\n\r\n if (form.isValid()) {\r\n setValues(values.points);\r\n updateNodeData(id, { points: values.points.map((v) => ({ input: v.input, output: v.output })) });\r\n }\r\n },\r\n // eslint-disable-next-line react-compiler/react-compiler\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [id, updateNodeData]\r\n )\r\n });\r\n\r\n const fields = useMemo(\r\n () =>\r\n values.map((item, index) => (\r\n <Group mt=\"xs\" key={item.key}>\r\n <NumberInput\r\n size=\"xs\"\r\n w={100}\r\n placeholder=\"Input Value\"\r\n key={form.key(`points.${index}.input`)}\r\n {...form.getInputProps(`points.${index}.input`)}\r\n step={0.1}\r\n />\r\n <NumberInput\r\n size=\"xs\"\r\n w={100}\r\n placeholder=\"Output Value\"\r\n key={form.key(`points.${index}.output`)}\r\n {...form.getInputProps(`points.${index}.output`)}\r\n step={0.1}\r\n />\r\n {data.state === NodeState.edit && values.length > 4 && (\r\n <ActionIcon color=\"red\" variant=\"outline\" size=\"sm\" onClick={() => form.removeListItem('points', index)}>\r\n <IconX size=\"1rem\" />\r\n </ActionIcon>\r\n )}\r\n </Group>\r\n )),\r\n [data.state, values, form]\r\n );\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} type={type} data={data}>\r\n {fields}\r\n {data.state === NodeState.edit && (\r\n <>\r\n <Space h={10} />\r\n <Button\r\n variant=\"outline\"\r\n size=\"xs\"\r\n fullWidth\r\n onClick={() => form.insertListItem('points', { input: 0, output: 0, key: randomId() })}\r\n >\r\n Add control point\r\n </Button>\r\n </>\r\n )}\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseCurveNode);\r\n","import { useUpdateNodeData } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Group, NumberInput, Stack } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo, useEffect, useState } from 'react';\r\nimport { NodeExponentNoiseData } from '../../abstract/node-props';\r\n\r\nfunction NoiseExponentNode({ id, selected, data, type }: NodeProps<Node<NodeExponentNoiseData>>) {\r\n const [exponent, setExponent] = useState(data.exponent);\r\n\r\n const updateNodeData = useUpdateNodeData<NodeExponentNoiseData>();\r\n\r\n useEffect(() => {\r\n updateNodeData(id, { exponent });\r\n }, [id, exponent, updateNodeData]);\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <Stack>\r\n <Group>\r\n Exponent:\r\n <NumberInput\r\n size=\"xs\"\r\n value={exponent}\r\n onChange={(e) => setExponent(Number(e))}\r\n step={0.1}\r\n // min={1}\r\n />\r\n </Group>\r\n </Stack>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseExponentNode);\r\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo } from 'react';\r\n\r\nfunction NoiseInvertNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\r\n return <NodeContainer id={id} selected={selected} data={data} type={type} />;\r\n}\r\n\r\nexport default memo(NoiseInvertNode);\r\n","import { useUpdateNodeData } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Group, NumberInput, Stack } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo, useEffect, useState } from 'react';\r\nimport { NodeNormalizeNoiseData } from '../../abstract/node-props';\r\n\r\nfunction NoiseNormalizeNode({ id, selected, data, type }: NodeProps<Node<NodeNormalizeNoiseData>>) {\r\n const [intervalStart, setIntervalStart] = useState(data.intervalStart);\r\n const [intervalEnd, setIntervalEnd] = useState(data.intervalEnd);\r\n\r\n const updateNodeData = useUpdateNodeData<NodeNormalizeNoiseData>();\r\n\r\n useEffect(() => {\r\n updateNodeData(id, { intervalStart, intervalEnd });\r\n }, [id, intervalStart, intervalEnd, updateNodeData]);\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <Stack>\r\n <Group>\r\n <NumberInput size=\"xs\" w={100} value={intervalStart} onChange={(e) => setIntervalStart(Number(e))} />\r\n <NumberInput size=\"xs\" w={100} value={intervalEnd} onChange={(e) => setIntervalEnd(Number(e))} />\r\n </Group>\r\n </Stack>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseNormalizeNode);\r\n","import { useUpdateNodeData } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { Group, NumberInput, Stack } from '@mantine/core';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo, useEffect, useState } from 'react';\r\nimport { NodeScaleBiasNoiseData } from '../../abstract/node-props';\r\n\r\nfunction NoiseScaleBiasNode({ id, selected, data, type }: NodeProps<Node<NodeScaleBiasNoiseData>>) {\r\n const [scale, setScale] = useState(data.scale);\r\n const [bias, setBias] = useState(data.bias);\r\n\r\n const updateNodeData = useUpdateNodeData<NodeScaleBiasNoiseData>();\r\n\r\n useEffect(() => {\r\n updateNodeData(id, { scale, bias });\r\n }, [id, scale, bias, updateNodeData]);\r\n\r\n return (\r\n <NodeContainer id={id} selected={selected} data={data} type={type}>\r\n <Stack>\r\n <Group>\r\n Scale:\r\n <NumberInput size=\"xs\" w={100} value={scale} onChange={(e) => setScale(Number(e))} step={0.1} />\r\n </Group>\r\n <Group>\r\n Bias:\r\n <NumberInput size=\"xs\" w={100} value={bias} onChange={(e) => setBias(Number(e))} step={0.1} />\r\n </Group>\r\n </Stack>\r\n </NodeContainer>\r\n );\r\n}\r\n\r\nexport default memo(NoiseScaleBiasNode);\r\n","import { NodeState } from '@awesome-flow/core/abstract';\r\nimport { useUpdateNodeData } from '@awesome-flow/core/hooks';\r\nimport { NodeContainer } from '@awesome-flow/core/layout';\r\nimport { ActionIcon, Button, Group, NumberInput, Space } from '@mantine/core';\r\nimport { FORM_INDEX, useForm } from '@mantine/form';\r\nimport { randomId } from '@mantine/hooks';\r\nimport { IconX } from '@tabler/icons-react';\r\nimport { Node, NodeProps } from '@xyflow/react';\r\nimport { memo, useMemo } from 'react';\r\nimport { NodeTerraceNoiseData } from '../../abstract/node-props';\r\n\r\nfunction NoiseTerraceNode({ id, selected, data, type }: NodeProps<Node<NodeTerraceNoiseData>>) {\r\n const updateNodeData = useUpdateNodeData<NodeTerraceNoiseData>();\r\n\r\n const initialValues = useMemo(\r\n () =>\r\n data.points?.length\r\n ? data.points.map((v) => ({ value: v, key: randomId() }))\r\n : [1, 2].map(() => ({ value: 0, key: randomId() })),\r\n [data.points]\r\n );\r\n\r\n const form = useForm<{ points: { value: number; key: string }[] }>({\r\n mode: 'uncontrolled',\r\n initialValues: {\r\n points: initialValues\r\n },\r\n validateInputOnChange: [`points.${FORM_INDEX}.input`],\r\n clearInputErrorOnChange: true\r\n });\r\n\r\n form.watch('points', (values) => {\r\n if (form.isValid()) {\r\n const points = values.value.map((v) => v.value);\r\n updateNodeData(id, { points });\r\n }\r\n\r\n form.validate();\r\n });\r\n\r\n const fields = useMemo(\r\n () =>\r\n form.values.points.map((_, index) => (\r\n <Group mt=\"xs\" key={index}>\r\n <NumberInput\r\n size=\"xs\"\r\n placeholder=\"Input Value\"\r\n key={form.key(`points.${index}.value`)}\r\n {...form.getInputProps(`points.${index}.value`)}\r\n step={0.1}\r\n />\r\n {data.state === NodeState.edit && form.values.points.length > 2 && (\r\n <ActionIcon color=\"red\" variant=\"outline\" size=\"sm\" onClick={() => form.removeListItem('points', index)}>\r\n <IconX size=\"1rem\" />\r\n </ActionIcon>\r\n )}\r\n </Group>\r\n )),\r\n [form, data.state]\r\n );\r\n\r\n return (\r\n <>\r\n <NodeContainer id={id} selected={selected} type={type} data={data}>\r\n {fields}\r\n {data.state === NodeState.edit && (\r\n <>\r\n <Space h={10} />\r\n <Button\r\n variant=\"outline\"\r\n size=\"xs\"\r\n fullWidth\r\n onClick={() => form.insertListItem('points', { value: 0, key: randomId() })}\r\n >\r\n Add control point\r\n </Button>\r\n </>\r\n )}\r\n </NodeContainer>\r\n </>\r\n );\r\n}\r\n\r\nexport default memo(NoiseTerraceNode);\r\n"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { BasicNodeData, CustomNodeHandle, ITemplateFactory, NodeTemplate } from "@awesome-flow/core/abstract";
2
+ import { IPipeline } from "@awesome-ecs/abstract/pipelines";
3
+ import { NodeContext as NodeContext$1 } from "@awesome-flow/core/abstract/pipelines";
4
+ import { ComputedModuleData, NoiseModuleContext } from "@awesome-flow/noise/abstract";
5
+
6
+ //#region src/abstract/handle-types.d.ts
7
+ declare enum NoiseHandleType {
8
+ textureData = "texture-data",
9
+ noise = "noise",
10
+ position = "position",
11
+ module = "module"
12
+ }
13
+ declare enum DisplacementHandle {
14
+ sourceModule = "source",
15
+ xModule = "x-module",
16
+ yModule = "y-module",
17
+ zModule = "z-module",
18
+ output = "output"
19
+ }
20
+ declare enum NoiseSourceControlHandle {
21
+ source = "source",
22
+ control = "control",
23
+ output = "output"
24
+ }
25
+ type DisplacementModuleHandle = CustomNodeHandle & {
26
+ dataId: DisplacementHandle;
27
+ };
28
+ type NoiseSourceControlModuleHandle = CustomNodeHandle & {
29
+ dataId: NoiseSourceControlHandle;
30
+ };
31
+ //#endregion
32
+ //#region src/templates/groups/module-group-template.d.ts
33
+ type ModuleGroupNodeContext = NodeContext$1<BasicNodeData, ComputedModuleData, {
34
+ [NoiseHandleType.module]: NoiseModuleContext;
35
+ }>;
36
+ declare class ModuleGroupNodeTemplateFactory implements ITemplateFactory {
37
+ readonly template: NodeTemplate<BasicNodeData>;
38
+ readonly pipeline?: IPipeline<ModuleGroupNodeContext>;
39
+ }
40
+ //#endregion
41
+ export { NoiseHandleType as a, DisplacementModuleHandle as i, ModuleGroupNodeTemplateFactory as n, NoiseSourceControlHandle as o, DisplacementHandle as r, NoiseSourceControlModuleHandle as s, ModuleGroupNodeContext as t };
42
+ //# sourceMappingURL=module-group-template-CE4b0J24.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-group-template-CE4b0J24.d.cts","names":[],"sources":["../src/abstract/handle-types.ts","../src/templates/groups/module-group-template.ts"],"mappings":";;;;;;aAEY,eAAA;EACV,WAAA;EACA,KAAA;EACA,QAAA;EACA,MAAA;AAAA;AAAA,aAGU,kBAAA;EACV,YAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,MAAA;AAAA;AAAA,aAGU,wBAAA;EACV,MAAA;EACA,OAAA;EACA,MAAA;AAAA;AAAA,KAGU,wBAAA,GAA2B,gBAAA;EACrC,MAAA,EAAQ,kBAAA;AAAA;AAAA,KAGE,8BAAA,GAAiC,gBAAA;EAC3C,MAAA,EAAQ,wBAAA;AAAA;;;KClBE,sBAAA,GAAyB,aAAA,CACnC,aAAA,EACA,kBAAA;EAAA,CACG,eAAA,CAAgB,MAAA,GAAS,kBAAA;AAAA;AAAA,cAGjB,8BAAA,YAA0C,gBAAA;EAAA,SAC5C,QAAA,EAAU,YAAA,CAAa,aAAA;EAAA,SAgCvB,QAAA,GAAW,SAAA,CAAU,sBAAA;AAAA"}
@@ -0,0 +1,42 @@
1
+ import { BasicNodeData, CustomNodeHandle, ITemplateFactory, NodeTemplate } from "@awesome-flow/core/abstract";
2
+ import { IPipeline } from "@awesome-ecs/abstract/pipelines";
3
+ import { NodeContext as NodeContext$1 } from "@awesome-flow/core/abstract/pipelines";
4
+ import { ComputedModuleData, NoiseModuleContext } from "@awesome-flow/noise/abstract";
5
+
6
+ //#region src/abstract/handle-types.d.ts
7
+ declare enum NoiseHandleType {
8
+ textureData = "texture-data",
9
+ noise = "noise",
10
+ position = "position",
11
+ module = "module"
12
+ }
13
+ declare enum DisplacementHandle {
14
+ sourceModule = "source",
15
+ xModule = "x-module",
16
+ yModule = "y-module",
17
+ zModule = "z-module",
18
+ output = "output"
19
+ }
20
+ declare enum NoiseSourceControlHandle {
21
+ source = "source",
22
+ control = "control",
23
+ output = "output"
24
+ }
25
+ type DisplacementModuleHandle = CustomNodeHandle & {
26
+ dataId: DisplacementHandle;
27
+ };
28
+ type NoiseSourceControlModuleHandle = CustomNodeHandle & {
29
+ dataId: NoiseSourceControlHandle;
30
+ };
31
+ //#endregion
32
+ //#region src/templates/groups/module-group-template.d.ts
33
+ type ModuleGroupNodeContext = NodeContext$1<BasicNodeData, ComputedModuleData, {
34
+ [NoiseHandleType.module]: NoiseModuleContext;
35
+ }>;
36
+ declare class ModuleGroupNodeTemplateFactory implements ITemplateFactory {
37
+ readonly template: NodeTemplate<BasicNodeData>;
38
+ readonly pipeline?: IPipeline<ModuleGroupNodeContext>;
39
+ }
40
+ //#endregion
41
+ export { NoiseHandleType as a, DisplacementModuleHandle as i, ModuleGroupNodeTemplateFactory as n, NoiseSourceControlHandle as o, DisplacementHandle as r, NoiseSourceControlModuleHandle as s, ModuleGroupNodeContext as t };
42
+ //# sourceMappingURL=module-group-template-D5doDEoa.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-group-template-D5doDEoa.d.mts","names":[],"sources":["../src/abstract/handle-types.ts","../src/templates/groups/module-group-template.ts"],"mappings":";;;;;;aAEY,eAAA;EACV,WAAA;EACA,KAAA;EACA,QAAA;EACA,MAAA;AAAA;AAAA,aAGU,kBAAA;EACV,YAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,MAAA;AAAA;AAAA,aAGU,wBAAA;EACV,MAAA;EACA,OAAA;EACA,MAAA;AAAA;AAAA,KAGU,wBAAA,GAA2B,gBAAA;EACrC,MAAA,EAAQ,kBAAA;AAAA;AAAA,KAGE,8BAAA,GAAiC,gBAAA;EAC3C,MAAA,EAAQ,wBAAA;AAAA;;;KClBE,sBAAA,GAAyB,aAAA,CACnC,aAAA,EACA,kBAAA;EAAA,CACG,eAAA,CAAgB,MAAA,GAAS,kBAAA;AAAA;AAAA,cAGjB,8BAAA,YAA0C,gBAAA;EAAA,SAC5C,QAAA,EAAU,YAAA,CAAa,aAAA;EAAA,SAgCvB,QAAA,GAAW,SAAA,CAAU,sBAAA;AAAA"}
@@ -1,3 +1,21 @@
1
- const require_normalize_noise_module = require('../normalize-noise-module-U3fMmZRj.cjs');
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ let libnoise_simplex_ts = require("libnoise-simplex-ts");
2
3
 
3
- exports.NormalizeNoiseModule = require_normalize_noise_module.NormalizeNoiseModule;
4
+ //#region src/modules/normalize-noise-module.ts
5
+ var NormalizeNoiseModule = class extends libnoise_simplex_ts.ModifierModule {
6
+ constructor(source, lowerBound, upperBound) {
7
+ super(source);
8
+ this.lowerBound = lowerBound;
9
+ this.upperBound = upperBound;
10
+ }
11
+ getValue(x, y, z) {
12
+ return normalize(this.sourceModule.getValue(x, y, z), this.lowerBound, this.upperBound);
13
+ }
14
+ };
15
+ function normalize(value, min, max) {
16
+ return (value - min) / (max - min);
17
+ }
18
+
19
+ //#endregion
20
+ exports.NormalizeNoiseModule = NormalizeNoiseModule;
21
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["ModifierModule"],"sources":["../../src/modules/normalize-noise-module.ts"],"sourcesContent":["import { ModifierModule, Module } from 'libnoise-simplex-ts';\n\nexport class NormalizeNoiseModule extends ModifierModule {\n constructor(\n source: Module,\n public lowerBound: number,\n public upperBound: number\n ) {\n super(source);\n }\n\n getValue(x: number, y: number, z: number): number {\n return normalize(this.sourceModule.getValue(x, y, z), this.lowerBound, this.upperBound);\n }\n}\n\nfunction normalize(value: number, min: number, max: number) {\n return (value - min) / (max - min);\n}\n"],"mappings":";;;;AAEA,IAAa,uBAAb,cAA0CA,mCAAe;CACvD,YACE,QACA,AAAO,YACP,AAAO,YACP;AACA,QAAM,OAAO;EAHN;EACA;;CAKT,SAAS,GAAW,GAAW,GAAmB;AAChD,SAAO,UAAU,KAAK,aAAa,SAAS,GAAG,GAAG,EAAE,EAAE,KAAK,YAAY,KAAK,WAAW;;;AAI3F,SAAS,UAAU,OAAe,KAAa,KAAa;AAC1D,SAAQ,QAAQ,QAAQ,MAAM"}
@@ -1,15 +1,2 @@
1
- import { ModifierModule, Module } from "libnoise-simplex-ts";
2
-
3
- //#region src/modules/normalize-noise-module.d.ts
4
- declare class NormalizeNoiseModule extends ModifierModule {
5
- lowerBound: number;
6
- upperBound: number;
7
- constructor(source: Module, lowerBound: number, upperBound: number);
8
- getValue(x: number, y: number, z: number): number;
9
- }
10
-
11
- //#endregion
12
- //# sourceMappingURL=normalize-noise-module.d.ts.map
13
-
14
- export { NormalizeNoiseModule };
15
- //# sourceMappingURL=index.d.cts.map
1
+ import { t as NormalizeNoiseModule } from "../index-BbHM1kxc.cjs";
2
+ export { NormalizeNoiseModule };
@@ -0,0 +1,2 @@
1
+ import { t as NormalizeNoiseModule } from "../index-C0hF9uhX.mjs";
2
+ export { NormalizeNoiseModule };
@@ -17,4 +17,4 @@ function normalize(value, min, max) {
17
17
 
18
18
  //#endregion
19
19
  export { NormalizeNoiseModule };
20
- //# sourceMappingURL=normalize-noise-module-CTxqByn9.js.map
20
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/modules/normalize-noise-module.ts"],"sourcesContent":["import { ModifierModule, Module } from 'libnoise-simplex-ts';\n\nexport class NormalizeNoiseModule extends ModifierModule {\n constructor(\n source: Module,\n public lowerBound: number,\n public upperBound: number\n ) {\n super(source);\n }\n\n getValue(x: number, y: number, z: number): number {\n return normalize(this.sourceModule.getValue(x, y, z), this.lowerBound, this.upperBound);\n }\n}\n\nfunction normalize(value: number, min: number, max: number) {\n return (value - min) / (max - min);\n}\n"],"mappings":";;;AAEA,IAAa,uBAAb,cAA0C,eAAe;CACvD,YACE,QACA,AAAO,YACP,AAAO,YACP;AACA,QAAM,OAAO;EAHN;EACA;;CAKT,SAAS,GAAW,GAAW,GAAmB;AAChD,SAAO,UAAU,KAAK,aAAa,SAAS,GAAG,GAAG,EAAE,EAAE,KAAK,YAAY,KAAK,WAAW;;;AAI3F,SAAS,UAAU,OAAe,KAAa,KAAa;AAC1D,SAAQ,QAAQ,QAAQ,MAAM"}