@relu-interactives/spatial-ecs 0.2.9 → 0.2.11

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 (211) hide show
  1. package/dist/{System-AV2_87Zr.d.cts → System-KTHuWc-i.d.cts} +1 -1
  2. package/dist/{System-AV2_87Zr.d.ts → System-KTHuWc-i.d.ts} +1 -1
  3. package/dist/{Video-D6mObK_5.d.ts → Video-BnrYbbzu.d.cts} +2 -2
  4. package/dist/{Video-Bn93p6XV.d.cts → Video-Ds_0Aj66.d.ts} +2 -2
  5. package/dist/{chunk-ODCWJHPS.js → chunk-OIOUWDOS.js} +3 -3
  6. package/dist/{chunk-ODCWJHPS.js.map → chunk-OIOUWDOS.js.map} +1 -1
  7. package/dist/{chunk-PHIEXEKJ.js → chunk-R2WMVXZZ.js} +11 -2
  8. package/dist/chunk-R2WMVXZZ.js.map +1 -0
  9. package/dist/{chunk-SABZQFSA.js → chunk-UU6VYCIO.js} +33 -11
  10. package/dist/chunk-UU6VYCIO.js.map +1 -0
  11. package/dist/{chunk-AZR6SLQN.js → chunk-XPCVEXMY.js} +2 -2
  12. package/dist/{chunk-AZR6SLQN.js.map → chunk-XPCVEXMY.js.map} +1 -1
  13. package/dist/{chunk-LE6ARNYQ.js → chunk-YLRCC4EK.js} +4 -4
  14. package/dist/{chunk-LE6ARNYQ.js.map → chunk-YLRCC4EK.js.map} +1 -1
  15. package/dist/components/index.cjs.map +1 -1
  16. package/dist/components/index.d.cts +2 -2
  17. package/dist/components/index.d.ts +2 -2
  18. package/dist/components/index.js +1 -1
  19. package/dist/docs/api/Behaviour/classes/Behaviour.md +29 -29
  20. package/dist/docs/api/Component/classes/Component.md +3 -1
  21. package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
  22. package/dist/docs/api/components/classes/AudioComponent.md +19 -19
  23. package/dist/docs/api/components/classes/CameraComponent.md +14 -14
  24. package/dist/docs/api/components/classes/EntityType.md +4 -4
  25. package/dist/docs/api/components/classes/Environment.md +3 -3
  26. package/dist/docs/api/components/classes/ImageComponent.md +7 -7
  27. package/dist/docs/api/components/classes/ImageTarget.md +7 -7
  28. package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
  29. package/dist/docs/api/components/classes/InstanceSlotComponent.md +52 -0
  30. package/dist/docs/api/components/classes/InstancedMeshComponent.md +82 -0
  31. package/dist/docs/api/components/classes/LightComponent.md +6 -6
  32. package/dist/docs/api/components/classes/MaterialComponent.md +11 -11
  33. package/dist/docs/api/components/classes/MeshComponent.md +3 -3
  34. package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
  35. package/dist/docs/api/components/classes/ModelComponent.md +4 -4
  36. package/dist/docs/api/components/classes/Name.md +3 -3
  37. package/dist/docs/api/components/classes/Object3DRef.md +4 -4
  38. package/dist/docs/api/components/classes/ParentId.md +3 -3
  39. package/dist/docs/api/components/classes/PhysicsComponent.md +6 -6
  40. package/dist/docs/api/components/classes/Postprocessing.md +3 -3
  41. package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
  42. package/dist/docs/api/components/classes/Selectable.md +3 -3
  43. package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
  44. package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
  45. package/dist/docs/api/components/classes/TransformComponent.md +12 -12
  46. package/dist/docs/api/components/classes/VideoComponent.md +28 -28
  47. package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
  48. package/dist/docs/api/components/index.md +6 -0
  49. package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
  50. package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
  51. package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
  52. package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +1 -1
  53. package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
  54. package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
  55. package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
  56. package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
  57. package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
  58. package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
  59. package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
  60. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +7 -7
  61. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
  62. package/dist/docs/api/components/type-aliases/EnvironmentState.md +5 -5
  63. package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
  64. package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
  65. package/dist/docs/api/components/type-aliases/InstanceTransform.md +49 -0
  66. package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +15 -0
  67. package/dist/docs/api/components/type-aliases/LightValueState.md +11 -11
  68. package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
  69. package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
  70. package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
  71. package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
  72. package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
  73. package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
  74. package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
  75. package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
  76. package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
  77. package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
  78. package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
  79. package/dist/docs/api/components/type-aliases/ScriptEntry.md +9 -9
  80. package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
  81. package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
  82. package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
  83. package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
  84. package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
  85. package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
  86. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
  87. package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +15 -0
  88. package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +15 -0
  89. package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
  90. package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
  91. package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
  92. package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
  93. package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
  94. package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
  95. package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
  96. package/dist/docs/api/index/classes/AudioSystem.md +4 -4
  97. package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
  98. package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +4 -4
  99. package/dist/docs/api/index/classes/InputSystem.md +33 -33
  100. package/dist/docs/api/index/classes/InstancedMeshSystem.md +62 -0
  101. package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
  102. package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
  103. package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
  104. package/dist/docs/api/index/classes/ObjectManagementSystem.md +14 -14
  105. package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
  106. package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
  107. package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +4 -4
  108. package/dist/docs/api/index/classes/RenderSystem.md +3 -3
  109. package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +4 -4
  110. package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
  111. package/dist/docs/api/index/classes/VideoSystem.md +4 -4
  112. package/dist/docs/api/index/classes/World.md +82 -82
  113. package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
  114. package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
  115. package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
  116. package/dist/docs/api/index/functions/createEntityTypeComponent.md +2 -2
  117. package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
  118. package/dist/docs/api/index/functions/createImageComponent.md +1 -1
  119. package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
  120. package/dist/docs/api/index/functions/createImageTargetComponent.md +1 -1
  121. package/dist/docs/api/index/functions/createInstanceSlotComponent.md +30 -0
  122. package/dist/docs/api/index/functions/createInstancedMeshComponent.md +36 -0
  123. package/dist/docs/api/index/functions/createLightComponent.md +1 -1
  124. package/dist/docs/api/index/functions/createMaterialComponent.md +1 -1
  125. package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
  126. package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
  127. package/dist/docs/api/index/functions/createModelComponent.md +1 -1
  128. package/dist/docs/api/index/functions/createNameComponent.md +1 -1
  129. package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
  130. package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
  131. package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
  132. package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
  133. package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
  134. package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
  135. package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
  136. package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
  137. package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
  138. package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
  139. package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
  140. package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
  141. package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
  142. package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
  143. package/dist/docs/api/index/index.md +3 -0
  144. package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
  145. package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
  146. package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
  147. package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
  148. package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +3 -2
  149. package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
  150. package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
  151. package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +3 -3
  152. package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
  153. package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
  154. package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
  155. package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
  156. package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
  157. package/dist/docs/api/typedoc-sidebar.json +1 -1
  158. package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
  159. package/dist/docs/api/types/type-aliases/CheckboxInput.md +1 -1
  160. package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
  161. package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
  162. package/dist/docs/api/types/type-aliases/ComponentKind.md +3 -1
  163. package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
  164. package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
  165. package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
  166. package/dist/docs/api/types/type-aliases/EcsEntityKind.md +4 -2
  167. package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
  168. package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
  169. package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
  170. package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
  171. package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
  172. package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
  173. package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
  174. package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
  175. package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
  176. package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
  177. package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
  178. package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
  179. package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
  180. package/dist/docs/guide/components/instance-slot.md +102 -0
  181. package/dist/docs/guide/components/instanced-mesh.md +189 -0
  182. package/dist/docs/guide/spawning/index.md +4 -0
  183. package/dist/docs/guide/spawning/instanced-mesh.md +267 -0
  184. package/dist/docs/guide/systems/_sidebar.json +4 -0
  185. package/dist/docs/guide/systems/instanced-mesh-system.md +32 -0
  186. package/dist/factories/index.cjs.map +1 -1
  187. package/dist/factories/index.d.cts +2 -2
  188. package/dist/factories/index.d.ts +2 -2
  189. package/dist/factories/index.js +3 -3
  190. package/dist/{index-B4-ABchF.d.cts → index-ComEYKYI.d.cts} +2 -2
  191. package/dist/{index-BO49V8aS.d.ts → index-D-gUELQS.d.ts} +2 -2
  192. package/dist/index.cjs +38 -7
  193. package/dist/index.cjs.map +1 -1
  194. package/dist/index.d.cts +5 -5
  195. package/dist/index.d.ts +5 -5
  196. package/dist/index.js +9 -9
  197. package/dist/systems/index.cjs +29 -7
  198. package/dist/systems/index.cjs.map +1 -1
  199. package/dist/systems/index.d.cts +11 -2
  200. package/dist/systems/index.d.ts +11 -2
  201. package/dist/systems/index.js +3 -3
  202. package/dist/types.d.cts +1 -1
  203. package/dist/types.d.ts +1 -1
  204. package/dist/worldSnapshotUtils.cjs +9 -0
  205. package/dist/worldSnapshotUtils.cjs.map +1 -1
  206. package/dist/worldSnapshotUtils.d.cts +1 -1
  207. package/dist/worldSnapshotUtils.d.ts +1 -1
  208. package/dist/worldSnapshotUtils.js +1 -1
  209. package/package.json +1 -1
  210. package/dist/chunk-PHIEXEKJ.js.map +0 -1
  211. package/dist/chunk-SABZQFSA.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, a1 as RigidbodyState, g as ColliderState, W as PhysicsComponent, w as EnvironmentState, q as Environment, p as EntityType, I as ImageComponent, y as ImageTargetAnchor, x as ImageTarget, L as LightComponent, M as MaterialComponent, P as MeshComponent, Q as MeshGeometryComponent, T as ModelComponent, U as Name, V as Object3DRef, _ as PostprocessingState, Z as Postprocessing, a4 as ScriptEntry, a3 as ScriptComponent, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, J as InstancedMeshKind, R as MeshGeometryParameters, H as InstancedMeshComponent, F as InstanceSlotComponent, ab as VideoComponent } from '../Video-Bn93p6XV.cjs';
2
- import { b as World, P as ParentId, T as TransformComponent, O as ObjectManagementSystem } from '../System-AV2_87Zr.cjs';
1
+ import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, a1 as RigidbodyState, g as ColliderState, W as PhysicsComponent, w as EnvironmentState, q as Environment, p as EntityType, I as ImageComponent, y as ImageTargetAnchor, x as ImageTarget, L as LightComponent, M as MaterialComponent, P as MeshComponent, Q as MeshGeometryComponent, T as ModelComponent, U as Name, V as Object3DRef, _ as PostprocessingState, Z as Postprocessing, a4 as ScriptEntry, a3 as ScriptComponent, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, J as InstancedMeshKind, R as MeshGeometryParameters, H as InstancedMeshComponent, F as InstanceSlotComponent, ab as VideoComponent } from '../Video-BnrYbbzu.cjs';
2
+ import { b as World, P as ParentId, T as TransformComponent, O as ObjectManagementSystem } from '../System-KTHuWc-i.cjs';
3
3
  import * as THREE from 'three';
4
4
  import '@dimforge/rapier3d-compat';
5
5
 
@@ -1,5 +1,5 @@
1
- import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, a1 as RigidbodyState, g as ColliderState, W as PhysicsComponent, w as EnvironmentState, q as Environment, p as EntityType, I as ImageComponent, y as ImageTargetAnchor, x as ImageTarget, L as LightComponent, M as MaterialComponent, P as MeshComponent, Q as MeshGeometryComponent, T as ModelComponent, U as Name, V as Object3DRef, _ as PostprocessingState, Z as Postprocessing, a4 as ScriptEntry, a3 as ScriptComponent, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, J as InstancedMeshKind, R as MeshGeometryParameters, H as InstancedMeshComponent, F as InstanceSlotComponent, ab as VideoComponent } from '../Video-D6mObK_5.js';
2
- import { b as World, P as ParentId, T as TransformComponent, O as ObjectManagementSystem } from '../System-AV2_87Zr.js';
1
+ import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, a1 as RigidbodyState, g as ColliderState, W as PhysicsComponent, w as EnvironmentState, q as Environment, p as EntityType, I as ImageComponent, y as ImageTargetAnchor, x as ImageTarget, L as LightComponent, M as MaterialComponent, P as MeshComponent, Q as MeshGeometryComponent, T as ModelComponent, U as Name, V as Object3DRef, _ as PostprocessingState, Z as Postprocessing, a4 as ScriptEntry, a3 as ScriptComponent, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, J as InstancedMeshKind, R as MeshGeometryParameters, H as InstancedMeshComponent, F as InstanceSlotComponent, ab as VideoComponent } from '../Video-Ds_0Aj66.js';
2
+ import { b as World, P as ParentId, T as TransformComponent, O as ObjectManagementSystem } from '../System-KTHuWc-i.js';
3
3
  import * as THREE from 'three';
4
4
  import '@dimforge/rapier3d-compat';
5
5
 
@@ -1,6 +1,6 @@
1
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from '../chunk-LE6ARNYQ.js';
2
- import '../chunk-ODCWJHPS.js';
3
- import '../chunk-AZR6SLQN.js';
1
+ export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from '../chunk-YLRCC4EK.js';
2
+ import '../chunk-OIOUWDOS.js';
3
+ import '../chunk-XPCVEXMY.js';
4
4
  import '../chunk-OY7ZODZP.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_ENVIRONMENT_STATE, j as DEFAULT_INSTANCED_MESH_PARAMETERS, k as DEFAULT_INSTANCE_TRANSFORM, l as DEFAULT_MESH_GEOMETRY_PARAMETERS, m as DEFAULT_PHYSICS_STATE, n as DEFAULT_POSTPROCESSING_STATE, o as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, p as EntityType, q as Environment, r as EnvironmentFogState, s as EnvironmentFogType, t as EnvironmentGradientEffect, u as EnvironmentSkyboxState, v as EnvironmentSkyboxType, w as EnvironmentState, I as ImageComponent, x as ImageTarget, y as ImageTargetAnchor, z as ImageTargetAnchorOptions, B as ImageTargetReference, F as InstanceSlotComponent, G as InstanceTransform, H as InstancedMeshComponent, J as InstancedMeshKind, L as LightComponent, K as LightValueState, M as MaterialComponent, N as MaterialTypeValue, O as MaterialValueState, P as MeshComponent, Q as MeshGeometryComponent, R as MeshGeometryParameters, S as MeshGeometryParametersByKind, T as ModelComponent, U as Name, V as Object3DRef, W as PhysicsComponent, X as PhysicsState, Y as PlaneMeshParameters, Z as Postprocessing, _ as PostprocessingState, $ as RadiusHeightMeshParameters, a0 as RadiusMeshParameters, a1 as RigidbodyState, a2 as RigidbodyType, a3 as ScriptComponent, a4 as ScriptEntry, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, a8 as TextureFilteringValue, a9 as TransformModeValue, aa as TransformSpaceValue, ab as VideoComponent, ac as normalizePhysicsState } from './Video-Bn93p6XV.cjs';
2
- import { P as ParentId, T as TransformComponent, a as TransformData, V as Vec3 } from './System-AV2_87Zr.cjs';
1
+ import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_ENVIRONMENT_STATE, j as DEFAULT_INSTANCED_MESH_PARAMETERS, k as DEFAULT_INSTANCE_TRANSFORM, l as DEFAULT_MESH_GEOMETRY_PARAMETERS, m as DEFAULT_PHYSICS_STATE, n as DEFAULT_POSTPROCESSING_STATE, o as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, p as EntityType, q as Environment, r as EnvironmentFogState, s as EnvironmentFogType, t as EnvironmentGradientEffect, u as EnvironmentSkyboxState, v as EnvironmentSkyboxType, w as EnvironmentState, I as ImageComponent, x as ImageTarget, y as ImageTargetAnchor, z as ImageTargetAnchorOptions, B as ImageTargetReference, F as InstanceSlotComponent, G as InstanceTransform, H as InstancedMeshComponent, J as InstancedMeshKind, L as LightComponent, K as LightValueState, M as MaterialComponent, N as MaterialTypeValue, O as MaterialValueState, P as MeshComponent, Q as MeshGeometryComponent, R as MeshGeometryParameters, S as MeshGeometryParametersByKind, T as ModelComponent, U as Name, V as Object3DRef, W as PhysicsComponent, X as PhysicsState, Y as PlaneMeshParameters, Z as Postprocessing, _ as PostprocessingState, $ as RadiusHeightMeshParameters, a0 as RadiusMeshParameters, a1 as RigidbodyState, a2 as RigidbodyType, a3 as ScriptComponent, a4 as ScriptEntry, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, a8 as TextureFilteringValue, a9 as TransformModeValue, aa as TransformSpaceValue, ab as VideoComponent, ac as normalizePhysicsState } from './Video-BnrYbbzu.cjs';
2
+ import { P as ParentId, T as TransformComponent, a as TransformData, V as Vec3 } from './System-KTHuWc-i.cjs';
3
3
 
4
4
  declare const index_AnimationComponent: typeof AnimationComponent;
5
5
  declare const index_AnimationComponentOptions: typeof AnimationComponentOptions;
@@ -1,5 +1,5 @@
1
- import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_ENVIRONMENT_STATE, j as DEFAULT_INSTANCED_MESH_PARAMETERS, k as DEFAULT_INSTANCE_TRANSFORM, l as DEFAULT_MESH_GEOMETRY_PARAMETERS, m as DEFAULT_PHYSICS_STATE, n as DEFAULT_POSTPROCESSING_STATE, o as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, p as EntityType, q as Environment, r as EnvironmentFogState, s as EnvironmentFogType, t as EnvironmentGradientEffect, u as EnvironmentSkyboxState, v as EnvironmentSkyboxType, w as EnvironmentState, I as ImageComponent, x as ImageTarget, y as ImageTargetAnchor, z as ImageTargetAnchorOptions, B as ImageTargetReference, F as InstanceSlotComponent, G as InstanceTransform, H as InstancedMeshComponent, J as InstancedMeshKind, L as LightComponent, K as LightValueState, M as MaterialComponent, N as MaterialTypeValue, O as MaterialValueState, P as MeshComponent, Q as MeshGeometryComponent, R as MeshGeometryParameters, S as MeshGeometryParametersByKind, T as ModelComponent, U as Name, V as Object3DRef, W as PhysicsComponent, X as PhysicsState, Y as PlaneMeshParameters, Z as Postprocessing, _ as PostprocessingState, $ as RadiusHeightMeshParameters, a0 as RadiusMeshParameters, a1 as RigidbodyState, a2 as RigidbodyType, a3 as ScriptComponent, a4 as ScriptEntry, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, a8 as TextureFilteringValue, a9 as TransformModeValue, aa as TransformSpaceValue, ab as VideoComponent, ac as normalizePhysicsState } from './Video-D6mObK_5.js';
2
- import { P as ParentId, T as TransformComponent, a as TransformData, V as Vec3 } from './System-AV2_87Zr.js';
1
+ import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_ENVIRONMENT_STATE, j as DEFAULT_INSTANCED_MESH_PARAMETERS, k as DEFAULT_INSTANCE_TRANSFORM, l as DEFAULT_MESH_GEOMETRY_PARAMETERS, m as DEFAULT_PHYSICS_STATE, n as DEFAULT_POSTPROCESSING_STATE, o as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, p as EntityType, q as Environment, r as EnvironmentFogState, s as EnvironmentFogType, t as EnvironmentGradientEffect, u as EnvironmentSkyboxState, v as EnvironmentSkyboxType, w as EnvironmentState, I as ImageComponent, x as ImageTarget, y as ImageTargetAnchor, z as ImageTargetAnchorOptions, B as ImageTargetReference, F as InstanceSlotComponent, G as InstanceTransform, H as InstancedMeshComponent, J as InstancedMeshKind, L as LightComponent, K as LightValueState, M as MaterialComponent, N as MaterialTypeValue, O as MaterialValueState, P as MeshComponent, Q as MeshGeometryComponent, R as MeshGeometryParameters, S as MeshGeometryParametersByKind, T as ModelComponent, U as Name, V as Object3DRef, W as PhysicsComponent, X as PhysicsState, Y as PlaneMeshParameters, Z as Postprocessing, _ as PostprocessingState, $ as RadiusHeightMeshParameters, a0 as RadiusMeshParameters, a1 as RigidbodyState, a2 as RigidbodyType, a3 as ScriptComponent, a4 as ScriptEntry, a5 as Selectable, a6 as SelectionTransformState, a7 as SpriteComponent, a8 as TextureFilteringValue, a9 as TransformModeValue, aa as TransformSpaceValue, ab as VideoComponent, ac as normalizePhysicsState } from './Video-Ds_0Aj66.js';
2
+ import { P as ParentId, T as TransformComponent, a as TransformData, V as Vec3 } from './System-KTHuWc-i.js';
3
3
 
4
4
  declare const index_AnimationComponent: typeof AnimationComponent;
5
5
  declare const index_AnimationComponentOptions: typeof AnimationComponentOptions;
package/dist/index.cjs CHANGED
@@ -306,10 +306,19 @@ function cloneHistoryValue(value, seen = /* @__PURE__ */ new WeakMap()) {
306
306
  return cloneArray;
307
307
  }
308
308
  const prototype = Object.getPrototypeOf(objectValue);
309
+ const constructorName = objectValue.constructor?.name;
309
310
  const shouldCloneWithPrototype = objectValue instanceof Component || prototype === Object.prototype || prototype === null;
310
311
  if (!shouldCloneWithPrototype) {
311
312
  return value;
312
313
  }
314
+ if (constructorName === "InstancedMeshComponent") {
315
+ const cloneObject2 = Object.create(prototype);
316
+ seen.set(objectValue, cloneObject2);
317
+ for (const key of Object.keys(objectValue)) {
318
+ cloneObject2[key] = key === "instancedMesh" ? null : cloneHistoryValue(objectValue[key], seen);
319
+ }
320
+ return cloneObject2;
321
+ }
313
322
  const cloneObject = Object.create(prototype);
314
323
  seen.set(objectValue, cloneObject);
315
324
  for (const key of Object.keys(objectValue)) {
@@ -6113,6 +6122,15 @@ var _InstancedMeshSystem = class _InstancedMeshSystem {
6113
6122
  this.loadingSignatures = /* @__PURE__ */ new Map();
6114
6123
  /** Per-mesh data for model kind, populated after GLTF load. */
6115
6124
  this.modelMeshEntries = /* @__PURE__ */ new Map();
6125
+ /**
6126
+ * System-internal ref to the Three.js mesh/group most recently placed on
6127
+ * the anchor by this system. Used for cleanup on rebuild instead of
6128
+ * `comp.instancedMesh`, which can be stale (pointing to a disposed mesh)
6129
+ * after an undo/redo restores a history snapshot captured at an earlier
6130
+ * geometry configuration. Relying on the stale comp ref would skip removal
6131
+ * of the current live mesh → ghost mesh in the scene.
6132
+ */
6133
+ this.trackedMeshes = /* @__PURE__ */ new Map();
6116
6134
  }
6117
6135
  update(world) {
6118
6136
  const entityIds = world.query(InstancedMeshComponent);
@@ -6126,6 +6144,9 @@ var _InstancedMeshSystem = class _InstancedMeshSystem {
6126
6144
  for (const trackedId of this.modelMeshEntries.keys()) {
6127
6145
  if (!alive.has(trackedId)) this.modelMeshEntries.delete(trackedId);
6128
6146
  }
6147
+ for (const trackedId of this.trackedMeshes.keys()) {
6148
+ if (!alive.has(trackedId)) this.trackedMeshes.delete(trackedId);
6149
+ }
6129
6150
  for (const entityId of entityIds) {
6130
6151
  const comp = world.getComponent(
6131
6152
  entityId,
@@ -6137,18 +6158,26 @@ var _InstancedMeshSystem = class _InstancedMeshSystem {
6137
6158
  if (!anchor) continue;
6138
6159
  const instanceCount = comp.instanceEntityIds.length;
6139
6160
  const geometrySignature = comp.meshKind === "model" ? `model:${comp.modelPath}:${instanceCount}` : `${comp.meshKind}:${JSON.stringify(comp.meshParameters)}:${instanceCount}`;
6161
+ if (comp.instancedMesh === null) {
6162
+ const tracked = this.trackedMeshes.get(entityId);
6163
+ if (tracked) {
6164
+ comp.instancedMesh = tracked;
6165
+ }
6166
+ }
6140
6167
  const pendingLoadSignature = this.loadingSignatures.get(entityId);
6141
- const needsRebuild = (comp.instancedMesh === null || this.geometrySignatures.get(entityId) !== geometrySignature) && pendingLoadSignature !== geometrySignature;
6168
+ const needsRebuild = (!this.trackedMeshes.has(entityId) || this.geometrySignatures.get(entityId) !== geometrySignature) && pendingLoadSignature !== geometrySignature;
6142
6169
  if (needsRebuild) {
6143
- if (comp.instancedMesh) {
6144
- anchor.remove(comp.instancedMesh);
6145
- if (comp.instancedMesh.isInstancedMesh) {
6146
- disposePrimitiveInstancedMesh(comp.instancedMesh);
6170
+ const trackedMesh = this.trackedMeshes.get(entityId);
6171
+ if (trackedMesh) {
6172
+ anchor.remove(trackedMesh);
6173
+ if (trackedMesh.isInstancedMesh) {
6174
+ disposePrimitiveInstancedMesh(trackedMesh);
6147
6175
  } else {
6148
- disposeModelGroup(comp.instancedMesh);
6176
+ disposeModelGroup(trackedMesh);
6149
6177
  }
6150
- comp.instancedMesh = null;
6178
+ this.trackedMeshes.delete(entityId);
6151
6179
  }
6180
+ comp.instancedMesh = null;
6152
6181
  if (pendingLoadSignature !== void 0 && pendingLoadSignature !== geometrySignature) {
6153
6182
  this.loadingSignatures.delete(entityId);
6154
6183
  this.modelMeshEntries.delete(entityId);
@@ -6234,6 +6263,7 @@ var _InstancedMeshSystem = class _InstancedMeshSystem {
6234
6263
  currentComp.instancedMesh = group;
6235
6264
  this.modelMeshEntries.set(targetEntityId, entries);
6236
6265
  this.geometrySignatures.set(targetEntityId, targetSignature);
6266
+ this.trackedMeshes.set(targetEntityId, group);
6237
6267
  this.loadingSignatures.delete(targetEntityId);
6238
6268
  }).catch(() => {
6239
6269
  this.loadingSignatures.delete(targetEntityId);
@@ -6260,6 +6290,7 @@ var _InstancedMeshSystem = class _InstancedMeshSystem {
6260
6290
  instancedMesh.instanceMatrix.needsUpdate = true;
6261
6291
  anchor.add(instancedMesh);
6262
6292
  comp.instancedMesh = instancedMesh;
6293
+ this.trackedMeshes.set(entityId, instancedMesh);
6263
6294
  this.geometrySignatures.set(entityId, geometrySignature);
6264
6295
  } else {
6265
6296
  if (comp.meshKind === "model") {