@kiberon-labs/behave-graph-scene 1.0.1 → 2.0.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 (214) hide show
  1. package/.storybook/main.ts +18 -0
  2. package/.storybook/preview.ts +16 -0
  3. package/.storybook/vscode.css +822 -0
  4. package/.turbo/turbo-build.log +4 -3
  5. package/CHANGELOG.md +84 -0
  6. package/README.md +1 -1
  7. package/dist/Abstractions/Drivers/DummyScene.d.ts +47 -3
  8. package/dist/Abstractions/Drivers/DummyScene.d.ts.map +1 -1
  9. package/dist/Abstractions/Drivers/DummyScene.js +57 -0
  10. package/dist/Abstractions/Drivers/DummyScene.js.map +1 -1
  11. package/dist/Abstractions/IScene.d.ts +63 -4
  12. package/dist/Abstractions/IScene.d.ts.map +1 -1
  13. package/dist/Abstractions/IScene.js +19 -0
  14. package/dist/Abstractions/IScene.js.map +1 -0
  15. package/dist/Nodes/Actions/AddLight.d.ts +21 -0
  16. package/dist/Nodes/Actions/AddLight.d.ts.map +1 -0
  17. package/dist/Nodes/Actions/AddLight.js +38 -0
  18. package/dist/Nodes/Actions/AddLight.js.map +1 -0
  19. package/dist/Nodes/Actions/CloneMesh.d.ts +16 -0
  20. package/dist/Nodes/Actions/CloneMesh.d.ts.map +1 -0
  21. package/dist/Nodes/Actions/CloneMesh.js +28 -0
  22. package/dist/Nodes/Actions/CloneMesh.js.map +1 -0
  23. package/dist/Nodes/Actions/CreateMesh.d.ts +22 -0
  24. package/dist/Nodes/Actions/CreateMesh.d.ts.map +1 -0
  25. package/dist/Nodes/Actions/CreateMesh.js +44 -0
  26. package/dist/Nodes/Actions/CreateMesh.js.map +1 -0
  27. package/dist/Nodes/Actions/DeleteMesh.d.ts +15 -0
  28. package/dist/Nodes/Actions/DeleteMesh.d.ts.map +1 -0
  29. package/dist/Nodes/Actions/DeleteMesh.js +27 -0
  30. package/dist/Nodes/Actions/DeleteMesh.js.map +1 -0
  31. package/dist/Nodes/Actions/EaseSceneProperty.d.ts +1 -1
  32. package/dist/Nodes/Actions/EaseSceneProperty.d.ts.map +1 -1
  33. package/dist/Nodes/Actions/EaseSceneProperty.js +2 -2
  34. package/dist/Nodes/Actions/EaseSceneProperty.js.map +1 -1
  35. package/dist/Nodes/Actions/LookAt.d.ts +16 -0
  36. package/dist/Nodes/Actions/LookAt.d.ts.map +1 -0
  37. package/dist/Nodes/Actions/LookAt.js +35 -0
  38. package/dist/Nodes/Actions/LookAt.js.map +1 -0
  39. package/dist/Nodes/Actions/MoveTowards.d.ts +21 -0
  40. package/dist/Nodes/Actions/MoveTowards.d.ts.map +1 -0
  41. package/dist/Nodes/Actions/MoveTowards.js +46 -0
  42. package/dist/Nodes/Actions/MoveTowards.js.map +1 -0
  43. package/dist/Nodes/Actions/RemoveLight.d.ts +15 -0
  44. package/dist/Nodes/Actions/RemoveLight.d.ts.map +1 -0
  45. package/dist/Nodes/Actions/RemoveLight.js +27 -0
  46. package/dist/Nodes/Actions/RemoveLight.js.map +1 -0
  47. package/dist/Nodes/Actions/SetLightProperty.d.ts +25 -0
  48. package/dist/Nodes/Actions/SetLightProperty.d.ts.map +1 -0
  49. package/dist/Nodes/Actions/SetLightProperty.js +64 -0
  50. package/dist/Nodes/Actions/SetLightProperty.js.map +1 -0
  51. package/dist/Nodes/Actions/SetMaterialProperty.d.ts +25 -0
  52. package/dist/Nodes/Actions/SetMaterialProperty.d.ts.map +1 -0
  53. package/dist/Nodes/Actions/SetMaterialProperty.js +69 -0
  54. package/dist/Nodes/Actions/SetMaterialProperty.js.map +1 -0
  55. package/dist/Nodes/Actions/SetMeshPosition.d.ts +18 -0
  56. package/dist/Nodes/Actions/SetMeshPosition.d.ts.map +1 -0
  57. package/dist/Nodes/Actions/SetMeshPosition.js +34 -0
  58. package/dist/Nodes/Actions/SetMeshPosition.js.map +1 -0
  59. package/dist/Nodes/Actions/SetMeshVisible.d.ts +16 -0
  60. package/dist/Nodes/Actions/SetMeshVisible.d.ts.map +1 -0
  61. package/dist/Nodes/Actions/SetMeshVisible.js +28 -0
  62. package/dist/Nodes/Actions/SetMeshVisible.js.map +1 -0
  63. package/dist/Nodes/Actions/SetSceneProperty.d.ts +12 -1
  64. package/dist/Nodes/Actions/SetSceneProperty.d.ts.map +1 -1
  65. package/dist/Nodes/Actions/SetSceneProperty.js +1 -1
  66. package/dist/Nodes/Actions/SetSceneProperty.js.map +1 -1
  67. package/dist/Nodes/Events/OnAnyMeshClicked.d.ts +13 -0
  68. package/dist/Nodes/Events/OnAnyMeshClicked.d.ts.map +1 -0
  69. package/dist/Nodes/Events/OnAnyMeshClicked.js +34 -0
  70. package/dist/Nodes/Events/OnAnyMeshClicked.js.map +1 -0
  71. package/dist/Nodes/Events/OnSceneChanged.d.ts +12 -0
  72. package/dist/Nodes/Events/OnSceneChanged.d.ts.map +1 -0
  73. package/dist/Nodes/Events/OnSceneChanged.js +28 -0
  74. package/dist/Nodes/Events/OnSceneChanged.js.map +1 -0
  75. package/dist/Nodes/Events/OnSceneNodeClick.d.ts +14 -1
  76. package/dist/Nodes/Events/OnSceneNodeClick.d.ts.map +1 -1
  77. package/dist/Nodes/Events/OnSceneNodeClick.js +1 -1
  78. package/dist/Nodes/Events/OnSceneNodeClick.js.map +1 -1
  79. package/dist/Nodes/Logic/ColorNodes.d.ts +17 -13
  80. package/dist/Nodes/Logic/ColorNodes.d.ts.map +1 -1
  81. package/dist/Nodes/Logic/EulerNodes.d.ts +16 -12
  82. package/dist/Nodes/Logic/EulerNodes.d.ts.map +1 -1
  83. package/dist/Nodes/Logic/Mat3Nodes.d.ts +26 -23
  84. package/dist/Nodes/Logic/Mat3Nodes.d.ts.map +1 -1
  85. package/dist/Nodes/Logic/Mat3Nodes.js +0 -14
  86. package/dist/Nodes/Logic/Mat3Nodes.js.map +1 -1
  87. package/dist/Nodes/Logic/Mat4Nodes.d.ts +32 -28
  88. package/dist/Nodes/Logic/Mat4Nodes.d.ts.map +1 -1
  89. package/dist/Nodes/Logic/QuatNodes.d.ts +22 -18
  90. package/dist/Nodes/Logic/QuatNodes.d.ts.map +1 -1
  91. package/dist/Nodes/Logic/Vec2Nodes.d.ts +16 -12
  92. package/dist/Nodes/Logic/Vec2Nodes.d.ts.map +1 -1
  93. package/dist/Nodes/Logic/Vec3Nodes.d.ts +17 -13
  94. package/dist/Nodes/Logic/Vec3Nodes.d.ts.map +1 -1
  95. package/dist/Nodes/Logic/Vec4Nodes.d.ts +16 -12
  96. package/dist/Nodes/Logic/Vec4Nodes.d.ts.map +1 -1
  97. package/dist/Nodes/Queries/GetDistanceBetween.d.ts +18 -0
  98. package/dist/Nodes/Queries/GetDistanceBetween.d.ts.map +1 -0
  99. package/dist/Nodes/Queries/GetDistanceBetween.js +30 -0
  100. package/dist/Nodes/Queries/GetDistanceBetween.js.map +1 -0
  101. package/dist/Nodes/Queries/GetLightProperty.d.ts +23 -0
  102. package/dist/Nodes/Queries/GetLightProperty.d.ts.map +1 -0
  103. package/dist/Nodes/Queries/GetLightProperty.js +68 -0
  104. package/dist/Nodes/Queries/GetLightProperty.js.map +1 -0
  105. package/dist/Nodes/Queries/GetMaterialProperty.d.ts +23 -0
  106. package/dist/Nodes/Queries/GetMaterialProperty.d.ts.map +1 -0
  107. package/dist/Nodes/Queries/GetMaterialProperty.js +69 -0
  108. package/dist/Nodes/Queries/GetMaterialProperty.js.map +1 -0
  109. package/dist/Nodes/Queries/GetMeshPosition.d.ts +16 -0
  110. package/dist/Nodes/Queries/GetMeshPosition.d.ts.map +1 -0
  111. package/dist/Nodes/Queries/GetMeshPosition.js +29 -0
  112. package/dist/Nodes/Queries/GetMeshPosition.js.map +1 -0
  113. package/dist/Nodes/Queries/GetSceneProperty.d.ts +10 -1
  114. package/dist/Nodes/Queries/GetSceneProperty.d.ts.map +1 -1
  115. package/dist/Nodes/Queries/GetSceneProperty.js +2 -2
  116. package/dist/Nodes/Queries/GetSceneProperty.js.map +1 -1
  117. package/dist/Values/Internal/Mat3.d.ts +1 -1
  118. package/dist/Values/Internal/Mat3.d.ts.map +1 -1
  119. package/dist/Values/Internal/Mat3.js +1 -3
  120. package/dist/Values/Internal/Mat3.js.map +1 -1
  121. package/dist/Values/Internal/Mat4.d.ts.map +1 -1
  122. package/dist/Values/Internal/Mat4.js +1 -3
  123. package/dist/Values/Internal/Mat4.js.map +1 -1
  124. package/dist/Values/Internal/Vec3.d.ts +1 -1
  125. package/dist/Values/Internal/Vec3.d.ts.map +1 -1
  126. package/dist/Values/Internal/Vec3.js +0 -2
  127. package/dist/Values/Internal/Vec3.js.map +1 -1
  128. package/dist/Values/Internal/Vec4.d.ts.map +1 -1
  129. package/dist/Values/Internal/Vec4.js +0 -1
  130. package/dist/Values/Internal/Vec4.js.map +1 -1
  131. package/dist/_virtual/rolldown_runtime.js +23 -1
  132. package/dist/behave-graph.manifest.json +6082 -0
  133. package/dist/buildScene.d.ts.map +1 -1
  134. package/dist/buildScene.js +24 -3
  135. package/dist/buildScene.js.map +1 -1
  136. package/dist/index.d.ts +29 -3
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +22 -4
  139. package/dist/manifest.source.d.ts +7 -0
  140. package/dist/manifest.source.d.ts.map +1 -0
  141. package/dist/manifest.source.js +54 -0
  142. package/dist/manifest.source.js.map +1 -0
  143. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js +207 -0
  144. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
  145. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.production.js +40 -0
  146. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.production.js.map +1 -0
  147. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.development.js +766 -0
  148. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.development.js.map +1 -0
  149. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.production.js +367 -0
  150. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.production.js.map +1 -0
  151. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/index.js +15 -0
  152. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/index.js.map +1 -0
  153. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js +15 -0
  154. package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js.map +1 -0
  155. package/dist/packages/nodes/scene/package.js +7 -0
  156. package/dist/packages/nodes/scene/package.js.map +1 -0
  157. package/dist/registerSceneProfile.d.ts +3 -3
  158. package/dist/registerSceneProfile.d.ts.map +1 -1
  159. package/dist/registerSceneProfile.js +35 -1
  160. package/dist/registerSceneProfile.js.map +1 -1
  161. package/dist/ui/controls/vec3.d.ts +9 -0
  162. package/dist/ui/controls/vec3.d.ts.map +1 -0
  163. package/dist/ui/controls/vec3.js +99 -0
  164. package/dist/ui/controls/vec3.js.map +1 -0
  165. package/package.json +28 -9
  166. package/src/Abstractions/Drivers/DummyScene.ts +110 -2
  167. package/src/Abstractions/IScene.ts +74 -3
  168. package/src/Nodes/Actions/AddLight.ts +46 -0
  169. package/src/Nodes/Actions/CloneMesh.ts +31 -0
  170. package/src/Nodes/Actions/CreateMesh.ts +47 -0
  171. package/src/Nodes/Actions/DeleteMesh.ts +29 -0
  172. package/src/Nodes/Actions/EaseSceneProperty.ts +6 -2
  173. package/src/Nodes/Actions/LookAt.ts +34 -0
  174. package/src/Nodes/Actions/MoveTowards.ts +55 -0
  175. package/src/Nodes/Actions/RemoveLight.ts +29 -0
  176. package/src/Nodes/Actions/SetLightProperty.ts +60 -0
  177. package/src/Nodes/Actions/SetMaterialProperty.ts +62 -0
  178. package/src/Nodes/Actions/SetMeshPosition.ts +37 -0
  179. package/src/Nodes/Actions/SetMeshVisible.ts +31 -0
  180. package/src/Nodes/Actions/SetSceneProperty.ts +3 -5
  181. package/src/Nodes/Events/OnAnyMeshClicked.ts +48 -0
  182. package/src/Nodes/Events/OnSceneChanged.ts +43 -0
  183. package/src/Nodes/Events/OnSceneNodeClick.ts +3 -3
  184. package/src/Nodes/Logic/Mat3Nodes.ts +0 -10
  185. package/src/Nodes/Queries/GetDistanceBetween.ts +37 -0
  186. package/src/Nodes/Queries/GetLightProperty.ts +53 -0
  187. package/src/Nodes/Queries/GetMaterialProperty.ts +55 -0
  188. package/src/Nodes/Queries/GetMeshPosition.ts +32 -0
  189. package/src/Nodes/Queries/GetSceneProperty.ts +4 -5
  190. package/src/Values/Internal/Mat3.ts +3 -3
  191. package/src/Values/Internal/Mat4.ts +5 -4
  192. package/src/Values/Internal/Vec3.ts +5 -4
  193. package/src/Values/Internal/Vec4.ts +3 -2
  194. package/src/buildScene.ts +36 -2
  195. package/src/index.ts +26 -2
  196. package/src/manifest.source.ts +61 -0
  197. package/src/registerSceneProfile.ts +41 -4
  198. package/src/ui/controls/vec3.tsx +69 -0
  199. package/stories/click.stories.tsx +112 -0
  200. package/stories/components/DemoScene.ts +610 -0
  201. package/stories/components/SceneViewer.tsx +204 -0
  202. package/stories/components/SceneViewerPanel.tsx +41 -0
  203. package/stories/data/clickDemo.json +94 -0
  204. package/stories/data/rotate.json +402 -0
  205. package/stories/index.stories.tsx +90 -0
  206. package/stories/plugin/sceneViewerPlugin.tsx +88 -0
  207. package/tests/manifest.test.ts +65 -0
  208. package/tests/readSceneGraphs.test.ts +8 -1
  209. package/tests/registerSceneProfile.test.ts +6 -5
  210. package/tsconfig.json +18 -11
  211. package/tsdown.config.ts +5 -1
  212. package/vite.config.js +7 -0
  213. package/src/Values/Internal/Mat2.ts +0 -214
  214. package/src/loadScene.ts +0 -81
@@ -3,7 +3,7 @@ import { AsyncNode, Engine, IGraph, ILifecycleEventEmitter, NodeDescription } fr
3
3
 
4
4
  //#region src/Nodes/Actions/EaseSceneProperty.d.ts
5
5
  declare class EaseSceneProperty extends AsyncNode {
6
- static GetDescriptions(scene: IScene, lifecycleEventEmitter: ILifecycleEventEmitter, ...valueTypeNames: string[]): any[];
6
+ static GetDescriptions(scene: IScene, lifecycleEventEmitter: ILifecycleEventEmitter, ...valueTypeNames: string[]): NodeDescription[];
7
7
  readonly valueTypeName: string;
8
8
  private readonly scene;
9
9
  private readonly lifecycleEventEmitter;
@@ -1 +1 @@
1
- {"version":3,"file":"EaseSceneProperty.d.ts","names":[],"sources":["../../../src/Nodes/Actions/EaseSceneProperty.ts"],"sourcesContent":[],"mappings":";;;;cAea,iBAAA,SAA0B,SAAA;gCAE5B,+BACgB;EAHd,SAAA,aAAkB,EAAA,MAAA;EAEpB,iBAAA,KAAA;EACgB,iBAAA,qBAAA;EA2BV,WAAA,CAAA,WAAA,EAAA,eAAA,EAAA,KAAA,EACN,MADM,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EAGN,MAHM,EAAA,qBAAA,EAIU,sBAJV,EAAA,EAAA,EAAA,MAAA;EACN,QAAA,YAAA;EAEA,QAAA,WAAA;EACgB,QAAA,QAAA;EA6Cf,QAAA,eAAA;EA/E2B,QAAA,MAAA;EAAS,QAAA,SAAA;;oBA+EpC"}
1
+ {"version":3,"file":"EaseSceneProperty.d.ts","names":[],"sources":["../../../src/Nodes/Actions/EaseSceneProperty.ts"],"sourcesContent":[],"mappings":";;;;cAkBa,iBAAA,SAA0B,SAAA;gCAE5B,+BACgB,sDACI;EAJlB,SAAA,aAAkB,EAAA,MAAA;EAEpB,iBAAA,KAAA;EACgB,iBAAA,qBAAA;EACI,WAAA,CAAA,WAAA,EA0Bd,eA1Bc,EAAA,KAAA,EA2BpB,MA3BoB,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EA6BpB,MA7BoB,EAAA,qBAAA,EA8BJ,sBA9BI,EAAA,EAAA,EAAA,MAAA;EA0Bd,QAAA,YAAA;EACN,QAAA,WAAA;EAEA,QAAA,QAAA;EACgB,QAAA,eAAA;EA6Cf,QAAA,MAAA;EA/E2B,QAAA,SAAA;EAAS,QAAA,MAAA;oBA+EpC"}
@@ -1,4 +1,4 @@
1
- import { AsyncNode, EasingFunctions, EasingModes, Engine, NodeDescription, Socket, toCamelCase } from "@kiberon-labs/behave-graph";
1
+ import { AsyncNode, EasingFunctions, EasingModes, Engine, NodeDescription, Socket, lerpValue, toCamelCase } from "@kiberon-labs/behave-graph";
2
2
 
3
3
  //#region src/Nodes/Actions/EaseSceneProperty.ts
4
4
  var EaseSceneProperty = class EaseSceneProperty extends AsyncNode {
@@ -48,7 +48,7 @@ var EaseSceneProperty = class EaseSceneProperty extends AsyncNode {
48
48
  const valueType = this.graph.values[this.valueTypeName];
49
49
  this.elapsedDuration = (Date.now() - this.startTime) / 1e3;
50
50
  const t = Math.min(this.elapsedDuration / this.duration, 1);
51
- const easedValue = valueType.lerp(this.initialValue, this.targetValue, this.easing(t));
51
+ const easedValue = lerpValue(valueType, this.initialValue, this.targetValue, this.easing(t));
52
52
  this.scene.setProperty(this.readInput("jsonPath"), this.valueTypeName, easedValue);
53
53
  if (this.elapsedDuration >= this.duration) {
54
54
  this.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"EaseSceneProperty.js","names":[],"sources":["../../../src/Nodes/Actions/EaseSceneProperty.ts"],"sourcesContent":["import {\n AsyncNode,\n type Easing,\n EasingFunctions,\n EasingModes,\n Engine,\n type IGraph,\n type ILifecycleEventEmitter,\n NodeDescription,\n Socket,\n toCamelCase\n} from '@kiberon-labs/behave-graph';\n\nimport type { IScene } from '../../Abstractions/IScene.js';\n\nexport class EaseSceneProperty extends AsyncNode {\n public static GetDescriptions(\n scene: IScene,\n lifecycleEventEmitter: ILifecycleEventEmitter,\n ...valueTypeNames: string[]\n ) {\n return valueTypeNames.map(\n (valueTypeName) =>\n new NodeDescription(\n `scene/ease/${valueTypeName}`,\n 'Action',\n `Ease Scene ${toCamelCase(valueTypeName)}`,\n (description, graph, config, id) =>\n new EaseSceneProperty(\n description,\n graph,\n valueTypeName,\n scene,\n lifecycleEventEmitter,\n id\n )\n )\n );\n }\n\n public readonly valueTypeName: string;\n private readonly scene: IScene;\n private readonly lifecycleEventEmitter: ILifecycleEventEmitter;\n\n constructor(\n description: NodeDescription,\n graph: IGraph,\n valueTypeName: string,\n scene: IScene,\n lifecycleEventEmitter: ILifecycleEventEmitter,\n id: string\n ) {\n super(\n description,\n graph,\n [\n new Socket('flow', 'flow'),\n new Socket('string', 'jsonPath'),\n new Socket(valueTypeName, 'value'),\n new Socket(\n 'string',\n 'easingFunction',\n 'linear',\n undefined,\n Object.keys(EasingFunctions)\n ),\n new Socket(\n 'string',\n 'easingMode',\n 'inOut',\n undefined,\n Object.keys(EasingModes)\n ),\n new Socket('float', 'easeDuration'),\n new Socket('flow', 'cancel')\n ],\n [new Socket('flow', 'flow')],\n {},\n id\n );\n this.valueTypeName = valueTypeName;\n this.scene = scene;\n this.lifecycleEventEmitter = lifecycleEventEmitter;\n }\n\n private initialValue: any = undefined;\n private targetValue: any = undefined;\n private duration = 0;\n private elapsedDuration = 0;\n private easing: Easing = EasingFunctions['linear'];\n private startTime = 0;\n private onTick: (() => void) | undefined = undefined;\n\n override triggered(\n engine: Engine,\n triggeringSocketName: string,\n finished: () => void\n ) {\n if (triggeringSocketName === 'cancel') {\n this.dispose();\n finished();\n return;\n }\n\n // if existing ease in progress, do nothing\n if (this.elapsedDuration >= this.duration) {\n return;\n }\n\n this.initialValue = this.scene.getProperty(\n this.readInput('jsonPath'),\n this.valueTypeName\n );\n this.targetValue = this.readInput('value');\n this.duration = this.readInput<number>('duration');\n this.elapsedDuration = 0;\n this.startTime = Date.now();\n\n const easingFunction =\n EasingFunctions[\n this.readInput('easingFunction') as keyof typeof EasingFunctions\n ];\n const easingMode =\n EasingModes[this.readInput('easingMode') as keyof typeof EasingModes];\n this.easing = easingMode(easingFunction);\n\n const updateOnTick = () => {\n const valueType = this.graph.values[this.valueTypeName]!;\n this.elapsedDuration = (Date.now() - this.startTime) / 1000;\n\n const t = Math.min(this.elapsedDuration / this.duration, 1);\n const easedValue = valueType.lerp(\n this.initialValue,\n this.targetValue,\n this.easing(t)\n );\n\n this.scene.setProperty(\n this.readInput('jsonPath'),\n this.valueTypeName,\n easedValue\n );\n\n if (this.elapsedDuration >= this.duration) {\n this.dispose();\n engine.commitToNewFiber(this, 'flow');\n finished();\n }\n };\n\n this.onTick = updateOnTick;\n this.lifecycleEventEmitter.tickEvent.addListener(this.onTick);\n }\n\n override dispose() {\n this.elapsedDuration = this.duration = 0;\n if (this.onTick !== undefined) {\n this.lifecycleEventEmitter.tickEvent.removeListener(this.onTick);\n this.onTick = undefined;\n }\n }\n}\n"],"mappings":";;;AAeA,IAAa,oBAAb,MAAa,0BAA0B,UAAU;CAC/C,OAAc,gBACZ,OACA,uBACA,GAAG,gBACH;AACA,SAAO,eAAe,KACnB,kBACC,IAAI,gBACF,cAAc,iBACd,UACA,cAAc,YAAY,cAAc,KACvC,aAAa,OAAO,QAAQ,OAC3B,IAAI,kBACF,aACA,OACA,eACA,OACA,uBACA,GACD,CACJ,CACJ;;CAGH,AAAgB;CAChB,AAAiB;CACjB,AAAiB;CAEjB,YACE,aACA,OACA,eACA,OACA,uBACA,IACA;AACA,QACE,aACA,OACA;GACE,IAAI,OAAO,QAAQ,OAAO;GAC1B,IAAI,OAAO,UAAU,WAAW;GAChC,IAAI,OAAO,eAAe,QAAQ;GAClC,IAAI,OACF,UACA,kBACA,UACA,QACA,OAAO,KAAK,gBAAgB,CAC7B;GACD,IAAI,OACF,UACA,cACA,SACA,QACA,OAAO,KAAK,YAAY,CACzB;GACD,IAAI,OAAO,SAAS,eAAe;GACnC,IAAI,OAAO,QAAQ,SAAS;GAC7B,EACD,CAAC,IAAI,OAAO,QAAQ,OAAO,CAAC,EAC5B,EAAE,EACF,GACD;AACD,OAAK,gBAAgB;AACrB,OAAK,QAAQ;AACb,OAAK,wBAAwB;;CAG/B,AAAQ,eAAoB;CAC5B,AAAQ,cAAmB;CAC3B,AAAQ,WAAW;CACnB,AAAQ,kBAAkB;CAC1B,AAAQ,SAAiB,gBAAgB;CACzC,AAAQ,YAAY;CACpB,AAAQ,SAAmC;CAE3C,AAAS,UACP,QACA,sBACA,UACA;AACA,MAAI,yBAAyB,UAAU;AACrC,QAAK,SAAS;AACd,aAAU;AACV;;AAIF,MAAI,KAAK,mBAAmB,KAAK,SAC/B;AAGF,OAAK,eAAe,KAAK,MAAM,YAC7B,KAAK,UAAU,WAAW,EAC1B,KAAK,cACN;AACD,OAAK,cAAc,KAAK,UAAU,QAAQ;AAC1C,OAAK,WAAW,KAAK,UAAkB,WAAW;AAClD,OAAK,kBAAkB;AACvB,OAAK,YAAY,KAAK,KAAK;EAE3B,MAAM,iBACJ,gBACE,KAAK,UAAU,iBAAiB;EAEpC,MAAM,aACJ,YAAY,KAAK,UAAU,aAAa;AAC1C,OAAK,SAAS,WAAW,eAAe;EAExC,MAAM,qBAAqB;GACzB,MAAM,YAAY,KAAK,MAAM,OAAO,KAAK;AACzC,QAAK,mBAAmB,KAAK,KAAK,GAAG,KAAK,aAAa;GAEvD,MAAM,IAAI,KAAK,IAAI,KAAK,kBAAkB,KAAK,UAAU,EAAE;GAC3D,MAAM,aAAa,UAAU,KAC3B,KAAK,cACL,KAAK,aACL,KAAK,OAAO,EAAE,CACf;AAED,QAAK,MAAM,YACT,KAAK,UAAU,WAAW,EAC1B,KAAK,eACL,WACD;AAED,OAAI,KAAK,mBAAmB,KAAK,UAAU;AACzC,SAAK,SAAS;AACd,WAAO,iBAAiB,MAAM,OAAO;AACrC,cAAU;;;AAId,OAAK,SAAS;AACd,OAAK,sBAAsB,UAAU,YAAY,KAAK,OAAO;;CAG/D,AAAS,UAAU;AACjB,OAAK,kBAAkB,KAAK,WAAW;AACvC,MAAI,KAAK,WAAW,QAAW;AAC7B,QAAK,sBAAsB,UAAU,eAAe,KAAK,OAAO;AAChE,QAAK,SAAS"}
1
+ {"version":3,"file":"EaseSceneProperty.js","names":[],"sources":["../../../src/Nodes/Actions/EaseSceneProperty.ts"],"sourcesContent":["import {\n AsyncNode,\n EasingFunctions,\n EasingModes,\n Engine,\n type IGraph,\n type ILifecycleEventEmitter,\n lerpValue,\n NodeDescription,\n Socket,\n toCamelCase\n} from '@kiberon-labs/behave-graph';\n\n/** An easing curve: maps a normalized time `t` in [0,1] to an eased value. */\ntype Easing = (typeof EasingFunctions)[keyof typeof EasingFunctions];\n\nimport type { IScene } from '../../Abstractions/IScene.js';\n\nexport class EaseSceneProperty extends AsyncNode {\n public static GetDescriptions(\n scene: IScene,\n lifecycleEventEmitter: ILifecycleEventEmitter,\n ...valueTypeNames: string[]\n ) {\n return valueTypeNames.map(\n (valueTypeName) =>\n new NodeDescription(\n `scene/ease/${valueTypeName}`,\n 'Action',\n `Ease Scene ${toCamelCase(valueTypeName)}`,\n (description, graph, config, id) =>\n new EaseSceneProperty(\n description,\n graph,\n valueTypeName,\n scene,\n lifecycleEventEmitter,\n id\n )\n )\n );\n }\n\n public readonly valueTypeName: string;\n private readonly scene: IScene;\n private readonly lifecycleEventEmitter: ILifecycleEventEmitter;\n\n constructor(\n description: NodeDescription,\n graph: IGraph,\n valueTypeName: string,\n scene: IScene,\n lifecycleEventEmitter: ILifecycleEventEmitter,\n id: string\n ) {\n super(\n description,\n graph,\n [\n new Socket('flow', 'flow'),\n new Socket('string', 'jsonPath'),\n new Socket(valueTypeName, 'value'),\n new Socket(\n 'string',\n 'easingFunction',\n 'linear',\n undefined,\n Object.keys(EasingFunctions)\n ),\n new Socket(\n 'string',\n 'easingMode',\n 'inOut',\n undefined,\n Object.keys(EasingModes)\n ),\n new Socket('float', 'easeDuration'),\n new Socket('flow', 'cancel')\n ],\n [new Socket('flow', 'flow')],\n {},\n id\n );\n this.valueTypeName = valueTypeName;\n this.scene = scene;\n this.lifecycleEventEmitter = lifecycleEventEmitter;\n }\n\n private initialValue: any = undefined;\n private targetValue: any = undefined;\n private duration = 0;\n private elapsedDuration = 0;\n private easing: Easing = EasingFunctions['linear'];\n private startTime = 0;\n private onTick: (() => void) | undefined = undefined;\n\n override triggered(\n engine: Engine,\n triggeringSocketName: string,\n finished: () => void\n ) {\n if (triggeringSocketName === 'cancel') {\n this.dispose();\n finished();\n return;\n }\n\n // if existing ease in progress, do nothing\n if (this.elapsedDuration >= this.duration) {\n return;\n }\n\n this.initialValue = this.scene.getProperty(\n this.readInput('jsonPath'),\n this.valueTypeName\n );\n this.targetValue = this.readInput('value');\n this.duration = this.readInput<number>('duration');\n this.elapsedDuration = 0;\n this.startTime = Date.now();\n\n const easingFunction =\n EasingFunctions[\n this.readInput('easingFunction') as keyof typeof EasingFunctions\n ];\n const easingMode =\n EasingModes[this.readInput('easingMode') as keyof typeof EasingModes];\n this.easing = easingMode(easingFunction);\n\n const updateOnTick = () => {\n const valueType = this.graph.values[this.valueTypeName]!;\n this.elapsedDuration = (Date.now() - this.startTime) / 1000;\n\n const t = Math.min(this.elapsedDuration / this.duration, 1);\n const easedValue = lerpValue(\n valueType,\n this.initialValue,\n this.targetValue,\n this.easing(t)\n );\n\n this.scene.setProperty(\n this.readInput('jsonPath'),\n this.valueTypeName,\n easedValue\n );\n\n if (this.elapsedDuration >= this.duration) {\n this.dispose();\n engine.commitToNewFiber(this, 'flow');\n finished();\n }\n };\n\n this.onTick = updateOnTick;\n this.lifecycleEventEmitter.tickEvent.addListener(this.onTick);\n }\n\n override dispose() {\n this.elapsedDuration = this.duration = 0;\n if (this.onTick !== undefined) {\n this.lifecycleEventEmitter.tickEvent.removeListener(this.onTick);\n this.onTick = undefined;\n }\n }\n}\n"],"mappings":";;;AAkBA,IAAa,oBAAb,MAAa,0BAA0B,UAAU;CAC/C,OAAc,gBACZ,OACA,uBACA,GAAG,gBACH;AACA,SAAO,eAAe,KACnB,kBACC,IAAI,gBACF,cAAc,iBACd,UACA,cAAc,YAAY,cAAc,KACvC,aAAa,OAAO,QAAQ,OAC3B,IAAI,kBACF,aACA,OACA,eACA,OACA,uBACA,GACD,CACJ,CACJ;;CAGH,AAAgB;CAChB,AAAiB;CACjB,AAAiB;CAEjB,YACE,aACA,OACA,eACA,OACA,uBACA,IACA;AACA,QACE,aACA,OACA;GACE,IAAI,OAAO,QAAQ,OAAO;GAC1B,IAAI,OAAO,UAAU,WAAW;GAChC,IAAI,OAAO,eAAe,QAAQ;GAClC,IAAI,OACF,UACA,kBACA,UACA,QACA,OAAO,KAAK,gBAAgB,CAC7B;GACD,IAAI,OACF,UACA,cACA,SACA,QACA,OAAO,KAAK,YAAY,CACzB;GACD,IAAI,OAAO,SAAS,eAAe;GACnC,IAAI,OAAO,QAAQ,SAAS;GAC7B,EACD,CAAC,IAAI,OAAO,QAAQ,OAAO,CAAC,EAC5B,EAAE,EACF,GACD;AACD,OAAK,gBAAgB;AACrB,OAAK,QAAQ;AACb,OAAK,wBAAwB;;CAG/B,AAAQ,eAAoB;CAC5B,AAAQ,cAAmB;CAC3B,AAAQ,WAAW;CACnB,AAAQ,kBAAkB;CAC1B,AAAQ,SAAiB,gBAAgB;CACzC,AAAQ,YAAY;CACpB,AAAQ,SAAmC;CAE3C,AAAS,UACP,QACA,sBACA,UACA;AACA,MAAI,yBAAyB,UAAU;AACrC,QAAK,SAAS;AACd,aAAU;AACV;;AAIF,MAAI,KAAK,mBAAmB,KAAK,SAC/B;AAGF,OAAK,eAAe,KAAK,MAAM,YAC7B,KAAK,UAAU,WAAW,EAC1B,KAAK,cACN;AACD,OAAK,cAAc,KAAK,UAAU,QAAQ;AAC1C,OAAK,WAAW,KAAK,UAAkB,WAAW;AAClD,OAAK,kBAAkB;AACvB,OAAK,YAAY,KAAK,KAAK;EAE3B,MAAM,iBACJ,gBACE,KAAK,UAAU,iBAAiB;EAEpC,MAAM,aACJ,YAAY,KAAK,UAAU,aAAa;AAC1C,OAAK,SAAS,WAAW,eAAe;EAExC,MAAM,qBAAqB;GACzB,MAAM,YAAY,KAAK,MAAM,OAAO,KAAK;AACzC,QAAK,mBAAmB,KAAK,KAAK,GAAG,KAAK,aAAa;GAEvD,MAAM,IAAI,KAAK,IAAI,KAAK,kBAAkB,KAAK,UAAU,EAAE;GAC3D,MAAM,aAAa,UACjB,WACA,KAAK,cACL,KAAK,aACL,KAAK,OAAO,EAAE,CACf;AAED,QAAK,MAAM,YACT,KAAK,UAAU,WAAW,EAC1B,KAAK,eACL,WACD;AAED,OAAI,KAAK,mBAAmB,KAAK,UAAU;AACzC,SAAK,SAAS;AACd,WAAO,iBAAiB,MAAM,OAAO;AACrC,cAAU;;;AAId,OAAK,SAAS;AACd,OAAK,sBAAsB,UAAU,YAAY,KAAK,OAAO;;CAG/D,AAAS,UAAU;AACjB,OAAK,kBAAkB,KAAK,WAAW;AACvC,MAAI,KAAK,WAAW,QAAW;AAC7B,QAAK,sBAAsB,UAAU,eAAe,KAAK,OAAO;AAChE,QAAK,SAAS"}
@@ -0,0 +1,16 @@
1
+ import * as _kiberon_labs_behave_graph0 from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/LookAt.d.ts
4
+ declare const LookAt: _kiberon_labs_behave_graph0.IFlowNodeDefinition<{
5
+ flow: string;
6
+ meshName: (_: _kiberon_labs_behave_graph0.NodeConfiguration, graphApi: _kiberon_labs_behave_graph0.IGraph) => {
7
+ valueType: string;
8
+ choices: _kiberon_labs_behave_graph0.Choices | undefined;
9
+ };
10
+ target: string;
11
+ }, {
12
+ flow: string;
13
+ }, _kiberon_labs_behave_graph0.NodeConfigurationDescription, undefined>;
14
+ //#endregion
15
+ export { LookAt };
16
+ //# sourceMappingURL=LookAt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookAt.d.ts","names":[],"sources":["../../../src/Nodes/Actions/LookAt.ts"],"sourcesContent":[],"mappings":";;;cAOa,oCAAM;;gBA0BjB,2BAAA,CAAA;IA1BW,SA0BX,EAAA,MAAA;IAAA,OAAA,wCAAA,SAAA;;;;;CA1BiB,4DAAA,SAAA,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { NodeCategory, makeFlowNodeDefinition } from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/LookAt.ts
4
+ const LookAt = makeFlowNodeDefinition({
5
+ typeName: "scene/lookAt",
6
+ category: NodeCategory.Effect,
7
+ label: "Look At",
8
+ in: {
9
+ flow: "flow",
10
+ meshName: (_, graphApi) => {
11
+ return {
12
+ valueType: "string",
13
+ choices: graphApi.getDependency("IScene")?.getMeshNames()
14
+ };
15
+ },
16
+ target: "vec3"
17
+ },
18
+ out: { flow: "flow" },
19
+ initialState: void 0,
20
+ triggered: ({ commit, read, graph }) => {
21
+ const scene = graph.getDependency("IScene");
22
+ const meshName = read("meshName");
23
+ const target = read("target");
24
+ scene?.lookAt(meshName, {
25
+ x: target.x,
26
+ y: target.y,
27
+ z: target.z
28
+ });
29
+ commit("flow");
30
+ }
31
+ });
32
+
33
+ //#endregion
34
+ export { LookAt };
35
+ //# sourceMappingURL=LookAt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookAt.js","names":[],"sources":["../../../src/Nodes/Actions/LookAt.ts"],"sourcesContent":["import type { Vec3 } from '@/Values/Internal/Vec3';\nimport {\n makeFlowNodeDefinition,\n NodeCategory\n} from '@kiberon-labs/behave-graph';\n\n// Orient a mesh to face a world-space target position.\nexport const LookAt = makeFlowNodeDefinition({\n typeName: 'scene/lookAt',\n category: NodeCategory.Effect,\n label: 'Look At',\n in: {\n flow: 'flow',\n meshName: (_, graphApi) => {\n const scene = graphApi.getDependency('IScene');\n return {\n valueType: 'string',\n choices: scene?.getMeshNames()\n };\n },\n target: 'vec3'\n },\n out: {\n flow: 'flow'\n },\n initialState: undefined,\n triggered: ({ commit, read, graph }) => {\n const scene = graph.getDependency('IScene');\n const meshName = read<string>('meshName');\n const target = read<Vec3>('target');\n scene?.lookAt(meshName, { x: target.x, y: target.y, z: target.z });\n commit('flow');\n }\n});\n"],"mappings":";;;AAOA,MAAa,SAAS,uBAAuB;CAC3C,UAAU;CACV,UAAU,aAAa;CACvB,OAAO;CACP,IAAI;EACF,MAAM;EACN,WAAW,GAAG,aAAa;AAEzB,UAAO;IACL,WAAW;IACX,SAHY,SAAS,cAAc,SAAS,EAG5B,cAAc;IAC/B;;EAEH,QAAQ;EACT;CACD,KAAK,EACH,MAAM,QACP;CACD,cAAc;CACd,YAAY,EAAE,QAAQ,MAAM,YAAY;EACtC,MAAM,QAAQ,MAAM,cAAc,SAAS;EAC3C,MAAM,WAAW,KAAa,WAAW;EACzC,MAAM,SAAS,KAAW,SAAS;AACnC,SAAO,OAAO,UAAU;GAAE,GAAG,OAAO;GAAG,GAAG,OAAO;GAAG,GAAG,OAAO;GAAG,CAAC;AAClE,SAAO,OAAO;;CAEjB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as _kiberon_labs_behave_graph26 from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/MoveTowards.d.ts
4
+ declare const MoveTowards: _kiberon_labs_behave_graph26.IFlowNodeDefinition<{
5
+ flow: string;
6
+ meshName: (_: _kiberon_labs_behave_graph26.NodeConfiguration, graphApi: _kiberon_labs_behave_graph26.IGraph) => {
7
+ valueType: string;
8
+ choices: _kiberon_labs_behave_graph26.Choices | undefined;
9
+ };
10
+ targetX: string;
11
+ targetY: string;
12
+ targetZ: string;
13
+ speed: string;
14
+ deltaSeconds: string;
15
+ }, {
16
+ ongoing: string;
17
+ done: string;
18
+ }, _kiberon_labs_behave_graph26.NodeConfigurationDescription, undefined>;
19
+ //#endregion
20
+ export { MoveTowards };
21
+ //# sourceMappingURL=MoveTowards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoveTowards.d.ts","names":[],"sources":["../../../src/Nodes/Actions/MoveTowards.ts"],"sourcesContent":[],"mappings":";;;cAQa,0CAAW;;gBA8CtB,4BAAA,CAAA;IA9CW,SAAA,EA8CX,MAAA;IAAA,OAAA,yCAAA,SAAA;;;;;EA9CsB,KAAA,EAAA,MAAA"}
@@ -0,0 +1,46 @@
1
+ import { NodeCategory, makeFlowNodeDefinition } from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/MoveTowards.ts
4
+ const MoveTowards = makeFlowNodeDefinition({
5
+ typeName: "scene/moveTowards",
6
+ category: NodeCategory.Effect,
7
+ label: "Move Towards",
8
+ in: {
9
+ flow: "flow",
10
+ meshName: (_, graphApi) => {
11
+ return {
12
+ valueType: "string",
13
+ choices: graphApi.getDependency("IScene")?.getMeshNames()
14
+ };
15
+ },
16
+ targetX: "float",
17
+ targetY: "float",
18
+ targetZ: "float",
19
+ speed: "float",
20
+ deltaSeconds: "float"
21
+ },
22
+ out: {
23
+ ongoing: "flow",
24
+ done: "flow"
25
+ },
26
+ initialState: void 0,
27
+ triggered: ({ commit, read, graph }) => {
28
+ const scene = graph.getDependency("IScene");
29
+ const meshName = read("meshName");
30
+ const targetX = read("targetX");
31
+ const targetY = read("targetY");
32
+ const targetZ = read("targetZ");
33
+ const speed = read("speed");
34
+ const deltaSeconds = read("deltaSeconds");
35
+ if (scene?.moveTowards(meshName, {
36
+ x: targetX,
37
+ y: targetY,
38
+ z: targetZ
39
+ }, speed, deltaSeconds)) commit("done");
40
+ else commit("ongoing");
41
+ }
42
+ });
43
+
44
+ //#endregion
45
+ export { MoveTowards };
46
+ //# sourceMappingURL=MoveTowards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoveTowards.js","names":[],"sources":["../../../src/Nodes/Actions/MoveTowards.ts"],"sourcesContent":["import {\n makeFlowNodeDefinition,\n NodeCategory\n} from '@kiberon-labs/behave-graph';\n\n// Move a mesh towards a target position by (speed * deltaSeconds).\n// Outputs 'done' when the mesh has arrived, otherwise 'ongoing'.\n// Designed to be driven from an OnTick loop.\nexport const MoveTowards = makeFlowNodeDefinition({\n typeName: 'scene/moveTowards',\n category: NodeCategory.Effect,\n label: 'Move Towards',\n in: {\n flow: 'flow',\n meshName: (_, graphApi) => {\n const scene = graphApi.getDependency('IScene');\n return {\n valueType: 'string',\n choices: scene?.getMeshNames()\n };\n },\n targetX: 'float',\n targetY: 'float',\n targetZ: 'float',\n speed: 'float',\n deltaSeconds: 'float'\n },\n out: {\n ongoing: 'flow',\n done: 'flow'\n },\n initialState: undefined,\n triggered: ({ commit, read, graph }) => {\n const scene = graph.getDependency('IScene');\n const meshName = read<string>('meshName');\n const targetX = read<number>('targetX');\n const targetY = read<number>('targetY');\n const targetZ = read<number>('targetZ');\n const speed = read<number>('speed');\n const deltaSeconds = read<number>('deltaSeconds');\n\n const arrived = scene?.moveTowards(\n meshName,\n { x: targetX, y: targetY, z: targetZ },\n speed,\n deltaSeconds\n );\n\n if (arrived) {\n commit('done');\n } else {\n commit('ongoing');\n }\n }\n});\n"],"mappings":";;;AAQA,MAAa,cAAc,uBAAuB;CAChD,UAAU;CACV,UAAU,aAAa;CACvB,OAAO;CACP,IAAI;EACF,MAAM;EACN,WAAW,GAAG,aAAa;AAEzB,UAAO;IACL,WAAW;IACX,SAHY,SAAS,cAAc,SAAS,EAG5B,cAAc;IAC/B;;EAEH,SAAS;EACT,SAAS;EACT,SAAS;EACT,OAAO;EACP,cAAc;EACf;CACD,KAAK;EACH,SAAS;EACT,MAAM;EACP;CACD,cAAc;CACd,YAAY,EAAE,QAAQ,MAAM,YAAY;EACtC,MAAM,QAAQ,MAAM,cAAc,SAAS;EAC3C,MAAM,WAAW,KAAa,WAAW;EACzC,MAAM,UAAU,KAAa,UAAU;EACvC,MAAM,UAAU,KAAa,UAAU;EACvC,MAAM,UAAU,KAAa,UAAU;EACvC,MAAM,QAAQ,KAAa,QAAQ;EACnC,MAAM,eAAe,KAAa,eAAe;AASjD,MAPgB,OAAO,YACrB,UACA;GAAE,GAAG;GAAS,GAAG;GAAS,GAAG;GAAS,EACtC,OACA,aACD,CAGC,QAAO,OAAO;MAEd,QAAO,UAAU;;CAGtB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as _kiberon_labs_behave_graph31 from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/RemoveLight.d.ts
4
+ declare const RemoveLight: _kiberon_labs_behave_graph31.IFlowNodeDefinition<{
5
+ flow: string;
6
+ name: (_: _kiberon_labs_behave_graph31.NodeConfiguration, graphApi: _kiberon_labs_behave_graph31.IGraph) => {
7
+ valueType: string;
8
+ choices: _kiberon_labs_behave_graph31.Choices | undefined;
9
+ };
10
+ }, {
11
+ flow: string;
12
+ }, _kiberon_labs_behave_graph31.NodeConfigurationDescription, undefined>;
13
+ //#endregion
14
+ export { RemoveLight };
15
+ //# sourceMappingURL=RemoveLight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveLight.d.ts","names":[],"sources":["../../../src/Nodes/Actions/RemoveLight.ts"],"sourcesContent":[],"mappings":";;;cAKa,0CAAW;;YAuBtB,4BAAA,CAAA;IAvBW,SAAA,EAuBX,MAAA;IAAA,OAAA,yCAAA,SAAA;;;;8DAvBsB,SAAA,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { NodeCategory, makeFlowNodeDefinition } from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/RemoveLight.ts
4
+ const RemoveLight = makeFlowNodeDefinition({
5
+ typeName: "scene/removeLight",
6
+ category: NodeCategory.Effect,
7
+ label: "Remove Light",
8
+ in: {
9
+ flow: "flow",
10
+ name: (_, graphApi) => {
11
+ return {
12
+ valueType: "string",
13
+ choices: graphApi.getDependency("IScene")?.getLightNames()
14
+ };
15
+ }
16
+ },
17
+ out: { flow: "flow" },
18
+ initialState: void 0,
19
+ triggered: ({ commit, read, graph }) => {
20
+ graph.getDependency("IScene")?.removeLight(read("name"));
21
+ commit("flow");
22
+ }
23
+ });
24
+
25
+ //#endregion
26
+ export { RemoveLight };
27
+ //# sourceMappingURL=RemoveLight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveLight.js","names":[],"sources":["../../../src/Nodes/Actions/RemoveLight.ts"],"sourcesContent":["import {\n makeFlowNodeDefinition,\n NodeCategory\n} from '@kiberon-labs/behave-graph';\n\nexport const RemoveLight = makeFlowNodeDefinition({\n typeName: 'scene/removeLight',\n category: NodeCategory.Effect,\n label: 'Remove Light',\n in: {\n flow: 'flow',\n name: (_, graphApi) => {\n const scene = graphApi.getDependency('IScene');\n return {\n valueType: 'string',\n choices: scene?.getLightNames()\n };\n }\n },\n out: {\n flow: 'flow'\n },\n initialState: undefined,\n triggered: ({ commit, read, graph }) => {\n const scene = graph.getDependency('IScene');\n scene?.removeLight(read<string>('name'));\n commit('flow');\n }\n});\n"],"mappings":";;;AAKA,MAAa,cAAc,uBAAuB;CAChD,UAAU;CACV,UAAU,aAAa;CACvB,OAAO;CACP,IAAI;EACF,MAAM;EACN,OAAO,GAAG,aAAa;AAErB,UAAO;IACL,WAAW;IACX,SAHY,SAAS,cAAc,SAAS,EAG5B,eAAe;IAChC;;EAEJ;CACD,KAAK,EACH,MAAM,QACP;CACD,cAAc;CACd,YAAY,EAAE,QAAQ,MAAM,YAAY;AAEtC,EADc,MAAM,cAAc,SAAS,EACpC,YAAY,KAAa,OAAO,CAAC;AACxC,SAAO,OAAO;;CAEjB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as _kiberon_labs_behave_graph36 from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetLightProperty.d.ts
4
+ declare const SetLightProperty: _kiberon_labs_behave_graph36.IFlowNodeDefinition<{
5
+ flow: string;
6
+ name: (_: _kiberon_labs_behave_graph36.NodeConfiguration, graphApi: _kiberon_labs_behave_graph36.IGraph) => {
7
+ valueType: string;
8
+ choices: _kiberon_labs_behave_graph36.Choices | undefined;
9
+ };
10
+ property: (_: _kiberon_labs_behave_graph36.NodeConfiguration) => {
11
+ valueType: string;
12
+ choices: {
13
+ text: string;
14
+ value: string;
15
+ }[];
16
+ };
17
+ floatValue: string;
18
+ colorValue: string;
19
+ vec3Value: string;
20
+ }, {
21
+ flow: string;
22
+ }, _kiberon_labs_behave_graph36.NodeConfigurationDescription, undefined>;
23
+ //#endregion
24
+ export { SetLightProperty };
25
+ //# sourceMappingURL=SetLightProperty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetLightProperty.d.ts","names":[],"sources":["../../../src/Nodes/Actions/SetLightProperty.ts"],"sourcesContent":[],"mappings":";;;cAWa,+CAAgB;;YAgD3B,4BAAA,CAAA;IAhDW,SAAA,EAAA,MAgDX;IAAA,OAAA,yCAAA,SAAA;;;;;;MAhD2B,KAAA,EAAA,MAAA"}
@@ -0,0 +1,64 @@
1
+ import { NodeCategory, makeFlowNodeDefinition } from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetLightProperty.ts
4
+ const lightPropertyChoices = [
5
+ {
6
+ text: "color",
7
+ value: "color"
8
+ },
9
+ {
10
+ text: "intensity",
11
+ value: "intensity"
12
+ },
13
+ {
14
+ text: "position",
15
+ value: "position"
16
+ }
17
+ ];
18
+ const SetLightProperty = makeFlowNodeDefinition({
19
+ typeName: "scene/setLightProperty",
20
+ category: NodeCategory.Effect,
21
+ label: "Set Light Property",
22
+ in: {
23
+ flow: "flow",
24
+ name: (_, graphApi) => {
25
+ return {
26
+ valueType: "string",
27
+ choices: graphApi.getDependency("IScene")?.getLightNames()
28
+ };
29
+ },
30
+ property: (_) => ({
31
+ valueType: "string",
32
+ choices: lightPropertyChoices
33
+ }),
34
+ floatValue: "float",
35
+ colorValue: "color",
36
+ vec3Value: "vec3"
37
+ },
38
+ out: { flow: "flow" },
39
+ initialState: void 0,
40
+ triggered: ({ commit, read, graph }) => {
41
+ const scene = graph.getDependency("IScene");
42
+ const name = read("name");
43
+ const property = read("property");
44
+ let value;
45
+ switch (property) {
46
+ case "intensity":
47
+ value = read("floatValue");
48
+ break;
49
+ case "color":
50
+ value = read("colorValue");
51
+ break;
52
+ case "position":
53
+ value = read("vec3Value");
54
+ break;
55
+ default: value = read("floatValue");
56
+ }
57
+ scene?.setLightProperty(name, property, value);
58
+ commit("flow");
59
+ }
60
+ });
61
+
62
+ //#endregion
63
+ export { SetLightProperty };
64
+ //# sourceMappingURL=SetLightProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetLightProperty.js","names":["value: unknown"],"sources":["../../../src/Nodes/Actions/SetLightProperty.ts"],"sourcesContent":["import {\n makeFlowNodeDefinition,\n NodeCategory\n} from '@kiberon-labs/behave-graph';\n\nconst lightPropertyChoices = [\n { text: 'color', value: 'color' },\n { text: 'intensity', value: 'intensity' },\n { text: 'position', value: 'position' }\n];\n\nexport const SetLightProperty = makeFlowNodeDefinition({\n typeName: 'scene/setLightProperty',\n category: NodeCategory.Effect,\n label: 'Set Light Property',\n in: {\n flow: 'flow',\n name: (_, graphApi) => {\n const scene = graphApi.getDependency('IScene');\n return {\n valueType: 'string',\n choices: scene?.getLightNames()\n };\n },\n property: (_) => ({\n valueType: 'string',\n choices: lightPropertyChoices\n }),\n floatValue: 'float',\n colorValue: 'color',\n vec3Value: 'vec3'\n },\n out: {\n flow: 'flow'\n },\n initialState: undefined,\n triggered: ({ commit, read, graph }) => {\n const scene = graph.getDependency('IScene');\n const name = read<string>('name');\n const property = read<string>('property');\n\n let value: unknown;\n switch (property) {\n case 'intensity':\n value = read<number>('floatValue');\n break;\n case 'color':\n value = read('colorValue');\n break;\n case 'position':\n value = read('vec3Value');\n break;\n default:\n value = read<number>('floatValue');\n }\n\n scene?.setLightProperty(name, property, value);\n commit('flow');\n }\n});\n"],"mappings":";;;AAKA,MAAM,uBAAuB;CAC3B;EAAE,MAAM;EAAS,OAAO;EAAS;CACjC;EAAE,MAAM;EAAa,OAAO;EAAa;CACzC;EAAE,MAAM;EAAY,OAAO;EAAY;CACxC;AAED,MAAa,mBAAmB,uBAAuB;CACrD,UAAU;CACV,UAAU,aAAa;CACvB,OAAO;CACP,IAAI;EACF,MAAM;EACN,OAAO,GAAG,aAAa;AAErB,UAAO;IACL,WAAW;IACX,SAHY,SAAS,cAAc,SAAS,EAG5B,eAAe;IAChC;;EAEH,WAAW,OAAO;GAChB,WAAW;GACX,SAAS;GACV;EACD,YAAY;EACZ,YAAY;EACZ,WAAW;EACZ;CACD,KAAK,EACH,MAAM,QACP;CACD,cAAc;CACd,YAAY,EAAE,QAAQ,MAAM,YAAY;EACtC,MAAM,QAAQ,MAAM,cAAc,SAAS;EAC3C,MAAM,OAAO,KAAa,OAAO;EACjC,MAAM,WAAW,KAAa,WAAW;EAEzC,IAAIA;AACJ,UAAQ,UAAR;GACE,KAAK;AACH,YAAQ,KAAa,aAAa;AAClC;GACF,KAAK;AACH,YAAQ,KAAK,aAAa;AAC1B;GACF,KAAK;AACH,YAAQ,KAAK,YAAY;AACzB;GACF,QACE,SAAQ,KAAa,aAAa;;AAGtC,SAAO,iBAAiB,MAAM,UAAU,MAAM;AAC9C,SAAO,OAAO;;CAEjB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as _kiberon_labs_behave_graph42 from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetMaterialProperty.d.ts
4
+ declare const SetMaterialProperty: _kiberon_labs_behave_graph42.IFlowNodeDefinition<{
5
+ flow: string;
6
+ meshName: (_: _kiberon_labs_behave_graph42.NodeConfiguration, graphApi: _kiberon_labs_behave_graph42.IGraph) => {
7
+ valueType: string;
8
+ choices: _kiberon_labs_behave_graph42.Choices | undefined;
9
+ };
10
+ property: (_: _kiberon_labs_behave_graph42.NodeConfiguration) => {
11
+ valueType: string;
12
+ choices: {
13
+ text: string;
14
+ value: string;
15
+ }[];
16
+ };
17
+ floatValue: string;
18
+ booleanValue: string;
19
+ colorValue: string;
20
+ }, {
21
+ flow: string;
22
+ }, _kiberon_labs_behave_graph42.NodeConfigurationDescription, undefined>;
23
+ //#endregion
24
+ export { SetMaterialProperty };
25
+ //# sourceMappingURL=SetMaterialProperty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetMaterialProperty.d.ts","names":[],"sources":["../../../src/Nodes/Actions/SetMaterialProperty.ts"],"sourcesContent":[],"mappings":";;;cAYa,kDAAmB;;gBAiD9B,4BAAA,CAAA;IAjDW,SAAA,EAAA,MAAA;IAiDX,OAAA,yCAAA,SAAA;;;;;;MAjD8B,KAAA,EAAA,MAAA"}
@@ -0,0 +1,69 @@
1
+ import { NodeCategory, makeFlowNodeDefinition } from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetMaterialProperty.ts
4
+ const materialPropertyChoices = [
5
+ {
6
+ text: "color",
7
+ value: "color"
8
+ },
9
+ {
10
+ text: "opacity",
11
+ value: "opacity"
12
+ },
13
+ {
14
+ text: "visible",
15
+ value: "visible"
16
+ },
17
+ {
18
+ text: "wireframe",
19
+ value: "wireframe"
20
+ }
21
+ ];
22
+ const SetMaterialProperty = makeFlowNodeDefinition({
23
+ typeName: "scene/setMaterialProperty",
24
+ category: NodeCategory.Effect,
25
+ label: "Set Material Property",
26
+ in: {
27
+ flow: "flow",
28
+ meshName: (_, graphApi) => {
29
+ return {
30
+ valueType: "string",
31
+ choices: graphApi.getDependency("IScene")?.getMeshNames()
32
+ };
33
+ },
34
+ property: (_) => ({
35
+ valueType: "string",
36
+ choices: materialPropertyChoices
37
+ }),
38
+ floatValue: "float",
39
+ booleanValue: "boolean",
40
+ colorValue: "color"
41
+ },
42
+ out: { flow: "flow" },
43
+ initialState: void 0,
44
+ triggered: ({ commit, read, graph }) => {
45
+ const scene = graph.getDependency("IScene");
46
+ const meshName = read("meshName");
47
+ const property = read("property");
48
+ let value;
49
+ switch (property) {
50
+ case "color":
51
+ value = read("colorValue");
52
+ break;
53
+ case "opacity":
54
+ value = read("floatValue");
55
+ break;
56
+ case "visible":
57
+ case "wireframe":
58
+ value = read("booleanValue");
59
+ break;
60
+ default: value = read("floatValue");
61
+ }
62
+ scene?.setMaterialProperty(meshName, property, value);
63
+ commit("flow");
64
+ }
65
+ });
66
+
67
+ //#endregion
68
+ export { SetMaterialProperty };
69
+ //# sourceMappingURL=SetMaterialProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetMaterialProperty.js","names":["value: unknown"],"sources":["../../../src/Nodes/Actions/SetMaterialProperty.ts"],"sourcesContent":["import {\n makeFlowNodeDefinition,\n NodeCategory\n} from '@kiberon-labs/behave-graph';\n\nconst materialPropertyChoices = [\n { text: 'color', value: 'color' },\n { text: 'opacity', value: 'opacity' },\n { text: 'visible', value: 'visible' },\n { text: 'wireframe', value: 'wireframe' }\n];\n\nexport const SetMaterialProperty = makeFlowNodeDefinition({\n typeName: 'scene/setMaterialProperty',\n category: NodeCategory.Effect,\n label: 'Set Material Property',\n in: {\n flow: 'flow',\n meshName: (_, graphApi) => {\n const scene = graphApi.getDependency('IScene');\n return {\n valueType: 'string',\n choices: scene?.getMeshNames()\n };\n },\n property: (_) => ({\n valueType: 'string',\n choices: materialPropertyChoices\n }),\n floatValue: 'float',\n booleanValue: 'boolean',\n colorValue: 'color'\n },\n out: {\n flow: 'flow'\n },\n initialState: undefined,\n triggered: ({ commit, read, graph }) => {\n const scene = graph.getDependency('IScene');\n const meshName = read<string>('meshName');\n const property = read<string>('property');\n\n let value: unknown;\n switch (property) {\n case 'color':\n value = read('colorValue');\n break;\n case 'opacity':\n value = read<number>('floatValue');\n break;\n case 'visible':\n case 'wireframe':\n value = read<boolean>('booleanValue');\n break;\n default:\n value = read<number>('floatValue');\n }\n\n scene?.setMaterialProperty(meshName, property, value);\n commit('flow');\n }\n});\n"],"mappings":";;;AAKA,MAAM,0BAA0B;CAC9B;EAAE,MAAM;EAAS,OAAO;EAAS;CACjC;EAAE,MAAM;EAAW,OAAO;EAAW;CACrC;EAAE,MAAM;EAAW,OAAO;EAAW;CACrC;EAAE,MAAM;EAAa,OAAO;EAAa;CAC1C;AAED,MAAa,sBAAsB,uBAAuB;CACxD,UAAU;CACV,UAAU,aAAa;CACvB,OAAO;CACP,IAAI;EACF,MAAM;EACN,WAAW,GAAG,aAAa;AAEzB,UAAO;IACL,WAAW;IACX,SAHY,SAAS,cAAc,SAAS,EAG5B,cAAc;IAC/B;;EAEH,WAAW,OAAO;GAChB,WAAW;GACX,SAAS;GACV;EACD,YAAY;EACZ,cAAc;EACd,YAAY;EACb;CACD,KAAK,EACH,MAAM,QACP;CACD,cAAc;CACd,YAAY,EAAE,QAAQ,MAAM,YAAY;EACtC,MAAM,QAAQ,MAAM,cAAc,SAAS;EAC3C,MAAM,WAAW,KAAa,WAAW;EACzC,MAAM,WAAW,KAAa,WAAW;EAEzC,IAAIA;AACJ,UAAQ,UAAR;GACE,KAAK;AACH,YAAQ,KAAK,aAAa;AAC1B;GACF,KAAK;AACH,YAAQ,KAAa,aAAa;AAClC;GACF,KAAK;GACL,KAAK;AACH,YAAQ,KAAc,eAAe;AACrC;GACF,QACE,SAAQ,KAAa,aAAa;;AAGtC,SAAO,oBAAoB,UAAU,UAAU,MAAM;AACrD,SAAO,OAAO;;CAEjB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import * as _kiberon_labs_behave_graph48 from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetMeshPosition.d.ts
4
+ declare const SetMeshPosition: _kiberon_labs_behave_graph48.IFlowNodeDefinition<{
5
+ flow: string;
6
+ meshName: (_: _kiberon_labs_behave_graph48.NodeConfiguration, graphApi: _kiberon_labs_behave_graph48.IGraph) => {
7
+ valueType: string;
8
+ choices: _kiberon_labs_behave_graph48.Choices | undefined;
9
+ };
10
+ x: string;
11
+ y: string;
12
+ z: string;
13
+ }, {
14
+ flow: string;
15
+ }, _kiberon_labs_behave_graph48.NodeConfigurationDescription, undefined>;
16
+ //#endregion
17
+ export { SetMeshPosition };
18
+ //# sourceMappingURL=SetMeshPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetMeshPosition.d.ts","names":[],"sources":["../../../src/Nodes/Actions/SetMeshPosition.ts"],"sourcesContent":[],"mappings":";;;cAMa,8CAAe;;gBA8B1B,4BAAA,CAAA;IA9BW,SAAA,EAAA,MA8BX;IAAA,OAAA,yCAAA,SAAA;;;;;CA9B0B,EAAA"}
@@ -0,0 +1,34 @@
1
+ import { NodeCategory, makeFlowNodeDefinition } from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetMeshPosition.ts
4
+ const SetMeshPosition = makeFlowNodeDefinition({
5
+ typeName: "scene/setMeshPosition",
6
+ category: NodeCategory.Effect,
7
+ label: "Set Mesh Position",
8
+ in: {
9
+ flow: "flow",
10
+ meshName: (_, graphApi) => {
11
+ return {
12
+ valueType: "string",
13
+ choices: graphApi.getDependency("IScene")?.getMeshNames()
14
+ };
15
+ },
16
+ x: "float",
17
+ y: "float",
18
+ z: "float"
19
+ },
20
+ out: { flow: "flow" },
21
+ initialState: void 0,
22
+ triggered: ({ commit, read, graph }) => {
23
+ graph.getDependency("IScene")?.setMeshPosition(read("meshName"), {
24
+ x: read("x"),
25
+ y: read("y"),
26
+ z: read("z")
27
+ });
28
+ commit("flow");
29
+ }
30
+ });
31
+
32
+ //#endregion
33
+ export { SetMeshPosition };
34
+ //# sourceMappingURL=SetMeshPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetMeshPosition.js","names":[],"sources":["../../../src/Nodes/Actions/SetMeshPosition.ts"],"sourcesContent":["import {\n makeFlowNodeDefinition,\n NodeCategory\n} from '@kiberon-labs/behave-graph';\n\n// Directly set a mesh's world position.\nexport const SetMeshPosition = makeFlowNodeDefinition({\n typeName: 'scene/setMeshPosition',\n category: NodeCategory.Effect,\n label: 'Set Mesh Position',\n in: {\n flow: 'flow',\n meshName: (_, graphApi) => {\n const scene = graphApi.getDependency('IScene');\n return {\n valueType: 'string',\n choices: scene?.getMeshNames()\n };\n },\n x: 'float',\n y: 'float',\n z: 'float'\n },\n out: {\n flow: 'flow'\n },\n initialState: undefined,\n triggered: ({ commit, read, graph }) => {\n const scene = graph.getDependency('IScene');\n scene?.setMeshPosition(read<string>('meshName'), {\n x: read<number>('x'),\n y: read<number>('y'),\n z: read<number>('z')\n });\n commit('flow');\n }\n});\n"],"mappings":";;;AAMA,MAAa,kBAAkB,uBAAuB;CACpD,UAAU;CACV,UAAU,aAAa;CACvB,OAAO;CACP,IAAI;EACF,MAAM;EACN,WAAW,GAAG,aAAa;AAEzB,UAAO;IACL,WAAW;IACX,SAHY,SAAS,cAAc,SAAS,EAG5B,cAAc;IAC/B;;EAEH,GAAG;EACH,GAAG;EACH,GAAG;EACJ;CACD,KAAK,EACH,MAAM,QACP;CACD,cAAc;CACd,YAAY,EAAE,QAAQ,MAAM,YAAY;AAEtC,EADc,MAAM,cAAc,SAAS,EACpC,gBAAgB,KAAa,WAAW,EAAE;GAC/C,GAAG,KAAa,IAAI;GACpB,GAAG,KAAa,IAAI;GACpB,GAAG,KAAa,IAAI;GACrB,CAAC;AACF,SAAO,OAAO;;CAEjB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import * as _kiberon_labs_behave_graph53 from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetMeshVisible.d.ts
4
+ declare const SetMeshVisible: _kiberon_labs_behave_graph53.IFlowNodeDefinition<{
5
+ flow: string;
6
+ meshName: (_: _kiberon_labs_behave_graph53.NodeConfiguration, graphApi: _kiberon_labs_behave_graph53.IGraph) => {
7
+ valueType: string;
8
+ choices: _kiberon_labs_behave_graph53.Choices | undefined;
9
+ };
10
+ visible: string;
11
+ }, {
12
+ flow: string;
13
+ }, _kiberon_labs_behave_graph53.NodeConfigurationDescription, undefined>;
14
+ //#endregion
15
+ export { SetMeshVisible };
16
+ //# sourceMappingURL=SetMeshVisible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetMeshVisible.d.ts","names":[],"sources":["../../../src/Nodes/Actions/SetMeshVisible.ts"],"sourcesContent":[],"mappings":";;;cAMa,6CAAc;;gBAwBzB,4BAAA,CAAA;IAxBW,SAAA,EAAA,MAwBX;IAAA,OAAA,yCAAA,SAAA;;;;;CAxByB,6DAAA,SAAA,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { NodeCategory, makeFlowNodeDefinition } from "@kiberon-labs/behave-graph";
2
+
3
+ //#region src/Nodes/Actions/SetMeshVisible.ts
4
+ const SetMeshVisible = makeFlowNodeDefinition({
5
+ typeName: "scene/setMeshVisible",
6
+ category: NodeCategory.Effect,
7
+ label: "Set Mesh Visible",
8
+ in: {
9
+ flow: "flow",
10
+ meshName: (_, graphApi) => {
11
+ return {
12
+ valueType: "string",
13
+ choices: graphApi.getDependency("IScene")?.getMeshNames()
14
+ };
15
+ },
16
+ visible: "boolean"
17
+ },
18
+ out: { flow: "flow" },
19
+ initialState: void 0,
20
+ triggered: ({ commit, read, graph }) => {
21
+ graph.getDependency("IScene")?.setMeshVisible(read("meshName"), read("visible"));
22
+ commit("flow");
23
+ }
24
+ });
25
+
26
+ //#endregion
27
+ export { SetMeshVisible };
28
+ //# sourceMappingURL=SetMeshVisible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetMeshVisible.js","names":[],"sources":["../../../src/Nodes/Actions/SetMeshVisible.ts"],"sourcesContent":["import {\n makeFlowNodeDefinition,\n NodeCategory\n} from '@kiberon-labs/behave-graph';\n\n// Show or hide a mesh.\nexport const SetMeshVisible = makeFlowNodeDefinition({\n typeName: 'scene/setMeshVisible',\n category: NodeCategory.Effect,\n label: 'Set Mesh Visible',\n in: {\n flow: 'flow',\n meshName: (_, graphApi) => {\n const scene = graphApi.getDependency('IScene');\n return {\n valueType: 'string',\n choices: scene?.getMeshNames()\n };\n },\n visible: 'boolean'\n },\n out: {\n flow: 'flow'\n },\n initialState: undefined,\n triggered: ({ commit, read, graph }) => {\n const scene = graph.getDependency('IScene');\n scene?.setMeshVisible(read<string>('meshName'), read<boolean>('visible'));\n commit('flow');\n }\n});\n"],"mappings":";;;AAMA,MAAa,iBAAiB,uBAAuB;CACnD,UAAU;CACV,UAAU,aAAa;CACvB,OAAO;CACP,IAAI;EACF,MAAM;EACN,WAAW,GAAG,aAAa;AAEzB,UAAO;IACL,WAAW;IACX,SAHY,SAAS,cAAc,SAAS,EAG5B,cAAc;IAC/B;;EAEH,SAAS;EACV;CACD,KAAK,EACH,MAAM,QACP;CACD,cAAc;CACd,YAAY,EAAE,QAAQ,MAAM,YAAY;AAEtC,EADc,MAAM,cAAc,SAAS,EACpC,eAAe,KAAa,WAAW,EAAE,KAAc,UAAU,CAAC;AACzE,SAAO,OAAO;;CAEjB,CAAC"}
@@ -1,5 +1,16 @@
1
+ import * as _kiberon_labs_behave_graph21 from "@kiberon-labs/behave-graph";
2
+
1
3
  //#region src/Nodes/Actions/SetSceneProperty.d.ts
2
- declare const SetSceneProperty: (valueTypeNames: string[]) => any[];
4
+ declare const SetSceneProperty: (valueTypeNames: string[]) => _kiberon_labs_behave_graph21.IFlowNodeDefinition<{
5
+ jsonPath: (_: _kiberon_labs_behave_graph21.NodeConfiguration, graphApi: _kiberon_labs_behave_graph21.IGraph) => {
6
+ valueType: string;
7
+ choices: _kiberon_labs_behave_graph21.Choices | undefined;
8
+ };
9
+ value: string;
10
+ flow: string;
11
+ }, {
12
+ flow: string;
13
+ }, _kiberon_labs_behave_graph21.NodeConfigurationDescription, undefined>[];
3
14
  //#endregion
4
15
  export { SetSceneProperty };
5
16
  //# sourceMappingURL=SetSceneProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetSceneProperty.d.ts","names":[],"sources":["../../../src/Nodes/Actions/SetSceneProperty.ts"],"sourcesContent":[],"mappings":";cAOa"}
1
+ {"version":3,"file":"SetSceneProperty.d.ts","names":[],"sources":["../../../src/Nodes/Actions/SetSceneProperty.ts"],"sourcesContent":[],"mappings":";;;cAKa,6EAA4C;gBA2BtD,4BAAA,CAAA;;IA3BU,OAAA,yCA2BV,SAAA;EAAA,CAAA;;;;;CA3BsD,6DAAA,SAAA,CAAA,EAAA"}
@@ -9,7 +9,7 @@ const SetSceneProperty = (valueTypeNames) => valueTypeNames.map((valueTypeName)
9
9
  jsonPath: (_, graphApi) => {
10
10
  return {
11
11
  valueType: "string",
12
- choices: graphApi.getDependency("IScene")?.getProperties()
12
+ choices: graphApi.getDependency("IScene")?.getProperties(valueTypeName)
13
13
  };
14
14
  },
15
15
  value: valueTypeName,