@relu-interactives/spatial-ecs 0.5.3 → 0.9.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 (512) hide show
  1. package/dist/{System-V_mv07le.d.cts → System-8D-XBDKZ.d.cts} +734 -8
  2. package/dist/{System-V_mv07le.d.ts → System-DPMAW30g.d.ts} +734 -8
  3. package/dist/{XRHandPose-CU3vNFuS.d.ts → XRHandPose-CWSrsnYN.d.ts} +236 -3
  4. package/dist/{XRHandPose-CQTLGxFC.d.cts → XRHandPose-Dn2yiALk.d.cts} +236 -3
  5. package/dist/animation/index.cjs +252 -0
  6. package/dist/animation/index.cjs.map +1 -0
  7. package/dist/animation/index.d.cts +100 -0
  8. package/dist/animation/index.d.ts +100 -0
  9. package/dist/animation/index.js +4 -0
  10. package/dist/animation/index.js.map +1 -0
  11. package/dist/chunk-CKTHDXPS.js +11 -0
  12. package/dist/chunk-CKTHDXPS.js.map +1 -0
  13. package/dist/chunk-GSWC6LLD.js +241 -0
  14. package/dist/chunk-GSWC6LLD.js.map +1 -0
  15. package/dist/chunk-JEPUCLZX.js +1237 -0
  16. package/dist/chunk-JEPUCLZX.js.map +1 -0
  17. package/dist/{chunk-BUEKOSR5.js → chunk-JNYPJB55.js} +435 -14
  18. package/dist/chunk-JNYPJB55.js.map +1 -0
  19. package/dist/{chunk-RXBLOO5B.js → chunk-NXASMBDS.js} +105 -715
  20. package/dist/chunk-NXASMBDS.js.map +1 -0
  21. package/dist/chunk-OHCNPPMX.js +334 -0
  22. package/dist/chunk-OHCNPPMX.js.map +1 -0
  23. package/dist/{chunk-DF5SSRN6.js → chunk-VYIWOXAY.js} +2574 -3381
  24. package/dist/chunk-VYIWOXAY.js.map +1 -0
  25. package/dist/chunk-WWP46AEF.js +2878 -0
  26. package/dist/chunk-WWP46AEF.js.map +1 -0
  27. package/dist/{chunk-OY7ZODZP.js → chunk-XE4OXN2W.js} +3 -9
  28. package/dist/chunk-XE4OXN2W.js.map +1 -0
  29. package/dist/{chunk-OWQSESTO.js → chunk-XU2DVWCP.js} +4 -3
  30. package/dist/chunk-XU2DVWCP.js.map +1 -0
  31. package/dist/components/index.cjs +334 -10
  32. package/dist/components/index.cjs.map +1 -1
  33. package/dist/components/index.d.cts +5 -3
  34. package/dist/components/index.d.ts +5 -3
  35. package/dist/components/index.js +3 -2
  36. package/dist/docs/api/Behaviour/classes/Behaviour.md +366 -79
  37. package/dist/docs/api/Behaviour/index.md +7 -3
  38. package/dist/docs/api/Behaviour/type-aliases/UiInteractionEvent.md +35 -0
  39. package/dist/docs/api/Component/classes/Component.md +14 -1
  40. package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
  41. package/dist/docs/api/components/classes/AudioComponent.md +19 -19
  42. package/dist/docs/api/components/classes/CameraComponent.md +14 -14
  43. package/dist/docs/api/components/classes/EntityType.md +4 -4
  44. package/dist/docs/api/components/classes/Environment.md +5 -4
  45. package/dist/docs/api/components/classes/ImageComponent.md +7 -7
  46. package/dist/docs/api/components/classes/ImageTarget.md +8 -8
  47. package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
  48. package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
  49. package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
  50. package/dist/docs/api/components/classes/LightComponent.md +6 -6
  51. package/dist/docs/api/components/classes/MaterialComponent.md +16 -16
  52. package/dist/docs/api/components/classes/MeshComponent.md +3 -3
  53. package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
  54. package/dist/docs/api/components/classes/ModelComponent.md +8 -5
  55. package/dist/docs/api/components/classes/Name.md +3 -3
  56. package/dist/docs/api/components/classes/Object3DRef.md +4 -4
  57. package/dist/docs/api/components/classes/ParentId.md +3 -3
  58. package/dist/docs/api/components/classes/PhysicsComponent.md +7 -6
  59. package/dist/docs/api/components/classes/Postprocessing.md +3 -3
  60. package/dist/docs/api/components/classes/PrefabInstance.md +5 -5
  61. package/dist/docs/api/components/classes/PrefabNode.md +3 -3
  62. package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
  63. package/dist/docs/api/components/classes/ScriptObjectComponent.md +9 -9
  64. package/dist/docs/api/components/classes/Selectable.md +3 -3
  65. package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
  66. package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
  67. package/dist/docs/api/components/classes/TransformComponent.md +12 -12
  68. package/dist/docs/api/components/classes/UIButtonComponent.md +63 -0
  69. package/dist/docs/api/components/classes/UIPanelComponent.md +62 -0
  70. package/dist/docs/api/components/classes/UISliderComponent.md +59 -0
  71. package/dist/docs/api/components/classes/UITextComponent.md +59 -0
  72. package/dist/docs/api/components/classes/UIToggleComponent.md +56 -0
  73. package/dist/docs/api/components/classes/VRTeleportAreaComponent.md +53 -0
  74. package/dist/docs/api/components/classes/VideoComponent.md +28 -28
  75. package/dist/docs/api/components/classes/XRAnchorComponent.md +64 -0
  76. package/dist/docs/api/components/classes/XREnvironmentComponent.md +64 -0
  77. package/dist/docs/api/components/classes/XRHandPoseComponent.md +50 -0
  78. package/dist/docs/api/components/classes/XRInteractableComponent.md +74 -0
  79. package/dist/docs/api/components/classes/XRInteractorComponent.md +57 -0
  80. package/dist/docs/api/components/classes/XRInteractorSideComponent.md +50 -0
  81. package/dist/docs/api/components/classes/XRRigComponent.md +68 -0
  82. package/dist/docs/api/components/functions/createAttachPoint.md +25 -0
  83. package/dist/docs/api/components/functions/createHandPoseEntry.md +25 -0
  84. package/dist/docs/api/components/functions/defaultMaterialValue.md +1 -1
  85. package/dist/docs/api/components/functions/handPoseDefinitionFor.md +33 -0
  86. package/dist/docs/api/components/functions/normalizeEnvironmentLighting.md +30 -0
  87. package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
  88. package/dist/docs/api/components/functions/setModelLoadState.md +33 -0
  89. package/dist/docs/api/components/functions/setPhysicsLiveRef.md +3 -9
  90. package/dist/docs/api/components/index.md +61 -4
  91. package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
  92. package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
  93. package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
  94. package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +5 -3
  95. package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
  96. package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
  97. package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
  98. package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
  99. package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
  100. package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
  101. package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
  102. package/dist/docs/api/components/type-aliases/EnvironmentLightingState.md +40 -0
  103. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxImageProjection.md +22 -0
  104. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +9 -7
  105. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
  106. package/dist/docs/api/components/type-aliases/EnvironmentState.md +7 -5
  107. package/dist/docs/api/components/type-aliases/EnvironmentToneMapping.md +16 -0
  108. package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
  109. package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
  110. package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
  111. package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
  112. package/dist/docs/api/components/type-aliases/LightShadowState.md +37 -0
  113. package/dist/docs/api/components/type-aliases/LightValueState.md +13 -11
  114. package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
  115. package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
  116. package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
  117. package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
  118. package/dist/docs/api/components/type-aliases/ModelLoadState.md +15 -0
  119. package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
  120. package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
  121. package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
  122. package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
  123. package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
  124. package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
  125. package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
  126. package/dist/docs/api/components/type-aliases/ScriptEntry.md +8 -8
  127. package/dist/docs/api/components/type-aliases/ScriptObjectComponentInput.md +1 -1
  128. package/dist/docs/api/components/type-aliases/ScriptObjectRuntimeState.md +1 -1
  129. package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
  130. package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
  131. package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
  132. package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
  133. package/dist/docs/api/components/type-aliases/UIButtonOptions.md +45 -0
  134. package/dist/docs/api/components/type-aliases/UIPanelOptions.md +39 -0
  135. package/dist/docs/api/components/type-aliases/UISliderOptions.md +39 -0
  136. package/dist/docs/api/components/type-aliases/UITextOptions.md +41 -0
  137. package/dist/docs/api/components/type-aliases/UIToggleOptions.md +35 -0
  138. package/dist/docs/api/components/type-aliases/UiFollowMode.md +15 -0
  139. package/dist/docs/api/components/type-aliases/UiTextAlign.md +13 -0
  140. package/dist/docs/api/components/type-aliases/UiTextVAlign.md +13 -0
  141. package/dist/docs/api/components/type-aliases/VRTeleportAreaOptions.md +29 -0
  142. package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
  143. package/dist/docs/api/components/type-aliases/VrTeleportShape.md +15 -0
  144. package/dist/docs/api/components/type-aliases/XRAnchorOptions.md +23 -0
  145. package/dist/docs/api/components/type-aliases/XRHandPoseOptions.md +23 -0
  146. package/dist/docs/api/components/type-aliases/XRInteractableOptions.md +75 -0
  147. package/dist/docs/api/components/type-aliases/XRInteractorOptions.md +37 -0
  148. package/dist/docs/api/components/type-aliases/XRRigOptions.md +51 -0
  149. package/dist/docs/api/components/type-aliases/XrAttachPoint.md +53 -0
  150. package/dist/docs/api/components/type-aliases/XrDistanceGrabBehavior.md +19 -0
  151. package/dist/docs/api/components/type-aliases/XrEnvironmentKind.md +15 -0
  152. package/dist/docs/api/components/type-aliases/XrEnvironmentOrientation.md +15 -0
  153. package/dist/docs/api/components/type-aliases/XrEnvironmentPhysics.md +25 -0
  154. package/dist/docs/api/components/type-aliases/XrGrabGesture.md +19 -0
  155. package/dist/docs/api/components/type-aliases/XrGrabHands.md +20 -0
  156. package/dist/docs/api/components/type-aliases/XrGrabReach.md +20 -0
  157. package/dist/docs/api/components/type-aliases/XrHandPoseEntry.md +49 -0
  158. package/dist/docs/api/components/type-aliases/XrHandPreset.md +19 -0
  159. package/dist/docs/api/components/type-aliases/XrInteractorSide.md +15 -0
  160. package/dist/docs/api/components/type-aliases/XrInteractorType.md +13 -0
  161. package/dist/docs/api/components/type-aliases/XrLocomotionMode.md +15 -0
  162. package/dist/docs/api/components/type-aliases/XrTrackingOrigin.md +24 -0
  163. package/dist/docs/api/components/type-aliases/XrTwoHandRotation.md +15 -0
  164. package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
  165. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_LIGHTING.md +15 -0
  166. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
  167. package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
  168. package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
  169. package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
  170. package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
  171. package/dist/docs/api/components/variables/DEFAULT_POSE_CURLS.md +13 -0
  172. package/dist/docs/api/components/variables/DEFAULT_POSE_DIRECTIONS.md +13 -0
  173. package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
  174. package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
  175. package/dist/docs/api/components/variables/MODEL_NO_PATH_MESSAGE.md +15 -0
  176. package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
  177. package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
  178. package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
  179. package/dist/docs/api/index/classes/AudioSystem.md +4 -4
  180. package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
  181. package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +19 -4
  182. package/dist/docs/api/index/classes/HandPoseTracker.md +114 -0
  183. package/dist/docs/api/index/classes/InputSystem.md +33 -33
  184. package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
  185. package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
  186. package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
  187. package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
  188. package/dist/docs/api/index/classes/ObjectManagementSystem.md +14 -14
  189. package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
  190. package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
  191. package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +34 -10
  192. package/dist/docs/api/index/classes/RenderSystem.md +13 -4
  193. package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +9 -5
  194. package/dist/docs/api/index/classes/ScriptObject.md +10 -10
  195. package/dist/docs/api/index/classes/ScriptObjectSystem.md +6 -6
  196. package/dist/docs/api/index/classes/TeleportAimGate.md +114 -0
  197. package/dist/docs/api/index/classes/ThrowVelocityTracker.md +89 -0
  198. package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
  199. package/dist/docs/api/index/classes/UIInteractionSystem.md +60 -0
  200. package/dist/docs/api/index/classes/UIPanelSystem.md +79 -0
  201. package/dist/docs/api/index/classes/VRTeleportAreaSystem.md +49 -0
  202. package/dist/docs/api/index/classes/VideoSystem.md +8 -6
  203. package/dist/docs/api/index/classes/World.md +282 -100
  204. package/dist/docs/api/index/classes/XRAnchorSystem.md +90 -0
  205. package/dist/docs/api/index/classes/XRControllerVisualSystem.md +77 -0
  206. package/dist/docs/api/index/classes/XREnvironmentSystem.md +137 -0
  207. package/dist/docs/api/index/classes/XRHandPoseSystem.md +107 -0
  208. package/dist/docs/api/index/classes/XRHitTestSystem.md +93 -0
  209. package/dist/docs/api/index/classes/XRHoverVisualSystem.md +76 -0
  210. package/dist/docs/api/index/classes/XRInputSystem.md +189 -0
  211. package/dist/docs/api/index/classes/XRInteractionSystem.md +323 -0
  212. package/dist/docs/api/index/classes/XRLocomotionSystem.md +128 -0
  213. package/dist/docs/api/index/classes/XRSessionSystem.md +116 -0
  214. package/dist/docs/api/index/classes/XRTeleportVisualSystem.md +75 -0
  215. package/dist/docs/api/index/functions/angularVelocityFrom.md +33 -0
  216. package/dist/docs/api/index/functions/applyHandMaterial.md +26 -0
  217. package/dist/docs/api/index/functions/applyPrefabToSnapshotInstances.md +1 -1
  218. package/dist/docs/api/index/functions/arcGroundCrossing.md +30 -0
  219. package/dist/docs/api/index/functions/buildComponentValueMaps.md +1 -1
  220. package/dist/docs/api/index/functions/buildNodeKeyMapsFromSnapshot.md +1 -1
  221. package/dist/docs/api/index/functions/buildNodeMapsFromSnapshot.md +1 -1
  222. package/dist/docs/api/index/functions/canonicalizeComponentValue.md +1 -1
  223. package/dist/docs/api/index/functions/clearModelCache.md +1 -1
  224. package/dist/docs/api/index/functions/clearPrefabCache.md +1 -1
  225. package/dist/docs/api/index/functions/cloneHandPose.md +23 -0
  226. package/dist/docs/api/index/functions/collectDiffPaths.md +1 -1
  227. package/dist/docs/api/index/functions/collectDirectPrefabDependencies.md +1 -1
  228. package/dist/docs/api/index/functions/collectEntitySubtree.md +1 -1
  229. package/dist/docs/api/index/functions/collectSnapshotSubtreeIds.md +1 -1
  230. package/dist/docs/api/index/functions/computeFingerCurl.md +29 -0
  231. package/dist/docs/api/index/functions/computeHandShape.md +29 -0
  232. package/dist/docs/api/index/functions/computeInstanceOverrides.md +1 -1
  233. package/dist/docs/api/index/functions/computePalmPose.md +30 -0
  234. package/dist/docs/api/index/functions/computePalmWidth.md +25 -0
  235. package/dist/docs/api/index/functions/computePinch.md +29 -0
  236. package/dist/docs/api/index/functions/computeSpread.md +33 -0
  237. package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
  238. package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
  239. package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
  240. package/dist/docs/api/index/functions/createEntityTypeComponent.md +2 -2
  241. package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
  242. package/dist/docs/api/index/functions/createHandMaterial.md +30 -0
  243. package/dist/docs/api/index/functions/createImageComponent.md +1 -1
  244. package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
  245. package/dist/docs/api/index/functions/createImageTargetComponent.md +2 -2
  246. package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
  247. package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
  248. package/dist/docs/api/index/functions/createLightComponent.md +2 -2
  249. package/dist/docs/api/index/functions/createMaterialComponent.md +2 -2
  250. package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
  251. package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
  252. package/dist/docs/api/index/functions/createModelComponent.md +1 -1
  253. package/dist/docs/api/index/functions/createNameComponent.md +1 -1
  254. package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
  255. package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
  256. package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
  257. package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
  258. package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
  259. package/dist/docs/api/index/functions/createScriptObjectComponent.md +1 -1
  260. package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
  261. package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
  262. package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
  263. package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
  264. package/dist/docs/api/index/functions/createUIButtonComponent.md +28 -0
  265. package/dist/docs/api/index/functions/createUIPanelComponent.md +28 -0
  266. package/dist/docs/api/index/functions/createUISliderComponent.md +28 -0
  267. package/dist/docs/api/index/functions/createUITextComponent.md +28 -0
  268. package/dist/docs/api/index/functions/createUIToggleComponent.md +28 -0
  269. package/dist/docs/api/index/functions/createVRTeleportAreaComponent.md +28 -0
  270. package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
  271. package/dist/docs/api/index/functions/createXRAnchorComponent.md +28 -0
  272. package/dist/docs/api/index/functions/createXRHandPoseComponent.md +28 -0
  273. package/dist/docs/api/index/functions/createXRInteractableComponent.md +28 -0
  274. package/dist/docs/api/index/functions/createXRInteractorComponent.md +28 -0
  275. package/dist/docs/api/index/functions/createXRInteractorSideComponent.md +28 -0
  276. package/dist/docs/api/index/functions/createXRRigComponent.md +28 -0
  277. package/dist/docs/api/index/functions/decanonicalizeComponentValue.md +1 -1
  278. package/dist/docs/api/index/functions/despawnPrefab.md +1 -1
  279. package/dist/docs/api/index/functions/encodeOverride.md +1 -1
  280. package/dist/docs/api/index/functions/estimateHandScale.md +28 -0
  281. package/dist/docs/api/index/functions/findSnapshotRootEntityIds.md +1 -1
  282. package/dist/docs/api/index/functions/findTopLevelNestedRegions.md +1 -1
  283. package/dist/docs/api/index/functions/getHandPosePreset.md +31 -0
  284. package/dist/docs/api/index/functions/groupOverridePaths.md +1 -1
  285. package/dist/docs/api/index/functions/handPoseFromCurls.md +42 -0
  286. package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
  287. package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
  288. package/dist/docs/api/index/functions/indexSnapshotByEntity.md +1 -1
  289. package/dist/docs/api/index/functions/instantiateSubtree.md +1 -1
  290. package/dist/docs/api/index/functions/loadPrefab.md +1 -1
  291. package/dist/docs/api/index/functions/loadSharedGltf.md +1 -1
  292. package/dist/docs/api/index/functions/matchHandPose.md +34 -0
  293. package/dist/docs/api/index/functions/mergeComponentValue.md +1 -1
  294. package/dist/docs/api/index/functions/parseOverride.md +1 -1
  295. package/dist/docs/api/index/functions/parsePrefabAsset.md +1 -1
  296. package/dist/docs/api/index/functions/prefabFileVersionFor.md +1 -1
  297. package/dist/docs/api/index/functions/readXrCapabilities.md +30 -0
  298. package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
  299. package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
  300. package/dist/docs/api/index/functions/remapSnapshotEntityIds.md +3 -3
  301. package/dist/docs/api/index/functions/resolveDracoDecoderPath.md +1 -1
  302. package/dist/docs/api/index/functions/restoreComponentState.md +1 -1
  303. package/dist/docs/api/index/functions/restorePostCreateComponents.md +1 -1
  304. package/dist/docs/api/index/functions/sampleTeleportArc.md +40 -0
  305. package/dist/docs/api/index/functions/serializeEntitySubtree.md +1 -1
  306. package/dist/docs/api/index/functions/setDracoDecoderPath.md +1 -1
  307. package/dist/docs/api/index/functions/setPrefabAssetUrlResolver.md +1 -1
  308. package/dist/docs/api/index/functions/spawnPrefab.md +1 -1
  309. package/dist/docs/api/index/index.md +116 -4
  310. package/dist/docs/api/index/interfaces/ChromaKeyOptions.md +20 -0
  311. package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
  312. package/dist/docs/api/index/interfaces/PostprocessingBuildContext.md +21 -0
  313. package/dist/docs/api/index/interfaces/PostprocessingPipeline.md +84 -0
  314. package/dist/docs/api/index/interfaces/RenderBackend.md +168 -0
  315. package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
  316. package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
  317. package/dist/docs/api/index/type-aliases/ApplyPrefabToSnapshotResult.md +3 -3
  318. package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
  319. package/dist/docs/api/index/type-aliases/ComponentValueMaps.md +50 -26
  320. package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +14 -2
  321. package/dist/docs/api/index/type-aliases/EcsRenderer.md +17 -0
  322. package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
  323. package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
  324. package/dist/docs/api/index/type-aliases/ExternalRefWarning.md +5 -5
  325. package/dist/docs/api/index/type-aliases/HandMaterialOptions.md +32 -0
  326. package/dist/docs/api/index/type-aliases/HandPoseTrackerOptions.md +27 -0
  327. package/dist/docs/api/index/type-aliases/HydrateOptions.md +3 -3
  328. package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +4 -4
  329. package/dist/docs/api/index/type-aliases/InstantiateSubtreeResult.md +3 -3
  330. package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
  331. package/dist/docs/api/index/type-aliases/ModuleLoader.md +1 -1
  332. package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
  333. package/dist/docs/api/index/type-aliases/NestedRegion.md +5 -5
  334. package/dist/docs/api/index/type-aliases/NodeKeyMaps.md +5 -5
  335. package/dist/docs/api/index/type-aliases/NodeMaps.md +4 -4
  336. package/dist/docs/api/index/type-aliases/PrefabAsset.md +5 -5
  337. package/dist/docs/api/index/type-aliases/RemapSnapshotOptions.md +2 -2
  338. package/dist/docs/api/index/type-aliases/RendererKind.md +15 -0
  339. package/dist/docs/api/index/type-aliases/ScriptBehaviourSystemOptions.md +23 -0
  340. package/dist/docs/api/index/type-aliases/ScriptErrorEvent.md +39 -0
  341. package/dist/docs/api/index/type-aliases/ScriptErrorListener.md +25 -0
  342. package/dist/docs/api/index/type-aliases/ScriptErrorPhase.md +28 -0
  343. package/dist/docs/api/index/type-aliases/ScriptErrorReport.md +31 -0
  344. package/dist/docs/api/index/type-aliases/ScriptErrorSource.md +15 -0
  345. package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
  346. package/dist/docs/api/index/type-aliases/SerializeEntitySubtreeResult.md +4 -4
  347. package/dist/docs/api/index/type-aliases/SpawnPrefabOptions.md +5 -5
  348. package/dist/docs/api/index/type-aliases/SpawnPrefabSource.md +1 -1
  349. package/dist/docs/api/index/type-aliases/SubtreeSnapshot.md +3 -3
  350. package/dist/docs/api/index/type-aliases/UiCanvasLike.md +46 -0
  351. package/dist/docs/api/index/type-aliases/VelocitySample.md +23 -0
  352. package/dist/docs/api/index/type-aliases/XrCapabilities.md +41 -0
  353. package/dist/docs/api/index/type-aliases/XrFinger.md +13 -0
  354. package/dist/docs/api/index/type-aliases/XrFingerCurl.md +27 -0
  355. package/dist/docs/api/index/type-aliases/XrFingerTarget.md +31 -0
  356. package/dist/docs/api/index/type-aliases/XrHandJointName.md +40 -0
  357. package/dist/docs/api/index/type-aliases/XrHandJoints.md +18 -0
  358. package/dist/docs/api/index/type-aliases/XrHandPoseAxis.md +15 -0
  359. package/dist/docs/api/index/type-aliases/XrHandPoseContext.md +23 -0
  360. package/dist/docs/api/index/type-aliases/XrHandPoseDefinition.md +47 -0
  361. package/dist/docs/api/index/type-aliases/XrHandPoseDirection.md +21 -0
  362. package/dist/docs/api/index/type-aliases/XrHandPoseEvent.md +13 -0
  363. package/dist/docs/api/index/type-aliases/XrHandPoseEventDetail.md +27 -0
  364. package/dist/docs/api/index/type-aliases/XrHandPoseMatch.md +25 -0
  365. package/dist/docs/api/index/type-aliases/XrHandPoseOrientation.md +25 -0
  366. package/dist/docs/api/index/type-aliases/XrHandShape.md +46 -0
  367. package/dist/docs/api/index/type-aliases/XrHandedness.md +15 -0
  368. package/dist/docs/api/index/type-aliases/XrHitResult.md +25 -0
  369. package/dist/docs/api/index/type-aliases/XrInputKind.md +19 -0
  370. package/dist/docs/api/index/type-aliases/XrInputState.md +60 -0
  371. package/dist/docs/api/index/type-aliases/XrPalmPose.md +31 -0
  372. package/dist/docs/api/index/variables/ADDED_NODE_MARKER_COMPONENT.md +2 -2
  373. package/dist/docs/api/index/variables/ARC_GRAVITY.md +15 -0
  374. package/dist/docs/api/index/variables/ARC_MAX_TIME.md +15 -0
  375. package/dist/docs/api/index/variables/ARC_SPEED.md +15 -0
  376. package/dist/docs/api/index/variables/ARC_STEPS.md +15 -0
  377. package/dist/docs/api/index/variables/CURLED_COS.md +13 -0
  378. package/dist/docs/api/index/variables/DEFAULT_DIRECTION_TOLERANCE.md +15 -0
  379. package/dist/docs/api/index/variables/DEFAULT_ENTER_CONFIDENCE.md +13 -0
  380. package/dist/docs/api/index/variables/DEFAULT_EXIT_CONFIDENCE.md +13 -0
  381. package/dist/docs/api/index/variables/DEFAULT_LOST_GRACE_SECONDS.md +13 -0
  382. package/dist/docs/api/index/variables/DEFAULT_MIN_HOLD_SECONDS.md +13 -0
  383. package/dist/docs/api/index/variables/DEFAULT_SCRIPT_ERROR_RETRY_DELAY.md +17 -0
  384. package/dist/docs/api/index/variables/FALLBACK_HAND_SCALE.md +15 -0
  385. package/dist/docs/api/index/variables/HAND_POSE_PRESETS.md +19 -0
  386. package/dist/docs/api/index/variables/HAND_POSE_PRESET_IDS.md +15 -0
  387. package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
  388. package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
  389. package/dist/docs/api/index/variables/MATCH_FALLOFF.md +15 -0
  390. package/dist/docs/api/index/variables/MAX_PLAUSIBLE_SPEED.md +25 -0
  391. package/dist/docs/api/index/variables/MAX_SAMPLE_AGE_SECONDS.md +18 -0
  392. package/dist/docs/api/index/variables/NODE_KEY_SEPARATOR.md +1 -1
  393. package/dist/docs/api/index/variables/NO_XR_CAPABILITIES.md +15 -0
  394. package/dist/docs/api/index/variables/OVERRIDE_DIFF_EXCLUDED_COMPONENTS.md +1 -1
  395. package/dist/docs/api/index/variables/OVERRIDE_ROOT_EXCLUDED_COMPONENTS.md +1 -1
  396. package/dist/docs/api/index/variables/PINCH_FINGERS.md +15 -0
  397. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION.md +1 -1
  398. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION_NESTED.md +1 -1
  399. package/dist/docs/api/index/variables/SCRIPT_OBJECT_ROOT_FLAG.md +1 -1
  400. package/dist/docs/api/index/variables/SHARED_MODEL_RESOURCE_FLAG.md +1 -1
  401. package/dist/docs/api/index/variables/STRAIGHT_COS.md +19 -0
  402. package/dist/docs/api/index/variables/VELOCITY_SAMPLES.md +15 -0
  403. package/dist/docs/api/index/variables/XR_FINGERS.md +13 -0
  404. package/dist/docs/api/index/variables/XR_HOVER_SHELL_FLAG.md +15 -0
  405. package/dist/docs/api/index/variables/webglBackend.md +16 -0
  406. package/dist/docs/api/typedoc-sidebar.json +1 -1
  407. package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
  408. package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
  409. package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
  410. package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
  411. package/dist/docs/api/types/type-aliases/ComponentKind.md +1 -1
  412. package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
  413. package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
  414. package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
  415. package/dist/docs/api/types/type-aliases/EcsEntityKind.md +10 -2
  416. package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
  417. package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
  418. package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
  419. package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
  420. package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
  421. package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
  422. package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
  423. package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
  424. package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
  425. package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
  426. package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
  427. package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
  428. package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
  429. package/dist/docs/guide/audio-mixing-and-sound-banks.md +71 -0
  430. package/dist/docs/guide/authoring-a-behaviour.md +3 -3
  431. package/dist/docs/guide/authoring-a-script-object.md +12 -9
  432. package/dist/docs/guide/behaviour-data-binding/index.md +11 -11
  433. package/dist/docs/guide/behaviour-lifecycle.md +9 -0
  434. package/dist/docs/guide/bone-attachments-and-ik.md +128 -0
  435. package/dist/docs/guide/component-catalog.md +10 -2
  436. package/dist/docs/guide/components/light.md +42 -0
  437. package/dist/docs/guide/components/model.md +32 -3
  438. package/dist/docs/guide/concepts.md +2 -2
  439. package/dist/docs/guide/getting-started/creating-objects.md +2 -2
  440. package/dist/docs/guide/getting-started/editing-objects.md +2 -2
  441. package/dist/docs/guide/getting-started/editor/ai-agent.md +227 -0
  442. package/dist/docs/guide/getting-started/editor/hierarchy.md +2 -2
  443. package/dist/docs/guide/getting-started/editor/index.md +3 -2
  444. package/dist/docs/guide/getting-started/editor/inspector.md +2 -2
  445. package/dist/docs/guide/getting-started/editor/scene-inspector.md +3 -3
  446. package/dist/docs/guide/getting-started/editor/toolbar.md +11 -11
  447. package/dist/docs/guide/getting-started/editor/viewport.md +17 -9
  448. package/dist/docs/guide/getting-started/index.md +1 -1
  449. package/dist/docs/guide/getting-started/installation.md +1 -1
  450. package/dist/docs/guide/getting-started/preview-and-test.md +7 -7
  451. package/dist/docs/guide/getting-started/project-types/image-tracking.md +23 -11
  452. package/dist/docs/guide/getting-started/project-types/index.md +4 -4
  453. package/dist/docs/guide/getting-started/project-types/vr.md +270 -2
  454. package/dist/docs/guide/getting-started/projects.md +4 -5
  455. package/dist/docs/guide/getting-started/shortcuts.md +5 -4
  456. package/dist/docs/guide/multiplayer.md +92 -0
  457. package/dist/docs/guide/scene/environment.md +101 -4
  458. package/dist/docs/guide/scene/index.md +4 -4
  459. package/dist/docs/guide/scene/postprocessing.md +67 -5
  460. package/dist/docs/guide/spatial-ui.md +83 -7
  461. package/dist/docs/guide/spawning/area-light.md +2 -0
  462. package/dist/docs/guide/systems/environment-sync-system.md +11 -6
  463. package/dist/docs/guide/systems/light-sync-system.md +5 -3
  464. package/dist/docs/guide/systems/postprocessing-sync-system.md +16 -6
  465. package/dist/docs/guide/systems/render-system.md +7 -6
  466. package/dist/docs/guide/systems/script-behaviour-system.md +7 -5
  467. package/dist/docs/guide/systems/script-object-system.md +3 -1
  468. package/dist/docs/guide/systems/video-system.md +1 -1
  469. package/dist/docs/guide/webgpu-and-tsl.md +415 -0
  470. package/dist/docs/guide/world-api.md +52 -2
  471. package/dist/factories/index.cjs +921 -283
  472. package/dist/factories/index.cjs.map +1 -1
  473. package/dist/factories/index.d.cts +14 -3
  474. package/dist/factories/index.d.ts +14 -3
  475. package/dist/factories/index.js +7 -4
  476. package/dist/{index-C3ik3sA1.d.ts → index-CAZHrh0q.d.cts} +28 -3
  477. package/dist/{index-Dlr-7-4m.d.cts → index-CLtSMf2M.d.ts} +28 -3
  478. package/dist/{index-D2Jt_JzH.d.ts → index-D5MmJNyj.d.ts} +161 -43
  479. package/dist/{index-DaG03vyN.d.cts → index-DiIjV2lm.d.cts} +161 -43
  480. package/dist/index.cjs +4959 -1414
  481. package/dist/index.cjs.map +1 -1
  482. package/dist/index.d.cts +113 -11
  483. package/dist/index.d.ts +113 -11
  484. package/dist/index.js +187 -12
  485. package/dist/index.js.map +1 -1
  486. package/dist/network/index.cjs +5069 -0
  487. package/dist/network/index.cjs.map +1 -0
  488. package/dist/network/index.d.cts +98 -0
  489. package/dist/network/index.d.ts +98 -0
  490. package/dist/network/index.js +493 -0
  491. package/dist/network/index.js.map +1 -0
  492. package/dist/systems/index.cjs +5319 -1957
  493. package/dist/systems/index.cjs.map +1 -1
  494. package/dist/systems/index.d.cts +4 -2
  495. package/dist/systems/index.d.ts +4 -2
  496. package/dist/systems/index.js +8 -4
  497. package/dist/types.d.cts +3 -1
  498. package/dist/types.d.ts +3 -1
  499. package/dist/webgpu/index.d.ts +113 -0
  500. package/dist/webgpu/index.js +302 -0
  501. package/dist/webgpu/index.js.map +1 -0
  502. package/dist/worldSnapshotUtils.d.cts +3 -1
  503. package/dist/worldSnapshotUtils.d.ts +3 -1
  504. package/dist/worldSnapshotUtils.js +3 -2
  505. package/package.json +19 -3
  506. package/dist/chunk-BUEKOSR5.js.map +0 -1
  507. package/dist/chunk-DF5SSRN6.js.map +0 -1
  508. package/dist/chunk-OWQSESTO.js.map +0 -1
  509. package/dist/chunk-OY7ZODZP.js.map +0 -1
  510. package/dist/chunk-RXBLOO5B.js.map +0 -1
  511. package/dist/chunk-WJD2VKEH.js +0 -315
  512. package/dist/chunk-WJD2VKEH.js.map +0 -1
@@ -6,55 +6,7 @@
6
6
 
7
7
  # Class: Behaviour
8
8
 
9
- Defined in: [Behaviour.ts:64](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L64)
10
-
11
- Base class for all user-authored scripts attached to an entity through a
12
- `ScriptComponent`. Subclass `Behaviour` to drive per-frame logic on a single
13
- entity with full access to the [World](../../index/classes/World.md), the entity's
14
- [TransformComponent](../../components/classes/TransformComponent.md), and its three.js [Object3DRef](../../components/classes/Object3DRef.md).
15
-
16
- ## Remarks
17
-
18
- Scripts are dispatched by `ScriptBehaviourSystem` once per frame in this
19
- order: [Behaviour.init](#init) (first frame only) → [Behaviour.onUpdate](#onupdate).
20
- Override [Behaviour.onUpdate](#onupdate) for per-frame logic — never override
21
- [Behaviour.update](#update), which is the engine-managed entry point.
22
-
23
- **Editor vs runtime**: `Behaviour` subclasses run ONLY at preview/runtime —
24
- they never execute in the editor. For a visual that must render and animate
25
- inside the editor (custom shaders, procedural geometry, grass, anything the
26
- object palette can't produce), use [ScriptObject](../../index/classes/ScriptObject.md) instead.
27
-
28
- The runtime recognizes a script by its **default export** plus the
29
- inherited static marker `__reluBehaviourClass`. Do not override the marker.
30
-
31
- ## Example
32
-
33
- ```ts
34
- import { Behaviour, type Component } from "@relu-interactives/spatial-ecs";
35
-
36
- export default class Spinner extends Behaviour {
37
- data: {
38
- speed: number;
39
- axis: "x" | "y" | "z";
40
- };
41
-
42
- init() {
43
- this.data.speed ??= 1;
44
- this.data.axis ??= "y";
45
- }
46
-
47
- onUpdate() {
48
- this.transform.rotation[this.data.axis] += this.data.speed * this.deltaTime;
49
- }
50
- }
51
- ```
52
-
53
- ## See
54
-
55
- - [World](../../index/classes/World.md)
56
- - [TransformComponent](../../components/classes/TransformComponent.md)
57
- - [Object3DRef](../../components/classes/Object3DRef.md)
9
+ Defined in: [Behaviour.ts:83](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L83)
58
10
 
59
11
  ## Implements
60
12
 
@@ -71,7 +23,7 @@ new Behaviour(
71
23
  component): Behaviour;
72
24
  ```
73
25
 
74
- Defined in: [Behaviour.ts:122](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L122)
26
+ Defined in: [Behaviour.ts:141](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L141)
75
27
 
76
28
  Engine-managed constructor. Hosts (`ScriptBehaviourSystem`) instantiate
77
29
  subclasses with the owning world, the entity id, and the script's `data`
@@ -93,13 +45,13 @@ payload. User code should not call this directly.
93
45
 
94
46
  | Property | Type | Default value | Description | Defined in |
95
47
  | ------ | ------ | ------ | ------ | ------ |
96
- | <a id="data"></a> `data` | \| [`Component`](../../Component/classes/Component.md) \| `Record`\<`string`, `unknown`\> | `undefined` | Inspector-bound payload from the entity's `ScriptComponent`. Override the type on subclasses with `declare data: MyDataShape` to get type safety inside hooks. Saved with the project so values persist across reloads. | [Behaviour.ts:80](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L80) |
97
- | <a id="entityid"></a> `entityId` | `number` | `undefined` | Numeric id of the entity this script is attached to. | [Behaviour.ts:83](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L83) |
98
- | <a id="entity"></a> `entity` | `WorldEntityView` | `undefined` | View of the owning entity (id + components) at construction time. | [Behaviour.ts:86](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L86) |
99
- | <a id="threeref"></a> `threeRef` | [`Object3DRef`](../../components/classes/Object3DRef.md) | `undefined` | Live three.js object wrapper for the entity. May be `null` for entities with no scene presence; helpers on this class return `null` in that case. | [Behaviour.ts:92](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L92) |
100
- | <a id="transform"></a> `transform` | [`TransformComponent`](../../components/classes/TransformComponent.md) | `undefined` | The entity's [TransformComponent](../../components/classes/TransformComponent.md). Mutating `position`, `rotation`, or `scale` here is picked up the same frame by `TransformSyncSystem`. | [Behaviour.ts:98](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L98) |
101
- | <a id="world"></a> `world` | [`World`](../../index/classes/World.md) | `undefined` | The owning [World](../../index/classes/World.md). Refreshed each frame in [Behaviour.update](#update). Use it to query other entities or components. | [Behaviour.ts:104](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L104) |
102
- | <a id="deltatime"></a> `deltaTime` | `number` | `0` | Seconds elapsed since the last frame. Set by the engine before each [Behaviour.onUpdate](#onupdate). | [Behaviour.ts:110](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L110) |
48
+ | <a id="data"></a> `data` | \| [`Component`](../../Component/classes/Component.md) \| `Record`\<`string`, `unknown`\> | `undefined` | Inspector-bound payload from the entity's `ScriptComponent`. Override the type on subclasses with `declare data: MyDataShape` to get type safety inside hooks. Saved with the project so values persist across reloads. | [Behaviour.ts:99](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L99) |
49
+ | <a id="entityid"></a> `entityId` | `number` | `undefined` | Numeric id of the entity this script is attached to. | [Behaviour.ts:102](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L102) |
50
+ | <a id="entity"></a> `entity` | `WorldEntityView` | `undefined` | View of the owning entity (id + components) at construction time. | [Behaviour.ts:105](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L105) |
51
+ | <a id="threeref"></a> `threeRef` | [`Object3DRef`](../../components/classes/Object3DRef.md) | `undefined` | Live three.js object wrapper for the entity. May be `null` for entities with no scene presence; helpers on this class return `null` in that case. | [Behaviour.ts:111](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L111) |
52
+ | <a id="transform"></a> `transform` | [`TransformComponent`](../../components/classes/TransformComponent.md) | `undefined` | The entity's [TransformComponent](../../components/classes/TransformComponent.md). Mutating `position`, `rotation`, or `scale` here is picked up the same frame by `TransformSyncSystem`. | [Behaviour.ts:117](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L117) |
53
+ | <a id="world"></a> `world` | [`World`](../../index/classes/World.md) | `undefined` | The owning [World](../../index/classes/World.md). Refreshed each frame in [Behaviour.update](#update). Use it to query other entities or components. | [Behaviour.ts:123](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L123) |
54
+ | <a id="deltatime"></a> `deltaTime` | `number` | `0` | Seconds elapsed since the last frame. Set by the engine before each [Behaviour.onUpdate](#onupdate). | [Behaviour.ts:129](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L129) |
103
55
 
104
56
  ## Methods
105
57
 
@@ -109,7 +61,7 @@ payload. User code should not call this directly.
109
61
  update(world, deltaTime): void;
110
62
  ```
111
63
 
112
- Defined in: [Behaviour.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L146)
64
+ Defined in: [Behaviour.ts:165](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L165)
113
65
 
114
66
  Engine-managed per-frame entry point. Refreshes [Behaviour.deltaTime](#deltatime)
115
67
  and delegates to [Behaviour.onUpdate](#onupdate).
@@ -144,7 +96,7 @@ CustomEcsSystem.update
144
96
  optional dispose(world): void;
145
97
  ```
146
98
 
147
- Defined in: [Behaviour.ts:158](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L158)
99
+ Defined in: [Behaviour.ts:177](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L177)
148
100
 
149
101
  Optional cleanup hook invoked when the script is detached or the entity
150
102
  is destroyed. Override to release timers, listeners, or other resources.
@@ -173,7 +125,7 @@ CustomEcsSystem.dispose
173
125
  spawnPrefab(source, options?): Promise<number>;
174
126
  ```
175
127
 
176
- Defined in: [Behaviour.ts:181](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L181)
128
+ Defined in: [Behaviour.ts:200](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L200)
177
129
 
178
130
  Instantiate a prefab asset into the world at runtime.
179
131
 
@@ -212,7 +164,7 @@ async onUpdate() {
212
164
  despawn(rootEntityId): number;
213
165
  ```
214
166
 
215
- Defined in: [Behaviour.ts:192](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L192)
167
+ Defined in: [Behaviour.ts:211](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L211)
216
168
 
217
169
  Remove a spawned prefab instance (the root entity and all descendants).
218
170
  Returns the number of entities removed.
@@ -235,7 +187,7 @@ Returns the number of entities removed.
235
187
  getWorldPosition(): Vector3 | null;
236
188
  ```
237
189
 
238
- Defined in: [Behaviour.ts:200](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L200)
190
+ Defined in: [Behaviour.ts:219](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L219)
239
191
 
240
192
  Returns the entity's world-space position as a new `THREE.Vector3`, or
241
193
  `null` if the entity has no scene presence.
@@ -252,7 +204,7 @@ Returns the entity's world-space position as a new `THREE.Vector3`, or
252
204
  getWorldDirection(): Vector3 | null;
253
205
  ```
254
206
 
255
- Defined in: [Behaviour.ts:215](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L215)
207
+ Defined in: [Behaviour.ts:234](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L234)
256
208
 
257
209
  Returns the entity's forward direction in world space (the +Z axis of its
258
210
  world matrix), or `null` if the entity has no scene presence.
@@ -269,7 +221,7 @@ world matrix), or `null` if the entity has no scene presence.
269
221
  directionTo(targetPosition): Vector3 | null;
270
222
  ```
271
223
 
272
- Defined in: [Behaviour.ts:232](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L232)
224
+ Defined in: [Behaviour.ts:251](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L251)
273
225
 
274
226
  Returns a unit vector pointing from this entity toward the given world
275
227
  position, or `null` if the entity has no scene presence.
@@ -292,7 +244,7 @@ position, or `null` if the entity has no scene presence.
292
244
  distanceTo(targetPosition): number | null;
293
245
  ```
294
246
 
295
- Defined in: [Behaviour.ts:247](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L247)
247
+ Defined in: [Behaviour.ts:266](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L266)
296
248
 
297
249
  Returns the world-space distance from this entity to the given position,
298
250
  or `null` if the entity has no scene presence.
@@ -315,7 +267,7 @@ or `null` if the entity has no scene presence.
315
267
  lerpTo(targetPosition, alpha): void;
316
268
  ```
317
269
 
318
- Defined in: [Behaviour.ts:265](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L265)
270
+ Defined in: [Behaviour.ts:284](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L284)
319
271
 
320
272
  Linearly interpolates the entity's position toward `targetPosition` and
321
273
  writes the result back through [TransformComponent](../../components/classes/TransformComponent.md). No-op if the
@@ -340,7 +292,7 @@ entity has no scene presence.
340
292
  slerpTo(targetRotation, alpha): void;
341
293
  ```
342
294
 
343
- Defined in: [Behaviour.ts:287](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L287)
295
+ Defined in: [Behaviour.ts:306](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L306)
344
296
 
345
297
  Spherically interpolates the entity's rotation toward `targetRotation`
346
298
  and writes the result back through [TransformComponent](../../components/classes/TransformComponent.md). No-op if
@@ -365,7 +317,7 @@ the entity has no scene presence.
365
317
  lookAt(targetPosition): void;
366
318
  ```
367
319
 
368
- Defined in: [Behaviour.ts:306](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L306)
320
+ Defined in: [Behaviour.ts:325](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L325)
369
321
 
370
322
  Rotates the entity to face `targetPosition` in world space and writes the
371
323
  resulting orientation back through [TransformComponent](../../components/classes/TransformComponent.md). No-op if
@@ -389,7 +341,7 @@ the entity has no scene presence.
389
341
  getComponents(): Component[];
390
342
  ```
391
343
 
392
- Defined in: [Behaviour.ts:320](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L320)
344
+ Defined in: [Behaviour.ts:339](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L339)
393
345
 
394
346
  Returns every component currently attached to this entity.
395
347
 
@@ -405,7 +357,7 @@ Returns every component currently attached to this entity.
405
357
  getComponent<T>(componentClass): T | null;
406
358
  ```
407
359
 
408
- Defined in: [Behaviour.ts:337](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L337)
360
+ Defined in: [Behaviour.ts:356](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L356)
409
361
 
410
362
  Returns the entity's component of the given class, or `null` if it has
411
363
  no such component.
@@ -441,7 +393,7 @@ if (mesh) console.log(mesh.geometryRef);
441
393
  getEntity(): WorldEntityView | null;
442
394
  ```
443
395
 
444
- Defined in: [Behaviour.ts:347](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L347)
396
+ Defined in: [Behaviour.ts:366](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L366)
445
397
 
446
398
  Returns the latest [WorldEntityView](../../types/type-aliases/WorldEntityView.md) snapshot for this entity, or
447
399
  `null` if it was destroyed.
@@ -458,7 +410,7 @@ Returns the latest [WorldEntityView](../../types/type-aliases/WorldEntityView.md
458
410
  getParent(): ParentLookup;
459
411
  ```
460
412
 
461
- Defined in: [Behaviour.ts:357](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L357)
413
+ Defined in: [Behaviour.ts:376](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L376)
462
414
 
463
415
  Resolves the entity's parent from the [ParentId](../../components/classes/ParentId.md) component, if any.
464
416
 
@@ -477,7 +429,7 @@ A [ParentLookup](../../types/type-aliases/ParentLookup.md) with the parent compo
477
429
  getChildren(): WorldEntityView[];
478
430
  ```
479
431
 
480
- Defined in: [Behaviour.ts:378](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L378)
432
+ Defined in: [Behaviour.ts:397](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L397)
481
433
 
482
434
  Returns every direct child entity of this one (entities whose
483
435
  [ParentId](../../components/classes/ParentId.md) matches `entityId`).
@@ -494,7 +446,7 @@ Returns every direct child entity of this one (entities whose
494
446
  protected init(): void;
495
447
  ```
496
448
 
497
- Defined in: [Behaviour.ts:393](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L393)
449
+ Defined in: [Behaviour.ts:412](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L412)
498
450
 
499
451
  Called once before the first [Behaviour.onUpdate](#onupdate). Override to
500
452
  default and validate [Behaviour.data](#data), cache references, or set
@@ -512,7 +464,7 @@ initial state. Runs at preview/runtime only — never in the editor.
512
464
  protected onUpdate(): void;
513
465
  ```
514
466
 
515
- Defined in: [Behaviour.ts:402](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L402)
467
+ Defined in: [Behaviour.ts:421](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L421)
516
468
 
517
469
  Called every frame while the script is enabled. Override with the
518
470
  script's main per-frame logic. Runs at preview/runtime only — never in the
@@ -530,7 +482,7 @@ editor (use [ScriptObject](../../index/classes/ScriptObject.md) for editor-visib
530
482
  onSelect(): void;
531
483
  ```
532
484
 
533
- Defined in: [Behaviour.ts:407](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L407)
485
+ Defined in: [Behaviour.ts:426](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L426)
534
486
 
535
487
  Called when the editor selects this entity. Optional UX hook.
536
488
 
@@ -546,7 +498,7 @@ Called when the editor selects this entity. Optional UX hook.
546
498
  onDeselect(): void;
547
499
  ```
548
500
 
549
- Defined in: [Behaviour.ts:412](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L412)
501
+ Defined in: [Behaviour.ts:431](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L431)
550
502
 
551
503
  Called when the editor deselects this entity. Optional UX hook.
552
504
 
@@ -562,7 +514,7 @@ Called when the editor deselects this entity. Optional UX hook.
562
514
  onTargetFound(target): void;
563
515
  ```
564
516
 
565
- Defined in: [Behaviour.ts:422](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L422)
517
+ Defined in: [Behaviour.ts:441](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L441)
566
518
 
567
519
  Called when an image-tracking target this entity depends on becomes
568
520
  visible. Optional AR hook.
@@ -585,7 +537,7 @@ visible. Optional AR hook.
585
537
  onTargetLost(target): void;
586
538
  ```
587
539
 
588
- Defined in: [Behaviour.ts:432](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/020795472520adb990c488982ca8572cbf8580db/core/Behaviour.ts#L432)
540
+ Defined in: [Behaviour.ts:451](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L451)
589
541
 
590
542
  Called when an image-tracking target this entity depends on is lost.
591
543
  Optional AR hook.
@@ -599,3 +551,338 @@ Optional AR hook.
599
551
  #### Returns
600
552
 
601
553
  `void`
554
+
555
+ ***
556
+
557
+ ### onXRSessionStart()
558
+
559
+ ```ts
560
+ onXRSessionStart(capabilities): void;
561
+ ```
562
+
563
+ Defined in: [Behaviour.ts:470](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L470)
564
+
565
+ Called once when an immersive session starts. Optional XR hook.
566
+
567
+ Use it to set up XR-only state. Inspect `capabilities` rather than guessing
568
+ by device: feature support differs sharply per headset (for example Vision
569
+ Pro grants no passthrough on the web today).
570
+
571
+ #### Parameters
572
+
573
+ | Parameter | Type | Description |
574
+ | ------ | ------ | ------ |
575
+ | `capabilities` | [`XrCapabilities`](../../index/type-aliases/XrCapabilities.md) | What the session actually granted, read from `XRSession.enabledFeatures`. |
576
+
577
+ #### Returns
578
+
579
+ `void`
580
+
581
+ ***
582
+
583
+ ### onXRSessionEnd()
584
+
585
+ ```ts
586
+ onXRSessionEnd(): void;
587
+ ```
588
+
589
+ Defined in: [Behaviour.ts:475](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L475)
590
+
591
+ Called once when the immersive session ends. Optional XR hook.
592
+
593
+ #### Returns
594
+
595
+ `void`
596
+
597
+ ***
598
+
599
+ ### onSelectStart()
600
+
601
+ ```ts
602
+ onSelectStart(input): void;
603
+ ```
604
+
605
+ Defined in: [Behaviour.ts:485](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L485)
606
+
607
+ Called when a primary action begins — controller trigger, hand pinch, or
608
+ Vision Pro gaze-pinch. Optional XR hook.
609
+
610
+ #### Parameters
611
+
612
+ | Parameter | Type | Description |
613
+ | ------ | ------ | ------ |
614
+ | `input` | [`XrInputState`](../../index/type-aliases/XrInputState.md) | Normalized state for the source that acted. |
615
+
616
+ #### Returns
617
+
618
+ `void`
619
+
620
+ ***
621
+
622
+ ### onSelectEnd()
623
+
624
+ ```ts
625
+ onSelectEnd(input): void;
626
+ ```
627
+
628
+ Defined in: [Behaviour.ts:490](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L490)
629
+
630
+ Called when the primary action ends. Optional XR hook.
631
+
632
+ #### Parameters
633
+
634
+ | Parameter | Type |
635
+ | ------ | ------ |
636
+ | `input` | [`XrInputState`](../../index/type-aliases/XrInputState.md) |
637
+
638
+ #### Returns
639
+
640
+ `void`
641
+
642
+ ***
643
+
644
+ ### onSecondaryGrab()
645
+
646
+ ```ts
647
+ onSecondaryGrab(_input): void;
648
+ ```
649
+
650
+ Defined in: [Behaviour.ts:508](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L508)
651
+
652
+ A SECOND hand joined a two-hand grab on this entity.
653
+
654
+ The first hand anchors the object and keeps holding it; this fires for the
655
+ hand that came second — the foregrip on a rifle, say.
656
+
657
+ #### Parameters
658
+
659
+ | Parameter | Type |
660
+ | ------ | ------ |
661
+ | `_input` | [`XrInputState`](../../index/type-aliases/XrInputState.md) |
662
+
663
+ #### Returns
664
+
665
+ `void`
666
+
667
+ ***
668
+
669
+ ### onSecondaryRelease()
670
+
671
+ ```ts
672
+ onSecondaryRelease(_input): void;
673
+ ```
674
+
675
+ Defined in: [Behaviour.ts:513](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L513)
676
+
677
+ The second hand let go, leaving the object in the first hand alone.
678
+
679
+ #### Parameters
680
+
681
+ | Parameter | Type |
682
+ | ------ | ------ |
683
+ | `_input` | [`XrInputState`](../../index/type-aliases/XrInputState.md) |
684
+
685
+ #### Returns
686
+
687
+ `void`
688
+
689
+ ***
690
+
691
+ ### onHandPoseStart()
692
+
693
+ ```ts
694
+ onHandPoseStart(_event): void;
695
+ ```
696
+
697
+ Defined in: [Behaviour.ts:523](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L523)
698
+
699
+ A hand pose declared on this entity started being held.
700
+
701
+ Fires once the pose has been sustained for its hold time, not the instant
702
+ the fingers pass through it.
703
+
704
+ #### Parameters
705
+
706
+ | Parameter | Type |
707
+ | ------ | ------ |
708
+ | `_event` | [`XrHandPoseEventDetail`](../../index/type-aliases/XrHandPoseEventDetail.md) |
709
+
710
+ #### Returns
711
+
712
+ `void`
713
+
714
+ ***
715
+
716
+ ### onHandPoseEnd()
717
+
718
+ ```ts
719
+ onHandPoseEnd(_event): void;
720
+ ```
721
+
722
+ Defined in: [Behaviour.ts:528](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L528)
723
+
724
+ A held hand pose ended, or its hand stopped being tracked.
725
+
726
+ #### Parameters
727
+
728
+ | Parameter | Type |
729
+ | ------ | ------ |
730
+ | `_event` | [`XrHandPoseEventDetail`](../../index/type-aliases/XrHandPoseEventDetail.md) |
731
+
732
+ #### Returns
733
+
734
+ `void`
735
+
736
+ ***
737
+
738
+ ### onGrab()
739
+
740
+ ```ts
741
+ onGrab(input): void;
742
+ ```
743
+
744
+ Defined in: [Behaviour.ts:532](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L532)
745
+
746
+ #### Parameters
747
+
748
+ | Parameter | Type |
749
+ | ------ | ------ |
750
+ | `input` | [`XrInputState`](../../index/type-aliases/XrInputState.md) |
751
+
752
+ #### Returns
753
+
754
+ `void`
755
+
756
+ ***
757
+
758
+ ### onRelease()
759
+
760
+ ```ts
761
+ onRelease(input): void;
762
+ ```
763
+
764
+ Defined in: [Behaviour.ts:537](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L537)
765
+
766
+ Called when this entity is released. Optional XR hook.
767
+
768
+ #### Parameters
769
+
770
+ | Parameter | Type |
771
+ | ------ | ------ |
772
+ | `input` | [`XrInputState`](../../index/type-aliases/XrInputState.md) |
773
+
774
+ #### Returns
775
+
776
+ `void`
777
+
778
+ ***
779
+
780
+ ### onUiPress()
781
+
782
+ ```ts
783
+ onUiPress(_event): void;
784
+ ```
785
+
786
+ Defined in: [Behaviour.ts:543](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L543)
787
+
788
+ A UI button on this entity (or a descendant) was clicked. Clicks fire on
789
+ RELEASE while still pointing at the widget — sliding off cancels.
790
+
791
+ #### Parameters
792
+
793
+ | Parameter | Type |
794
+ | ------ | ------ |
795
+ | `_event` | [`UiInteractionEvent`](../type-aliases/UiInteractionEvent.md) |
796
+
797
+ #### Returns
798
+
799
+ `void`
800
+
801
+ ***
802
+
803
+ ### onUiHoverStart()
804
+
805
+ ```ts
806
+ onUiHoverStart(_event): void;
807
+ ```
808
+
809
+ Defined in: [Behaviour.ts:548](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L548)
810
+
811
+ A pointer began hovering a UI widget on this entity (or a descendant).
812
+
813
+ #### Parameters
814
+
815
+ | Parameter | Type |
816
+ | ------ | ------ |
817
+ | `_event` | [`UiInteractionEvent`](../type-aliases/UiInteractionEvent.md) |
818
+
819
+ #### Returns
820
+
821
+ `void`
822
+
823
+ ***
824
+
825
+ ### onUiHoverEnd()
826
+
827
+ ```ts
828
+ onUiHoverEnd(_event): void;
829
+ ```
830
+
831
+ Defined in: [Behaviour.ts:553](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L553)
832
+
833
+ The pointer left the widget.
834
+
835
+ #### Parameters
836
+
837
+ | Parameter | Type |
838
+ | ------ | ------ |
839
+ | `_event` | [`UiInteractionEvent`](../type-aliases/UiInteractionEvent.md) |
840
+
841
+ #### Returns
842
+
843
+ `void`
844
+
845
+ ***
846
+
847
+ ### onUiToggle()
848
+
849
+ ```ts
850
+ onUiToggle(_event): void;
851
+ ```
852
+
853
+ Defined in: [Behaviour.ts:558](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L558)
854
+
855
+ A UI toggle flipped; `event.value` is the new boolean.
856
+
857
+ #### Parameters
858
+
859
+ | Parameter | Type |
860
+ | ------ | ------ |
861
+ | `_event` | [`UiInteractionEvent`](../type-aliases/UiInteractionEvent.md) |
862
+
863
+ #### Returns
864
+
865
+ `void`
866
+
867
+ ***
868
+
869
+ ### onUiChange()
870
+
871
+ ```ts
872
+ onUiChange(_event): void;
873
+ ```
874
+
875
+ Defined in: [Behaviour.ts:564](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L564)
876
+
877
+ A UI slider moved; `event.value` is the new number. Fires on real value
878
+ changes during the drag and once more on release.
879
+
880
+ #### Parameters
881
+
882
+ | Parameter | Type |
883
+ | ------ | ------ |
884
+ | `_event` | [`UiInteractionEvent`](../type-aliases/UiInteractionEvent.md) |
885
+
886
+ #### Returns
887
+
888
+ `void`
@@ -8,8 +8,12 @@
8
8
 
9
9
  ## Classes
10
10
 
11
- ### Scripting
12
-
13
11
  | Class | Description |
14
12
  | ------ | ------ |
15
- | [Behaviour](classes/Behaviour.md) | Base class for all user-authored scripts attached to an entity through a `ScriptComponent`. Subclass `Behaviour` to drive per-frame logic on a single entity with full access to the [World](../index/classes/World.md), the entity's [TransformComponent](../components/classes/TransformComponent.md), and its three.js [Object3DRef](../components/classes/Object3DRef.md). |
13
+ | [Behaviour](classes/Behaviour.md) | - |
14
+
15
+ ## Type Aliases
16
+
17
+ | Type Alias | Description |
18
+ | ------ | ------ |
19
+ | [UiInteractionEvent](type-aliases/UiInteractionEvent.md) | Payload for spatial-UI hooks. |
@@ -0,0 +1,35 @@
1
+ [**@relu-interactives/spatial-ecs**](../../index.md)
2
+
3
+ ***
4
+
5
+ [@relu-interactives/spatial-ecs](../../index.md) / [Behaviour](../index.md) / UiInteractionEvent
6
+
7
+ # Type Alias: UiInteractionEvent
8
+
9
+ ```ts
10
+ type UiInteractionEvent = {
11
+ targetEntityId: number;
12
+ actionId: string;
13
+ input: XrInputState | null;
14
+ value?: boolean | number;
15
+ };
16
+ ```
17
+
18
+ Defined in: [Behaviour.ts:75](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L75)
19
+
20
+ Payload for spatial-UI hooks.
21
+
22
+ `targetEntityId` is the WIDGET that was interacted with — hooks bubble up
23
+ the parent chain, so a panel script receives its children's events and can
24
+ switch on `actionId` (the widget's authored id, defaulting to its entity
25
+ name). `input` is null when the event came from the mouse in a flat
26
+ preview rather than an XR pointer.
27
+
28
+ ## Properties
29
+
30
+ | Property | Type | Description | Defined in |
31
+ | ------ | ------ | ------ | ------ |
32
+ | <a id="targetentityid"></a> `targetEntityId` | `number` | - | [Behaviour.ts:76](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L76) |
33
+ | <a id="actionid"></a> `actionId` | `string` | - | [Behaviour.ts:77](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L77) |
34
+ | <a id="input"></a> `input` | [`XrInputState`](../../index/type-aliases/XrInputState.md) \| `null` | - | [Behaviour.ts:78](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L78) |
35
+ | <a id="value"></a> `value?` | `boolean` \| `number` | Toggle: the new boolean. Slider: the new number. Absent for presses. | [Behaviour.ts:80](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/Behaviour.ts#L80) |