@babylonjs/core 7.51.0 → 7.51.2

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 (325) hide show
  1. package/Animations/animation.js +2 -1
  2. package/Animations/animation.js.map +1 -1
  3. package/Buffers/bufferUtils.d.ts +7 -5
  4. package/Buffers/bufferUtils.js +13 -9
  5. package/Buffers/bufferUtils.js.map +1 -1
  6. package/Engines/abstractEngine.js +2 -2
  7. package/Engines/abstractEngine.js.map +1 -1
  8. package/Engines/constants.d.ts +32 -0
  9. package/Engines/constants.js +33 -0
  10. package/Engines/constants.js.map +1 -1
  11. package/Engines/webgpuEngine.js +6 -3
  12. package/Engines/webgpuEngine.js.map +1 -1
  13. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.d.ts +148 -465
  14. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js +394 -691
  15. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js.map +1 -1
  16. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.d.ts +142 -0
  17. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.js +342 -0
  18. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.js.map +1 -0
  19. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.d.ts +107 -0
  20. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.js +130 -0
  21. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.js.map +1 -0
  22. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.d.ts +77 -0
  23. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js +139 -0
  24. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js.map +1 -0
  25. package/FlowGraph/Blocks/Data/Math/index.d.ts +3 -0
  26. package/FlowGraph/Blocks/Data/Math/index.js +3 -0
  27. package/FlowGraph/Blocks/Data/Math/index.js.map +1 -1
  28. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.d.ts +85 -0
  29. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.js +133 -0
  30. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.js.map +1 -0
  31. package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.d.ts +49 -0
  32. package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.js +71 -0
  33. package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.js.map +1 -0
  34. package/FlowGraph/Blocks/Data/Transformers/index.d.ts +2 -0
  35. package/FlowGraph/Blocks/Data/Transformers/index.js +3 -0
  36. package/FlowGraph/Blocks/Data/Transformers/index.js.map +1 -0
  37. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.d.ts +39 -0
  38. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.js +46 -0
  39. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.js.map +1 -0
  40. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.d.ts +35 -0
  41. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +34 -0
  42. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -0
  43. package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.d.ts +20 -0
  44. package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.js +25 -0
  45. package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.js.map +1 -0
  46. package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.d.ts +34 -0
  47. package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.js +35 -0
  48. package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.js.map +1 -0
  49. package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.d.ts +39 -0
  50. package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.js +42 -0
  51. package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.js.map +1 -0
  52. package/FlowGraph/Blocks/Data/Utils/index.d.ts +5 -0
  53. package/FlowGraph/Blocks/Data/Utils/index.js +6 -0
  54. package/FlowGraph/Blocks/Data/Utils/index.js.map +1 -0
  55. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.d.ts +0 -1
  56. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js +3 -2
  57. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js.map +1 -1
  58. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
  59. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +4 -4
  60. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  61. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.d.ts +6 -3
  62. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js +12 -6
  63. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js.map +1 -1
  64. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.d.ts +0 -2
  65. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js +2 -3
  66. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js.map +1 -1
  67. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.d.ts +5 -4
  68. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js +5 -4
  69. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js.map +1 -1
  70. package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.d.ts +62 -0
  71. package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.js +41 -0
  72. package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.js.map +1 -0
  73. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.d.ts +38 -33
  74. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js +42 -25
  75. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js.map +1 -1
  76. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.d.ts +11 -16
  77. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js +9 -17
  78. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js.map +1 -1
  79. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.d.ts +1 -1
  80. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js +1 -1
  81. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js.map +1 -1
  82. package/FlowGraph/Blocks/Data/{flowGraphCoordinateTransformBlock.d.ts → flowGraphTransformCoordinatesSystemBlock.d.ts} +1 -2
  83. package/FlowGraph/Blocks/Data/{flowGraphCoordinateTransformBlock.js → flowGraphTransformCoordinatesSystemBlock.js} +4 -5
  84. package/FlowGraph/Blocks/Data/flowGraphTransformCoordinatesSystemBlock.js.map +1 -0
  85. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.d.ts +1 -1
  86. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js +1 -1
  87. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js.map +1 -1
  88. package/FlowGraph/Blocks/Data/index.d.ts +7 -3
  89. package/FlowGraph/Blocks/Data/index.js +9 -4
  90. package/FlowGraph/Blocks/Data/index.js.map +1 -1
  91. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +45 -24
  92. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +45 -51
  93. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -1
  94. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.d.ts +61 -0
  95. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.js +39 -0
  96. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.js.map +1 -0
  97. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.d.ts +61 -0
  98. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.js +40 -0
  99. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.js.map +1 -0
  100. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.d.ts +12 -14
  101. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +19 -26
  102. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
  103. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +6 -12
  104. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +13 -24
  105. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -1
  106. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.d.ts +31 -7
  107. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js +22 -20
  108. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js.map +1 -1
  109. package/FlowGraph/Blocks/{Execution → Event}/flowGraphSendCustomEventBlock.d.ts +12 -7
  110. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.js +39 -0
  111. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.js.map +1 -0
  112. package/FlowGraph/Blocks/Event/index.d.ts +3 -0
  113. package/FlowGraph/Blocks/Event/index.js +3 -0
  114. package/FlowGraph/Blocks/Event/index.js.map +1 -1
  115. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.d.ts +44 -0
  116. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.js +46 -0
  117. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.js.map +1 -0
  118. package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.d.ts +60 -0
  119. package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.js +93 -0
  120. package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.js.map +1 -0
  121. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.d.ts +82 -0
  122. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.js +105 -0
  123. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.js.map +1 -0
  124. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.d.ts +2 -2
  125. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js +2 -2
  126. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js.map +1 -1
  127. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +40 -42
  128. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +116 -50
  129. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
  130. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.d.ts +12 -4
  131. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +86 -8
  132. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
  133. package/FlowGraph/Blocks/Execution/Animation/index.d.ts +3 -0
  134. package/FlowGraph/Blocks/Execution/Animation/index.js +3 -0
  135. package/FlowGraph/Blocks/Execution/Animation/index.js.map +1 -1
  136. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.d.ts +1 -2
  137. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js +3 -4
  138. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js.map +1 -1
  139. package/FlowGraph/Blocks/Execution/{Audio/flowGraphStopAudioBlock.d.ts → ControlFlow/flowGraphCancelDelayBlock.d.ts} +6 -8
  140. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js +31 -0
  141. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js.map +1 -0
  142. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.d.ts +2 -2
  143. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +5 -5
  144. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
  145. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.d.ts +0 -1
  146. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js +2 -3
  147. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js.map +1 -1
  148. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +5 -10
  149. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +11 -15
  150. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
  151. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.d.ts +11 -3
  152. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js +5 -6
  153. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js.map +1 -1
  154. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.d.ts +27 -7
  155. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +28 -30
  156. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
  157. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.d.ts +13 -16
  158. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js +50 -52
  159. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js.map +1 -1
  160. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.d.ts +8 -9
  161. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js +26 -13
  162. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js.map +1 -1
  163. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.d.ts +32 -0
  164. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js +84 -0
  165. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js.map +1 -0
  166. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.d.ts +20 -6
  167. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js +55 -16
  168. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js.map +1 -1
  169. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.d.ts +3 -4
  170. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +36 -13
  171. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
  172. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.d.ts +13 -5
  173. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js +22 -17
  174. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js.map +1 -1
  175. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.d.ts +12 -16
  176. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +21 -21
  177. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
  178. package/FlowGraph/Blocks/Execution/ControlFlow/index.d.ts +2 -1
  179. package/FlowGraph/Blocks/Execution/ControlFlow/index.js +2 -1
  180. package/FlowGraph/Blocks/Execution/ControlFlow/index.js.map +1 -1
  181. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.d.ts +4 -5
  182. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +13 -8
  183. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
  184. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +33 -36
  185. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +42 -26
  186. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
  187. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.d.ts +10 -25
  188. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +38 -24
  189. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
  190. package/FlowGraph/Blocks/Execution/index.d.ts +0 -3
  191. package/FlowGraph/Blocks/Execution/index.js +0 -3
  192. package/FlowGraph/Blocks/Execution/index.js.map +1 -1
  193. package/FlowGraph/Blocks/flowGraphBlockFactory.d.ts +16 -0
  194. package/FlowGraph/Blocks/flowGraphBlockFactory.js +292 -0
  195. package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -0
  196. package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +145 -0
  197. package/FlowGraph/Blocks/flowGraphBlockNames.js +147 -0
  198. package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -0
  199. package/FlowGraph/Blocks/index.d.ts +2 -0
  200. package/FlowGraph/Blocks/index.js +2 -0
  201. package/FlowGraph/Blocks/index.js.map +1 -1
  202. package/FlowGraph/{flowGraphInteger.d.ts → CustomTypes/flowGraphInteger.d.ts} +2 -3
  203. package/FlowGraph/{flowGraphInteger.js → CustomTypes/flowGraphInteger.js} +4 -5
  204. package/FlowGraph/CustomTypes/flowGraphInteger.js.map +1 -0
  205. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +196 -0
  206. package/FlowGraph/CustomTypes/flowGraphMatrix.js +272 -0
  207. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -0
  208. package/FlowGraph/CustomTypes/index.d.ts +2 -0
  209. package/FlowGraph/CustomTypes/index.js +3 -0
  210. package/FlowGraph/CustomTypes/index.js.map +1 -0
  211. package/FlowGraph/flowGraph.d.ts +29 -34
  212. package/FlowGraph/flowGraph.js +120 -104
  213. package/FlowGraph/flowGraph.js.map +1 -1
  214. package/FlowGraph/flowGraphAssetsContext.d.ts +29 -0
  215. package/FlowGraph/flowGraphAssetsContext.js +52 -0
  216. package/FlowGraph/flowGraphAssetsContext.js.map +1 -0
  217. package/FlowGraph/flowGraphAsyncExecutionBlock.d.ts +15 -8
  218. package/FlowGraph/flowGraphAsyncExecutionBlock.js +25 -5
  219. package/FlowGraph/flowGraphAsyncExecutionBlock.js.map +1 -1
  220. package/FlowGraph/flowGraphBlock.d.ts +22 -15
  221. package/FlowGraph/flowGraphBlock.js +31 -52
  222. package/FlowGraph/flowGraphBlock.js.map +1 -1
  223. package/FlowGraph/flowGraphConnection.d.ts +13 -12
  224. package/FlowGraph/flowGraphConnection.js +31 -16
  225. package/FlowGraph/flowGraphConnection.js.map +1 -1
  226. package/FlowGraph/flowGraphContext.d.ts +89 -13
  227. package/FlowGraph/flowGraphContext.js +210 -23
  228. package/FlowGraph/flowGraphContext.js.map +1 -1
  229. package/FlowGraph/flowGraphCoordinator.d.ts +4 -10
  230. package/FlowGraph/flowGraphCoordinator.js +4 -16
  231. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  232. package/FlowGraph/flowGraphDataConnection.d.ts +52 -14
  233. package/FlowGraph/flowGraphDataConnection.js +73 -26
  234. package/FlowGraph/flowGraphDataConnection.js.map +1 -1
  235. package/FlowGraph/flowGraphEventBlock.d.ts +17 -1
  236. package/FlowGraph/flowGraphEventBlock.js +13 -2
  237. package/FlowGraph/flowGraphEventBlock.js.map +1 -1
  238. package/FlowGraph/flowGraphEventType.d.ts +16 -0
  239. package/FlowGraph/flowGraphEventType.js +18 -0
  240. package/FlowGraph/flowGraphEventType.js.map +1 -0
  241. package/FlowGraph/flowGraphExecutionBlock.d.ts +11 -1
  242. package/FlowGraph/flowGraphExecutionBlock.js +21 -2
  243. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  244. package/FlowGraph/flowGraphExecutionBlockWithOutSignal.d.ts +2 -2
  245. package/FlowGraph/flowGraphExecutionBlockWithOutSignal.js +0 -1
  246. package/FlowGraph/flowGraphExecutionBlockWithOutSignal.js.map +1 -1
  247. package/FlowGraph/flowGraphLogger.d.ts +60 -0
  248. package/FlowGraph/flowGraphLogger.js +53 -0
  249. package/FlowGraph/flowGraphLogger.js.map +1 -0
  250. package/FlowGraph/flowGraphParser.d.ts +85 -0
  251. package/FlowGraph/flowGraphParser.js +271 -0
  252. package/FlowGraph/flowGraphParser.js.map +1 -0
  253. package/FlowGraph/flowGraphPathConverter.d.ts +1 -1
  254. package/FlowGraph/flowGraphPathConverter.js +3 -2
  255. package/FlowGraph/flowGraphPathConverter.js.map +1 -1
  256. package/FlowGraph/flowGraphPathConverterComponent.d.ts +8 -1
  257. package/FlowGraph/flowGraphPathConverterComponent.js +18 -2
  258. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  259. package/FlowGraph/flowGraphRichTypes.d.ts +51 -9
  260. package/FlowGraph/flowGraphRichTypes.js +160 -50
  261. package/FlowGraph/flowGraphRichTypes.js.map +1 -1
  262. package/FlowGraph/flowGraphSceneEventCoordinator.d.ts +45 -0
  263. package/FlowGraph/flowGraphSceneEventCoordinator.js +77 -0
  264. package/FlowGraph/flowGraphSceneEventCoordinator.js.map +1 -0
  265. package/FlowGraph/flowGraphSignalConnection.d.ts +8 -5
  266. package/FlowGraph/flowGraphSignalConnection.js +26 -9
  267. package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
  268. package/FlowGraph/index.d.ts +6 -1
  269. package/FlowGraph/index.js +7 -1
  270. package/FlowGraph/index.js.map +1 -1
  271. package/FlowGraph/serialization.d.ts +5 -2
  272. package/FlowGraph/serialization.js +94 -22
  273. package/FlowGraph/serialization.js.map +1 -1
  274. package/FlowGraph/typeDefinitions.d.ts +74 -12
  275. package/FlowGraph/typeDefinitions.js.map +1 -1
  276. package/FlowGraph/utils.d.ts +47 -0
  277. package/FlowGraph/utils.js +55 -0
  278. package/FlowGraph/utils.js.map +1 -1
  279. package/Maths/math.path.js +3 -0
  280. package/Maths/math.path.js.map +1 -1
  281. package/Meshes/geometry.d.ts +2 -1
  282. package/Meshes/geometry.js +8 -3
  283. package/Meshes/geometry.js.map +1 -1
  284. package/Meshes/mesh.d.ts +2 -1
  285. package/Meshes/mesh.js +3 -2
  286. package/Meshes/mesh.js.map +1 -1
  287. package/Misc/sceneOptimizer.js +1 -0
  288. package/Misc/sceneOptimizer.js.map +1 -1
  289. package/Misc/screenshotTools.d.ts +4 -2
  290. package/Misc/screenshotTools.js +8 -5
  291. package/Misc/screenshotTools.js.map +1 -1
  292. package/ObjectModel/objectModelInterfaces.d.ts +2 -2
  293. package/ObjectModel/objectModelInterfaces.js.map +1 -1
  294. package/Physics/v2/characterController.d.ts +8 -0
  295. package/Physics/v2/characterController.js +12 -5
  296. package/Physics/v2/characterController.js.map +1 -1
  297. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
  298. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  299. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +1 -1
  300. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  301. package/package.json +1 -1
  302. package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.d.ts +0 -24
  303. package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.js +0 -39
  304. package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.js.map +0 -1
  305. package/FlowGraph/Blocks/Data/Logic/index.d.ts +0 -1
  306. package/FlowGraph/Blocks/Data/Logic/index.js +0 -2
  307. package/FlowGraph/Blocks/Data/Logic/index.js.map +0 -1
  308. package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js.map +0 -1
  309. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.d.ts +0 -19
  310. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js +0 -26
  311. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js.map +0 -1
  312. package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js +0 -25
  313. package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js.map +0 -1
  314. package/FlowGraph/Blocks/Execution/Audio/index.d.ts +0 -2
  315. package/FlowGraph/Blocks/Execution/Audio/index.js +0 -3
  316. package/FlowGraph/Blocks/Execution/Audio/index.js.map +0 -1
  317. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.d.ts +0 -31
  318. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js +0 -69
  319. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js.map +0 -1
  320. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +0 -38
  321. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +0 -1
  322. package/FlowGraph/flowGraphContextLogger.d.ts +0 -9
  323. package/FlowGraph/flowGraphContextLogger.js +0 -14
  324. package/FlowGraph/flowGraphContextLogger.js.map +0 -1
  325. package/FlowGraph/flowGraphInteger.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ import type { FlowGraphContext } from "../../flowGraphContext.js";
2
+ import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
3
+ import { FlowGraphEventType } from "../../flowGraphEventType.js";
4
+ import { FlowGraphBlockNames } from "../flowGraphBlockNames";
5
+ import type { AbstractMesh } from "../../../Meshes/abstractMesh.js";
6
+ import type { FlowGraphDataConnection } from "../../flowGraphDataConnection.js";
7
+ import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock.js";
8
+ /**
9
+ * Configuration for the pointer out event block.
10
+ */
11
+ export interface IFlowGraphPointerOutEventBlockConfiguration extends IFlowGraphBlockConfiguration {
12
+ /**
13
+ * Should this mesh block propagation of the event.
14
+ */
15
+ stopPropagation?: boolean;
16
+ /**
17
+ * The mesh to listen to. Can also be set by the asset input.
18
+ */
19
+ targetMesh?: AbstractMesh;
20
+ }
21
+ /**
22
+ * Payload for the pointer out event.
23
+ */
24
+ export interface IFlowGraphPointerOutEventPayload {
25
+ /**
26
+ * The pointer id.
27
+ */
28
+ pointerId: number;
29
+ /**
30
+ * The mesh that was picked.
31
+ */
32
+ mesh: AbstractMesh;
33
+ /**
34
+ * If populated, the hover event moved to this mesh from the `mesh` variable
35
+ */
36
+ over?: AbstractMesh;
37
+ }
38
+ /**
39
+ * A pointe out event block.
40
+ * This block can be used as an entry pointer to when a pointer is out of a specific target mesh.
41
+ */
42
+ export declare class FlowGraphPointerOutEventBlock extends FlowGraphEventBlock {
43
+ /**
44
+ * Output connection: The pointer id.
45
+ */
46
+ readonly pointerId: FlowGraphDataConnection<number>;
47
+ /**
48
+ * Input connection: The mesh to listen to.
49
+ */
50
+ readonly targetMesh: FlowGraphDataConnection<AbstractMesh>;
51
+ /**
52
+ * Output connection: The mesh that the pointer is out of.
53
+ */
54
+ readonly meshOutOfPointer: FlowGraphDataConnection<AbstractMesh>;
55
+ readonly type: FlowGraphEventType;
56
+ constructor(config?: IFlowGraphPointerOutEventBlockConfiguration);
57
+ _executeEvent(context: FlowGraphContext, payload: IFlowGraphPointerOutEventPayload): boolean;
58
+ _preparePendingTasks(_context: FlowGraphContext): void;
59
+ _cancelPendingTasks(_context: FlowGraphContext): void;
60
+ getClassName(): FlowGraphBlockNames;
61
+ }
@@ -0,0 +1,39 @@
1
+ import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
2
+ import { RichTypeAny, RichTypeNumber } from "../../flowGraphRichTypes.js";
3
+ import { RegisterClass } from "../../../Misc/typeStore.js";
4
+ import { _isADescendantOf } from "../../utils.js";
5
+ /**
6
+ * A pointe out event block.
7
+ * This block can be used as an entry pointer to when a pointer is out of a specific target mesh.
8
+ */
9
+ export class FlowGraphPointerOutEventBlock extends FlowGraphEventBlock {
10
+ constructor(config) {
11
+ super(config);
12
+ this.type = "PointerOut" /* FlowGraphEventType.PointerOut */;
13
+ this.pointerId = this.registerDataOutput("pointerId", RichTypeNumber);
14
+ this.targetMesh = this.registerDataInput("targetMesh", RichTypeAny, config?.targetMesh);
15
+ this.meshOutOfPointer = this.registerDataOutput("meshOutOfPointer", RichTypeAny);
16
+ }
17
+ _executeEvent(context, payload) {
18
+ const mesh = this.targetMesh.getValue(context);
19
+ this.meshOutOfPointer.setValue(payload.mesh, context);
20
+ this.pointerId.setValue(payload.pointerId, context);
21
+ const skipEvent = payload.over && _isADescendantOf(payload.mesh, mesh);
22
+ if (!skipEvent && (payload.mesh === mesh || _isADescendantOf(payload.mesh, mesh))) {
23
+ this._execute(context);
24
+ return !this.config?.stopPropagation;
25
+ }
26
+ return true;
27
+ }
28
+ _preparePendingTasks(_context) {
29
+ // no-op
30
+ }
31
+ _cancelPendingTasks(_context) {
32
+ // no-op
33
+ }
34
+ getClassName() {
35
+ return "FlowGraphPointerOutEventBlock" /* FlowGraphBlockNames.PointerOutEvent */;
36
+ }
37
+ }
38
+ RegisterClass("FlowGraphPointerOutEventBlock" /* FlowGraphBlockNames.PointerOutEvent */, FlowGraphPointerOutEventBlock);
39
+ //# sourceMappingURL=flowGraphPointerOutEventBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowGraphPointerOutEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,qCAA2C;AAMzE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,oCAA0C;AAChF,OAAO,EAAE,aAAa,EAAE,mCAA4B;AACpD,OAAO,EAAE,gBAAgB,EAAE,uBAA6B;AAoCxD;;;GAGG;AACH,MAAM,OAAO,6BAA8B,SAAQ,mBAAmB;IAkBlE,YAAmB,MAAoD;QACnE,KAAK,CAAC,MAAM,CAAC,CAAC;QAHO,SAAI,oDAAqD;QAI9E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACxF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAEe,aAAa,CAAC,OAAyB,EAAE,OAAyC;QAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACe,oBAAoB,CAAC,QAA0B;QAC3D,QAAQ;IACZ,CAAC;IACe,mBAAmB,CAAC,QAA0B;QAC1D,QAAQ;IACZ,CAAC;IACe,YAAY;QACxB,iFAA2C;IAC/C,CAAC;CACJ;AAED,aAAa,4EAAsC,6BAA6B,CAAC,CAAC","sourcesContent":["import type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\nimport { FlowGraphEventBlock } from \"core/FlowGraph/flowGraphEventBlock\";\nimport { FlowGraphEventType } from \"core/FlowGraph/flowGraphEventType\";\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\nimport type { FlowGraphDataConnection } from \"core/FlowGraph/flowGraphDataConnection\";\nimport type { IFlowGraphBlockConfiguration } from \"core/FlowGraph/flowGraphBlock\";\nimport { RichTypeAny, RichTypeNumber } from \"core/FlowGraph/flowGraphRichTypes\";\nimport { RegisterClass } from \"core/Misc/typeStore\";\nimport { _isADescendantOf } from \"core/FlowGraph/utils\";\n\n/**\n * Configuration for the pointer out event block.\n */\nexport interface IFlowGraphPointerOutEventBlockConfiguration extends IFlowGraphBlockConfiguration {\n /**\n * Should this mesh block propagation of the event.\n */\n stopPropagation?: boolean;\n\n /**\n * The mesh to listen to. Can also be set by the asset input.\n */\n targetMesh?: AbstractMesh;\n}\n\n/**\n * Payload for the pointer out event.\n */\nexport interface IFlowGraphPointerOutEventPayload {\n /**\n * The pointer id.\n */\n pointerId: number;\n /**\n * The mesh that was picked.\n */\n mesh: AbstractMesh;\n\n /**\n * If populated, the hover event moved to this mesh from the `mesh` variable\n */\n over?: AbstractMesh;\n}\n\n/**\n * A pointe out event block.\n * This block can be used as an entry pointer to when a pointer is out of a specific target mesh.\n */\nexport class FlowGraphPointerOutEventBlock extends FlowGraphEventBlock {\n /**\n * Output connection: The pointer id.\n */\n public readonly pointerId: FlowGraphDataConnection<number>;\n\n /**\n * Input connection: The mesh to listen to.\n */\n public readonly targetMesh: FlowGraphDataConnection<AbstractMesh>;\n\n /**\n * Output connection: The mesh that the pointer is out of.\n */\n public readonly meshOutOfPointer: FlowGraphDataConnection<AbstractMesh>;\n\n public override readonly type: FlowGraphEventType = FlowGraphEventType.PointerOut;\n\n public constructor(config?: IFlowGraphPointerOutEventBlockConfiguration) {\n super(config);\n this.pointerId = this.registerDataOutput(\"pointerId\", RichTypeNumber);\n this.targetMesh = this.registerDataInput(\"targetMesh\", RichTypeAny, config?.targetMesh);\n this.meshOutOfPointer = this.registerDataOutput(\"meshOutOfPointer\", RichTypeAny);\n }\n\n public override _executeEvent(context: FlowGraphContext, payload: IFlowGraphPointerOutEventPayload): boolean {\n const mesh = this.targetMesh.getValue(context);\n this.meshOutOfPointer.setValue(payload.mesh, context);\n this.pointerId.setValue(payload.pointerId, context);\n const skipEvent = payload.over && _isADescendantOf(payload.mesh, mesh);\n if (!skipEvent && (payload.mesh === mesh || _isADescendantOf(payload.mesh, mesh))) {\n this._execute(context);\n return !this.config?.stopPropagation;\n }\n return true;\n }\n public override _preparePendingTasks(_context: FlowGraphContext): void {\n // no-op\n }\n public override _cancelPendingTasks(_context: FlowGraphContext): void {\n // no-op\n }\n public override getClassName() {\n return FlowGraphBlockNames.PointerOutEvent;\n }\n}\n\nRegisterClass(FlowGraphBlockNames.PointerOutEvent, FlowGraphPointerOutEventBlock);\n"]}
@@ -0,0 +1,61 @@
1
+ import type { FlowGraphContext } from "../../flowGraphContext.js";
2
+ import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
3
+ import { FlowGraphEventType } from "../../flowGraphEventType.js";
4
+ import { FlowGraphBlockNames } from "../flowGraphBlockNames";
5
+ import type { AbstractMesh } from "../../../Meshes/abstractMesh.js";
6
+ import type { FlowGraphDataConnection } from "../../flowGraphDataConnection.js";
7
+ import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock.js";
8
+ /**
9
+ * Configuration for the pointer over event block.
10
+ */
11
+ export interface IFlowGraphPointerOverEventBlockConfiguration extends IFlowGraphBlockConfiguration {
12
+ /**
13
+ * Should this mesh block propagation of the event.
14
+ */
15
+ stopPropagation?: boolean;
16
+ /**
17
+ * The mesh to listen to. Can also be set by the asset input.
18
+ */
19
+ targetMesh?: AbstractMesh;
20
+ }
21
+ /**
22
+ * Payload for the pointer over event.
23
+ */
24
+ export interface IFlowGraphPointerOverEventPayload {
25
+ /**
26
+ * The pointer id.
27
+ */
28
+ pointerId: number;
29
+ /**
30
+ * The mesh that was picked.
31
+ */
32
+ mesh: AbstractMesh;
33
+ /**
34
+ * If populated, the hover event moved from this mesh to the `mesh` variable
35
+ */
36
+ out?: AbstractMesh;
37
+ }
38
+ /**
39
+ * A pointer over event block.
40
+ * This block can be used as an entry pointer to when a pointer is over a specific target mesh.
41
+ */
42
+ export declare class FlowGraphPointerOverEventBlock extends FlowGraphEventBlock {
43
+ /**
44
+ * Output connection: The pointer id.
45
+ */
46
+ readonly pointerId: FlowGraphDataConnection<number>;
47
+ /**
48
+ * Input connection: The mesh to listen to.
49
+ */
50
+ readonly targetMesh: FlowGraphDataConnection<AbstractMesh>;
51
+ /**
52
+ * Output connection: The mesh that is under the pointer.
53
+ */
54
+ readonly meshUnderPointer: FlowGraphDataConnection<AbstractMesh>;
55
+ readonly type: FlowGraphEventType;
56
+ constructor(config?: IFlowGraphPointerOverEventBlockConfiguration);
57
+ _executeEvent(context: FlowGraphContext, payload: IFlowGraphPointerOverEventPayload): boolean;
58
+ _preparePendingTasks(_context: FlowGraphContext): void;
59
+ _cancelPendingTasks(_context: FlowGraphContext): void;
60
+ getClassName(): FlowGraphBlockNames;
61
+ }
@@ -0,0 +1,40 @@
1
+ import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
2
+ import { RichTypeAny, RichTypeNumber } from "../../flowGraphRichTypes.js";
3
+ import { RegisterClass } from "../../../Misc/typeStore.js";
4
+ import { _isADescendantOf } from "../../utils.js";
5
+ /**
6
+ * A pointer over event block.
7
+ * This block can be used as an entry pointer to when a pointer is over a specific target mesh.
8
+ */
9
+ export class FlowGraphPointerOverEventBlock extends FlowGraphEventBlock {
10
+ constructor(config) {
11
+ super(config);
12
+ this.type = "PointerOver" /* FlowGraphEventType.PointerOver */;
13
+ this.pointerId = this.registerDataOutput("pointerId", RichTypeNumber);
14
+ this.targetMesh = this.registerDataInput("targetMesh", RichTypeAny, config?.targetMesh);
15
+ this.meshUnderPointer = this.registerDataOutput("meshUnderPointer", RichTypeAny);
16
+ }
17
+ _executeEvent(context, payload) {
18
+ const mesh = this.targetMesh.getValue(context);
19
+ this.meshUnderPointer.setValue(payload.mesh, context);
20
+ // skip if we moved from a mesh that is under the hierarchy of the target mesh
21
+ const skipEvent = payload.out && _isADescendantOf(payload.out, mesh);
22
+ this.pointerId.setValue(payload.pointerId, context);
23
+ if (!skipEvent && (payload.mesh === mesh || _isADescendantOf(payload.mesh, mesh))) {
24
+ this._execute(context);
25
+ return !this.config?.stopPropagation;
26
+ }
27
+ return true;
28
+ }
29
+ _preparePendingTasks(_context) {
30
+ // no-op
31
+ }
32
+ _cancelPendingTasks(_context) {
33
+ // no-op
34
+ }
35
+ getClassName() {
36
+ return "FlowGraphPointerOverEventBlock" /* FlowGraphBlockNames.PointerOverEvent */;
37
+ }
38
+ }
39
+ RegisterClass("FlowGraphPointerOverEventBlock" /* FlowGraphBlockNames.PointerOverEvent */, FlowGraphPointerOverEventBlock);
40
+ //# sourceMappingURL=flowGraphPointerOverEventBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowGraphPointerOverEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,qCAA2C;AAMzE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,oCAA0C;AAChF,OAAO,EAAE,aAAa,EAAE,mCAA4B;AACpD,OAAO,EAAE,gBAAgB,EAAE,uBAA6B;AAoCxD;;;GAGG;AACH,MAAM,OAAO,8BAA+B,SAAQ,mBAAmB;IAkBnE,YAAmB,MAAqD;QACpE,KAAK,CAAC,MAAM,CAAC,CAAC;QAHO,SAAI,sDAAsD;QAI/E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACxF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAEe,aAAa,CAAC,OAAyB,EAAE,OAA0C;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,8EAA8E;QAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACe,oBAAoB,CAAC,QAA0B;QAC3D,QAAQ;IACZ,CAAC;IACe,mBAAmB,CAAC,QAA0B;QAC1D,QAAQ;IACZ,CAAC;IACe,YAAY;QACxB,mFAA4C;IAChD,CAAC;CACJ;AAED,aAAa,8EAAuC,8BAA8B,CAAC,CAAC","sourcesContent":["import type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\nimport { FlowGraphEventBlock } from \"core/FlowGraph/flowGraphEventBlock\";\nimport { FlowGraphEventType } from \"core/FlowGraph/flowGraphEventType\";\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\nimport type { FlowGraphDataConnection } from \"core/FlowGraph/flowGraphDataConnection\";\nimport type { IFlowGraphBlockConfiguration } from \"core/FlowGraph/flowGraphBlock\";\nimport { RichTypeAny, RichTypeNumber } from \"core/FlowGraph/flowGraphRichTypes\";\nimport { RegisterClass } from \"core/Misc/typeStore\";\nimport { _isADescendantOf } from \"core/FlowGraph/utils\";\n\n/**\n * Configuration for the pointer over event block.\n */\nexport interface IFlowGraphPointerOverEventBlockConfiguration extends IFlowGraphBlockConfiguration {\n /**\n * Should this mesh block propagation of the event.\n */\n stopPropagation?: boolean;\n\n /**\n * The mesh to listen to. Can also be set by the asset input.\n */\n targetMesh?: AbstractMesh;\n}\n\n/**\n * Payload for the pointer over event.\n */\nexport interface IFlowGraphPointerOverEventPayload {\n /**\n * The pointer id.\n */\n pointerId: number;\n /**\n * The mesh that was picked.\n */\n mesh: AbstractMesh;\n\n /**\n * If populated, the hover event moved from this mesh to the `mesh` variable\n */\n out?: AbstractMesh;\n}\n\n/**\n * A pointer over event block.\n * This block can be used as an entry pointer to when a pointer is over a specific target mesh.\n */\nexport class FlowGraphPointerOverEventBlock extends FlowGraphEventBlock {\n /**\n * Output connection: The pointer id.\n */\n public readonly pointerId: FlowGraphDataConnection<number>;\n\n /**\n * Input connection: The mesh to listen to.\n */\n public readonly targetMesh: FlowGraphDataConnection<AbstractMesh>;\n\n /**\n * Output connection: The mesh that is under the pointer.\n */\n public readonly meshUnderPointer: FlowGraphDataConnection<AbstractMesh>;\n\n public override readonly type: FlowGraphEventType = FlowGraphEventType.PointerOver;\n\n public constructor(config?: IFlowGraphPointerOverEventBlockConfiguration) {\n super(config);\n this.pointerId = this.registerDataOutput(\"pointerId\", RichTypeNumber);\n this.targetMesh = this.registerDataInput(\"targetMesh\", RichTypeAny, config?.targetMesh);\n this.meshUnderPointer = this.registerDataOutput(\"meshUnderPointer\", RichTypeAny);\n }\n\n public override _executeEvent(context: FlowGraphContext, payload: IFlowGraphPointerOverEventPayload): boolean {\n const mesh = this.targetMesh.getValue(context);\n this.meshUnderPointer.setValue(payload.mesh, context);\n // skip if we moved from a mesh that is under the hierarchy of the target mesh\n const skipEvent = payload.out && _isADescendantOf(payload.out, mesh);\n this.pointerId.setValue(payload.pointerId, context);\n if (!skipEvent && (payload.mesh === mesh || _isADescendantOf(payload.mesh, mesh))) {\n this._execute(context);\n return !this.config?.stopPropagation;\n }\n return true;\n }\n public override _preparePendingTasks(_context: FlowGraphContext): void {\n // no-op\n }\n public override _cancelPendingTasks(_context: FlowGraphContext): void {\n // no-op\n }\n public override getClassName() {\n return FlowGraphBlockNames.PointerOverEvent;\n }\n}\n\nRegisterClass(FlowGraphBlockNames.PointerOverEvent, FlowGraphPointerOverEventBlock);\n"]}
@@ -1,31 +1,37 @@
1
1
  import type { FlowGraphContext } from "../../flowGraphContext";
2
2
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock";
3
+ import type { RichType } from "../../flowGraphRichTypes";
3
4
  import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
4
5
  /**
5
- * @experimental
6
6
  * Parameters used to create a FlowGraphReceiveCustomEventBlock.
7
7
  */
8
8
  export interface IFlowGraphReceiveCustomEventBlockConfiguration extends IFlowGraphBlockConfiguration {
9
9
  /**
10
10
  * The id of the event to receive.
11
+ * This event id is unique to the environment (not the context).
11
12
  */
12
13
  eventId: string;
13
14
  /**
14
15
  * The names of the data outputs for that event. Should be in the same order as the event data in
15
16
  * SendCustomEvent
16
17
  */
17
- eventData: string[];
18
+ eventData: {
19
+ [key: string]: {
20
+ type: RichType<any>;
21
+ };
22
+ };
18
23
  }
19
24
  /**
20
- * @experimental
21
- * A block that receives a custom event. It saves the data sent in the eventData output.
25
+ * A block that receives a custom event.
26
+ * It saves the event data in the data outputs, based on the provided eventData in the configuration. For example, if the event data is
27
+ * `{ x: { type: RichTypeNumber }, y: { type: RichTypeNumber } }`, the block will have two data outputs: x and y.
22
28
  */
23
29
  export declare class FlowGraphReceiveCustomEventBlock extends FlowGraphEventBlock {
24
30
  /**
25
31
  * the configuration of the block
26
32
  */
27
33
  config: IFlowGraphReceiveCustomEventBlockConfiguration;
28
- private _eventObserver;
34
+ initPriority: number;
29
35
  constructor(
30
36
  /**
31
37
  * the configuration of the block
@@ -33,17 +39,9 @@ export declare class FlowGraphReceiveCustomEventBlock extends FlowGraphEventBloc
33
39
  config: IFlowGraphReceiveCustomEventBlockConfiguration);
34
40
  _preparePendingTasks(context: FlowGraphContext): void;
35
41
  _cancelPendingTasks(context: FlowGraphContext): void;
42
+ _executeEvent(_context: FlowGraphContext, _payload: any): boolean;
36
43
  /**
37
44
  * @returns class name of the block.
38
45
  */
39
46
  getClassName(): string;
40
- /**
41
- * the class name of the block.
42
- */
43
- static ClassName: string;
44
- /**
45
- * Serializes this block
46
- * @param serializationObject the object to serialize to
47
- */
48
- serialize(serializationObject?: any): void;
49
47
  }
@@ -1,10 +1,10 @@
1
1
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
2
2
  import { Tools } from "../../../Misc/tools.js";
3
- import { RichTypeAny } from "../../flowGraphRichTypes.js";
4
3
  import { RegisterClass } from "../../../Misc/typeStore.js";
5
4
  /**
6
- * @experimental
7
- * A block that receives a custom event. It saves the data sent in the eventData output.
5
+ * A block that receives a custom event.
6
+ * It saves the event data in the data outputs, based on the provided eventData in the configuration. For example, if the event data is
7
+ * `{ x: { type: RichTypeNumber }, y: { type: RichTypeNumber } }`, the block will have two data outputs: x and y.
8
8
  */
9
9
  export class FlowGraphReceiveCustomEventBlock extends FlowGraphEventBlock {
10
10
  constructor(
@@ -14,48 +14,41 @@ export class FlowGraphReceiveCustomEventBlock extends FlowGraphEventBlock {
14
14
  config) {
15
15
  super(config);
16
16
  this.config = config;
17
- for (let i = 0; i < this.config.eventData.length; i++) {
18
- const dataName = this.config.eventData[i];
19
- this.registerDataOutput(dataName, RichTypeAny);
17
+ this.initPriority = 1;
18
+ // use event data to register data outputs
19
+ for (const key in this.config.eventData) {
20
+ this.registerDataOutput(key, this.config.eventData[key].type);
20
21
  }
21
22
  }
22
23
  _preparePendingTasks(context) {
23
24
  const observable = context.configuration.coordinator.getCustomEventObservable(this.config.eventId);
24
- this._eventObserver = observable.add((eventDatas) => {
25
- for (let i = 0; i < eventDatas.length; i++) {
26
- this.dataOutputs[i].setValue(eventDatas[i], context);
27
- }
25
+ const eventObserver = observable.add((eventData) => {
26
+ Object.keys(eventData).forEach((key) => {
27
+ this.getDataOutput(key)?.setValue(eventData[key], context);
28
+ });
28
29
  this._execute(context);
29
30
  });
31
+ context._setExecutionVariable(this, "_eventObserver", eventObserver);
30
32
  }
31
33
  _cancelPendingTasks(context) {
32
34
  const observable = context.configuration.coordinator.getCustomEventObservable(this.config.eventId);
33
35
  if (observable) {
34
- observable.remove(this._eventObserver);
36
+ const eventObserver = context._getExecutionVariable(this, "_eventObserver", null);
37
+ observable.remove(eventObserver);
35
38
  }
36
39
  else {
37
40
  Tools.Warn(`FlowGraphReceiveCustomEventBlock: Missing observable for event ${this.config.eventId}`);
38
41
  }
39
42
  }
43
+ _executeEvent(_context, _payload) {
44
+ return true;
45
+ }
40
46
  /**
41
47
  * @returns class name of the block.
42
48
  */
43
49
  getClassName() {
44
- return FlowGraphReceiveCustomEventBlock.ClassName;
45
- }
46
- /**
47
- * Serializes this block
48
- * @param serializationObject the object to serialize to
49
- */
50
- serialize(serializationObject) {
51
- super.serialize(serializationObject);
52
- serializationObject.eventId = this.config.eventId;
53
- serializationObject.eventData = this.config.eventData;
50
+ return "FlowGraphReceiveCustomEventBlock" /* FlowGraphBlockNames.ReceiveCustomEvent */;
54
51
  }
55
52
  }
56
- /**
57
- * the class name of the block.
58
- */
59
- FlowGraphReceiveCustomEventBlock.ClassName = "FGReceiveCustomEventBlock";
60
- RegisterClass(FlowGraphReceiveCustomEventBlock.ClassName, FlowGraphReceiveCustomEventBlock);
53
+ RegisterClass("FlowGraphReceiveCustomEventBlock" /* FlowGraphBlockNames.ReceiveCustomEvent */, FlowGraphReceiveCustomEventBlock);
61
54
  //# sourceMappingURL=flowGraphReceiveCustomEventBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphReceiveCustomEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAiBxD;;;GAGG;AACH,MAAM,OAAO,gCAAiC,SAAQ,mBAAmB;IAGrE;IACI;;OAEG;IACa,MAAsD;QAEtE,KAAK,CAAC,MAAM,CAAC,CAAC;QAFE,WAAM,GAAN,MAAM,CAAgD;QAGtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAEM,oBAAoB,CAAC,OAAyB;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnG,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,UAAiB,EAAE,EAAE;YACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IACM,mBAAmB,CAAC,OAAyB;QAChD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnG,IAAI,UAAU,EAAE,CAAC;YACb,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,kEAAkE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAED;;OAEG;IACa,YAAY;QACxB,OAAO,gCAAgC,CAAC,SAAS,CAAC;IACtD,CAAC;IAOD;;;OAGG;IACa,SAAS,CAAC,mBAAyB;QAC/C,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACrC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAClD,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC1D,CAAC;;AAbD;;GAEG;AACW,0CAAS,GAAG,2BAA2B,CAAC;AAY1D,aAAa,CAAC,gCAAgC,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC","sourcesContent":["import type { Observer } from \"../../../Misc/observable\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport { FlowGraphEventBlock } from \"../../flowGraphEventBlock\";\r\nimport type { Nullable } from \"../../../types\";\r\nimport { Tools } from \"../../../Misc/tools\";\r\nimport { RichTypeAny } from \"../../flowGraphRichTypes\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\n/**\r\n * @experimental\r\n * Parameters used to create a FlowGraphReceiveCustomEventBlock.\r\n */\r\nexport interface IFlowGraphReceiveCustomEventBlockConfiguration extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The id of the event to receive.\r\n */\r\n eventId: string;\r\n /**\r\n * The names of the data outputs for that event. Should be in the same order as the event data in\r\n * SendCustomEvent\r\n */\r\n eventData: string[];\r\n}\r\n\r\n/**\r\n * @experimental\r\n * A block that receives a custom event. It saves the data sent in the eventData output.\r\n */\r\nexport class FlowGraphReceiveCustomEventBlock extends FlowGraphEventBlock {\r\n private _eventObserver: Nullable<Observer<any>>;\r\n\r\n constructor(\r\n /**\r\n * the configuration of the block\r\n */\r\n public override config: IFlowGraphReceiveCustomEventBlockConfiguration\r\n ) {\r\n super(config);\r\n for (let i = 0; i < this.config.eventData.length; i++) {\r\n const dataName = this.config.eventData[i];\r\n this.registerDataOutput(dataName, RichTypeAny);\r\n }\r\n }\r\n\r\n public _preparePendingTasks(context: FlowGraphContext): void {\r\n const observable = context.configuration.coordinator.getCustomEventObservable(this.config.eventId);\r\n this._eventObserver = observable.add((eventDatas: any[]) => {\r\n for (let i = 0; i < eventDatas.length; i++) {\r\n this.dataOutputs[i].setValue(eventDatas[i], context);\r\n }\r\n this._execute(context);\r\n });\r\n }\r\n public _cancelPendingTasks(context: FlowGraphContext): void {\r\n const observable = context.configuration.coordinator.getCustomEventObservable(this.config.eventId);\r\n if (observable) {\r\n observable.remove(this._eventObserver);\r\n } else {\r\n Tools.Warn(`FlowGraphReceiveCustomEventBlock: Missing observable for event ${this.config.eventId}`);\r\n }\r\n }\r\n\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphReceiveCustomEventBlock.ClassName;\r\n }\r\n\r\n /**\r\n * the class name of the block.\r\n */\r\n public static ClassName = \"FGReceiveCustomEventBlock\";\r\n\r\n /**\r\n * Serializes this block\r\n * @param serializationObject the object to serialize to\r\n */\r\n public override serialize(serializationObject?: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.eventId = this.config.eventId;\r\n serializationObject.eventData = this.config.eventData;\r\n }\r\n}\r\nRegisterClass(FlowGraphReceiveCustomEventBlock.ClassName, FlowGraphReceiveCustomEventBlock);\r\n"]}
1
+ {"version":3,"file":"flowGraphReceiveCustomEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAkBxD;;;;GAIG;AACH,MAAM,OAAO,gCAAiC,SAAQ,mBAAmB;IAGrE;IACI;;OAEG;IACa,MAAsD;QAEtE,KAAK,CAAC,MAAM,CAAC,CAAC;QAFE,WAAM,GAAN,MAAM,CAAgD;QAN1D,iBAAY,GAAW,CAAC,CAAC;QASrC,0CAA0C;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAEM,oBAAoB,CAAC,OAAyB;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnG,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAiC,EAAE,EAAE;YACvE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACzE,CAAC;IACM,mBAAmB,CAAC,OAAyB;QAChD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnG,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAA4B,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC7G,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,kEAAkE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAEe,aAAa,CAAC,QAA0B,EAAE,QAAa;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACa,YAAY;QACxB,uFAA8C;IAClD,CAAC;CACJ;AACD,aAAa,kFAAyC,gCAAgC,CAAC,CAAC","sourcesContent":["import type { Observer } from \"../../../Misc/observable\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport { FlowGraphEventBlock } from \"../../flowGraphEventBlock\";\r\nimport type { Nullable } from \"../../../types\";\r\nimport { Tools } from \"../../../Misc/tools\";\r\nimport type { RichType } from \"../../flowGraphRichTypes\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\r\n/**\r\n * Parameters used to create a FlowGraphReceiveCustomEventBlock.\r\n */\r\nexport interface IFlowGraphReceiveCustomEventBlockConfiguration extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The id of the event to receive.\r\n * This event id is unique to the environment (not the context).\r\n */\r\n eventId: string;\r\n /**\r\n * The names of the data outputs for that event. Should be in the same order as the event data in\r\n * SendCustomEvent\r\n */\r\n eventData: { [key: string]: { type: RichType<any> } };\r\n}\r\n\r\n/**\r\n * A block that receives a custom event.\r\n * It saves the event data in the data outputs, based on the provided eventData in the configuration. For example, if the event data is\r\n * `{ x: { type: RichTypeNumber }, y: { type: RichTypeNumber } }`, the block will have two data outputs: x and y.\r\n */\r\nexport class FlowGraphReceiveCustomEventBlock extends FlowGraphEventBlock {\r\n public override initPriority: number = 1;\r\n\r\n constructor(\r\n /**\r\n * the configuration of the block\r\n */\r\n public override config: IFlowGraphReceiveCustomEventBlockConfiguration\r\n ) {\r\n super(config);\r\n // use event data to register data outputs\r\n for (const key in this.config.eventData) {\r\n this.registerDataOutput(key, this.config.eventData[key].type);\r\n }\r\n }\r\n\r\n public _preparePendingTasks(context: FlowGraphContext): void {\r\n const observable = context.configuration.coordinator.getCustomEventObservable(this.config.eventId);\r\n const eventObserver = observable.add((eventData: { [key: string]: any }) => {\r\n Object.keys(eventData).forEach((key) => {\r\n this.getDataOutput(key)?.setValue(eventData[key], context);\r\n });\r\n this._execute(context);\r\n });\r\n context._setExecutionVariable(this, \"_eventObserver\", eventObserver);\r\n }\r\n public _cancelPendingTasks(context: FlowGraphContext): void {\r\n const observable = context.configuration.coordinator.getCustomEventObservable(this.config.eventId);\r\n if (observable) {\r\n const eventObserver = context._getExecutionVariable<Nullable<Observer<any[]>>>(this, \"_eventObserver\", null);\r\n observable.remove(eventObserver);\r\n } else {\r\n Tools.Warn(`FlowGraphReceiveCustomEventBlock: Missing observable for event ${this.config.eventId}`);\r\n }\r\n }\r\n\r\n public override _executeEvent(_context: FlowGraphContext, _payload: any): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.ReceiveCustomEvent;\r\n }\r\n}\r\nRegisterClass(FlowGraphBlockNames.ReceiveCustomEvent, FlowGraphReceiveCustomEventBlock);\r\n"]}
@@ -1,24 +1,18 @@
1
1
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock";
2
2
  import type { FlowGraphContext } from "../../flowGraphContext.js";
3
+ import { FlowGraphBlockNames } from "../flowGraphBlockNames";
4
+ import { FlowGraphEventType } from "../../flowGraphEventType.js";
3
5
  /**
4
- * @experimental
5
6
  * Block that triggers when a scene is ready.
6
7
  */
7
8
  export declare class FlowGraphSceneReadyEventBlock extends FlowGraphEventBlock {
8
- /**
9
- * @internal
10
- */
9
+ initPriority: number;
10
+ readonly type: FlowGraphEventType;
11
+ _executeEvent(context: FlowGraphContext, _payload: any): boolean;
11
12
  _preparePendingTasks(context: FlowGraphContext): void;
12
- /**
13
- * @internal
14
- */
15
13
  _cancelPendingTasks(context: FlowGraphContext): void;
16
14
  /**
17
15
  * @returns class name of the block.
18
16
  */
19
- getClassName(): string;
20
- /**
21
- * the class name of the block.
22
- */
23
- static ClassName: string;
17
+ getClassName(): FlowGraphBlockNames;
24
18
  }
@@ -1,41 +1,30 @@
1
1
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
2
2
  import { RegisterClass } from "../../../Misc/typeStore.js";
3
3
  /**
4
- * @experimental
5
4
  * Block that triggers when a scene is ready.
6
5
  */
7
6
  export class FlowGraphSceneReadyEventBlock extends FlowGraphEventBlock {
8
- /**
9
- * @internal
10
- */
7
+ constructor() {
8
+ super(...arguments);
9
+ this.initPriority = -1;
10
+ this.type = "SceneReady" /* FlowGraphEventType.SceneReady */;
11
+ }
12
+ _executeEvent(context, _payload) {
13
+ this._execute(context);
14
+ return true;
15
+ }
11
16
  _preparePendingTasks(context) {
12
- if (!context._getExecutionVariable(this, "sceneReadyObserver")) {
13
- const scene = context.configuration.scene;
14
- const contextObserver = scene.onReadyObservable.add(() => {
15
- this._execute(context);
16
- });
17
- context._setExecutionVariable(this, "sceneReadyObserver", contextObserver);
18
- }
17
+ // no-op
19
18
  }
20
- /**
21
- * @internal
22
- */
23
19
  _cancelPendingTasks(context) {
24
- const contextObserver = context._getExecutionVariable(this, "sceneReadyObserver");
25
- const scene = context.configuration.scene;
26
- scene.onReadyObservable.remove(contextObserver);
27
- context._deleteExecutionVariable(this, "sceneReadyObserver");
20
+ // no-op
28
21
  }
29
22
  /**
30
23
  * @returns class name of the block.
31
24
  */
32
25
  getClassName() {
33
- return FlowGraphSceneReadyEventBlock.ClassName;
26
+ return "FlowGraphSceneReadyEventBlock" /* FlowGraphBlockNames.SceneReadyEvent */;
34
27
  }
35
28
  }
36
- /**
37
- * the class name of the block.
38
- */
39
- FlowGraphSceneReadyEventBlock.ClassName = "FGSceneReadyEventBlock";
40
- RegisterClass("FGSceneReadyEventBlock", FlowGraphSceneReadyEventBlock);
29
+ RegisterClass("FlowGraphSceneReadyEventBlock" /* FlowGraphBlockNames.SceneReadyEvent */, FlowGraphSceneReadyEventBlock);
41
30
  //# sourceMappingURL=flowGraphSceneReadyEventBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphSceneReadyEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD;;;GAGG;AACH,MAAM,OAAO,6BAA8B,SAAQ,mBAAmB;IAClE;;OAEG;IACI,oBAAoB,CAAC,OAAyB;QACjD,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;YAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE;gBACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,OAAyB;QAChD,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAC1C,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACa,YAAY;QACxB,OAAO,6BAA6B,CAAC,SAAS,CAAC;IACnD,CAAC;;AAED;;GAEG;AACW,uCAAS,GAAG,wBAAwB,CAAC;AAEvD,aAAa,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC","sourcesContent":["import { FlowGraphEventBlock } from \"../../flowGraphEventBlock\";\r\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\n/**\r\n * @experimental\r\n * Block that triggers when a scene is ready.\r\n */\r\nexport class FlowGraphSceneReadyEventBlock extends FlowGraphEventBlock {\r\n /**\r\n * @internal\r\n */\r\n public _preparePendingTasks(context: FlowGraphContext): void {\r\n if (!context._getExecutionVariable(this, \"sceneReadyObserver\")) {\r\n const scene = context.configuration.scene;\r\n const contextObserver = scene.onReadyObservable.add(() => {\r\n this._execute(context);\r\n });\r\n context._setExecutionVariable(this, \"sceneReadyObserver\", contextObserver);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _cancelPendingTasks(context: FlowGraphContext) {\r\n const contextObserver = context._getExecutionVariable(this, \"sceneReadyObserver\");\r\n const scene = context.configuration.scene;\r\n scene.onReadyObservable.remove(contextObserver);\r\n context._deleteExecutionVariable(this, \"sceneReadyObserver\");\r\n }\r\n\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName() {\r\n return FlowGraphSceneReadyEventBlock.ClassName;\r\n }\r\n\r\n /**\r\n * the class name of the block.\r\n */\r\n public static ClassName = \"FGSceneReadyEventBlock\";\r\n}\r\nRegisterClass(\"FGSceneReadyEventBlock\", FlowGraphSceneReadyEventBlock);\r\n"]}
1
+ {"version":3,"file":"flowGraphSceneReadyEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD;;GAEG;AACH,MAAM,OAAO,6BAA8B,SAAQ,mBAAmB;IAAtE;;QACoB,iBAAY,GAAW,CAAC,CAAC,CAAC;QAEjB,SAAI,oDAAqD;IAkBtF,CAAC;IAhBmB,aAAa,CAAC,OAAyB,EAAE,QAAa;QAClE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IACe,oBAAoB,CAAC,OAAyB;QAC1D,QAAQ;IACZ,CAAC;IACe,mBAAmB,CAAC,OAAyB;QACzD,QAAQ;IACZ,CAAC;IACD;;OAEG;IACa,YAAY;QACxB,iFAA2C;IAC/C,CAAC;CACJ;AACD,aAAa,4EAAsC,6BAA6B,CAAC,CAAC","sourcesContent":["import { FlowGraphEventBlock } from \"../../flowGraphEventBlock\";\r\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\r\nimport { FlowGraphEventType } from \"core/FlowGraph/flowGraphEventType\";\r\n/**\r\n * Block that triggers when a scene is ready.\r\n */\r\nexport class FlowGraphSceneReadyEventBlock extends FlowGraphEventBlock {\r\n public override initPriority: number = -1;\r\n\r\n public override readonly type: FlowGraphEventType = FlowGraphEventType.SceneReady;\r\n\r\n public override _executeEvent(context: FlowGraphContext, _payload: any): boolean {\r\n this._execute(context);\r\n return true;\r\n }\r\n public override _preparePendingTasks(context: FlowGraphContext): void {\r\n // no-op\r\n }\r\n public override _cancelPendingTasks(context: FlowGraphContext): void {\r\n // no-op\r\n }\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName() {\r\n return FlowGraphBlockNames.SceneReadyEvent;\r\n }\r\n}\r\nRegisterClass(FlowGraphBlockNames.SceneReadyEvent, FlowGraphSceneReadyEventBlock);\r\n"]}
@@ -1,24 +1,48 @@
1
1
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock";
2
2
  import type { FlowGraphContext } from "../../flowGraphContext.js";
3
+ import type { FlowGraphDataConnection } from "../../flowGraphDataConnection.js";
4
+ import { FlowGraphEventType } from "../../flowGraphEventType.js";
5
+ /**
6
+ * Payload for the scene tick event.
7
+ */
8
+ export interface IFlowGraphOnTickEventPayload {
9
+ /**
10
+ * the time in seconds since the scene started.
11
+ */
12
+ timeSinceStart: number;
13
+ /**
14
+ * the time in seconds since the last frame.
15
+ */
16
+ deltaTime: number;
17
+ }
3
18
  /**
4
- * @experimental
5
19
  * Block that triggers on scene tick (before each render).
6
20
  */
7
21
  export declare class FlowGraphSceneTickEventBlock extends FlowGraphEventBlock {
22
+ /**
23
+ * the time in seconds since the scene started.
24
+ */
25
+ readonly timeSinceStart: FlowGraphDataConnection<number>;
26
+ /**
27
+ * the time in seconds since the last frame.
28
+ */
29
+ readonly deltaTime: FlowGraphDataConnection<number>;
30
+ readonly type: FlowGraphEventType;
31
+ constructor();
8
32
  /**
9
33
  * @internal
10
34
  */
11
- _preparePendingTasks(context: FlowGraphContext): void;
35
+ _preparePendingTasks(_context: FlowGraphContext): void;
12
36
  /**
13
37
  * @internal
14
38
  */
15
- _cancelPendingTasks(context: FlowGraphContext): void;
39
+ _executeEvent(context: FlowGraphContext, payload: IFlowGraphOnTickEventPayload): boolean;
16
40
  /**
17
- * @returns class name of the block.
41
+ * @internal
18
42
  */
19
- getClassName(): string;
43
+ _cancelPendingTasks(_context: FlowGraphContext): void;
20
44
  /**
21
- * the class name of the block.
45
+ * @returns class name of the block.
22
46
  */
23
- static ClassName: string;
47
+ getClassName(): string;
24
48
  }
@@ -1,41 +1,43 @@
1
1
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
2
2
  import { RegisterClass } from "../../../Misc/typeStore.js";
3
+ import { RichTypeNumber } from "../../flowGraphRichTypes.js";
3
4
  /**
4
- * @experimental
5
5
  * Block that triggers on scene tick (before each render).
6
6
  */
7
7
  export class FlowGraphSceneTickEventBlock extends FlowGraphEventBlock {
8
+ constructor() {
9
+ super();
10
+ this.type = "SceneBeforeRender" /* FlowGraphEventType.SceneBeforeRender */;
11
+ this.timeSinceStart = this.registerDataOutput("timeSinceStart", RichTypeNumber);
12
+ this.deltaTime = this.registerDataOutput("deltaTime", RichTypeNumber);
13
+ }
8
14
  /**
9
15
  * @internal
10
16
  */
11
- _preparePendingTasks(context) {
12
- if (!context._getExecutionVariable(this, "sceneBeforeRender")) {
13
- const scene = context.configuration.scene;
14
- const contextObserver = scene.onBeforeRenderObservable.add(() => {
15
- this._execute(context);
16
- });
17
- context._setExecutionVariable(this, "sceneBeforeRender", contextObserver);
18
- }
17
+ _preparePendingTasks(_context) {
18
+ // no-op
19
19
  }
20
20
  /**
21
21
  * @internal
22
22
  */
23
- _cancelPendingTasks(context) {
24
- const contextObserver = context._getExecutionVariable(this, "sceneBeforeRender");
25
- const scene = context.configuration.scene;
26
- scene.onBeforeRenderObservable.remove(contextObserver);
27
- context._deleteExecutionVariable(this, "sceneBeforeRender");
23
+ _executeEvent(context, payload) {
24
+ this.timeSinceStart.setValue(payload.timeSinceStart, context);
25
+ this.deltaTime.setValue(payload.deltaTime, context);
26
+ this._execute(context);
27
+ return true;
28
+ }
29
+ /**
30
+ * @internal
31
+ */
32
+ _cancelPendingTasks(_context) {
33
+ // no-op
28
34
  }
29
35
  /**
30
36
  * @returns class name of the block.
31
37
  */
32
38
  getClassName() {
33
- return FlowGraphSceneTickEventBlock.ClassName;
39
+ return "FlowGraphSceneTickEventBlock" /* FlowGraphBlockNames.SceneTickEvent */;
34
40
  }
35
41
  }
36
- /**
37
- * the class name of the block.
38
- */
39
- FlowGraphSceneTickEventBlock.ClassName = "FGSceneTickEventBlock";
40
- RegisterClass(FlowGraphSceneTickEventBlock.ClassName, FlowGraphSceneTickEventBlock);
42
+ RegisterClass("FlowGraphSceneTickEventBlock" /* FlowGraphBlockNames.SceneTickEvent */, FlowGraphSceneTickEventBlock);
41
43
  //# sourceMappingURL=flowGraphSceneTickEventBlock.js.map