@relu-interactives/spatial-ecs 0.2.6 → 0.2.8

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 (49) hide show
  1. package/dist/{System-CIiWteft.d.cts → System-AV2_87Zr.d.cts} +1 -1
  2. package/dist/{System-CIiWteft.d.ts → System-AV2_87Zr.d.ts} +1 -1
  3. package/dist/{Video-Dj4KBqQ1.d.cts → Video-Bn93p6XV.d.cts} +27 -5
  4. package/dist/{Video-B-qMljTn.d.ts → Video-D6mObK_5.d.ts} +27 -5
  5. package/dist/{chunk-R5D5PWXV.js → chunk-AZR6SLQN.js} +16 -4
  6. package/dist/chunk-AZR6SLQN.js.map +1 -0
  7. package/dist/{chunk-EIC5B3A7.js → chunk-LE6ARNYQ.js} +84 -13
  8. package/dist/chunk-LE6ARNYQ.js.map +1 -0
  9. package/dist/{chunk-FDWNCXU3.js → chunk-ODCWJHPS.js} +3 -3
  10. package/dist/{chunk-FDWNCXU3.js.map → chunk-ODCWJHPS.js.map} +1 -1
  11. package/dist/{chunk-G2DUXNTQ.js → chunk-PHIEXEKJ.js} +10 -3
  12. package/dist/chunk-PHIEXEKJ.js.map +1 -0
  13. package/dist/{chunk-NRSUYDBA.js → chunk-TVBWYIGY.js} +67 -44
  14. package/dist/chunk-TVBWYIGY.js.map +1 -0
  15. package/dist/components/index.cjs +13 -1
  16. package/dist/components/index.cjs.map +1 -1
  17. package/dist/components/index.d.cts +2 -2
  18. package/dist/components/index.d.ts +2 -2
  19. package/dist/components/index.js +1 -1
  20. package/dist/factories/index.cjs +92 -9
  21. package/dist/factories/index.cjs.map +1 -1
  22. package/dist/factories/index.d.cts +7 -4
  23. package/dist/factories/index.d.ts +7 -4
  24. package/dist/factories/index.js +3 -3
  25. package/dist/{index-Cf-PaKyN.d.ts → index-B4-ABchF.d.cts} +4 -3
  26. package/dist/{index-B12sx9yF.d.cts → index-BO49V8aS.d.ts} +4 -3
  27. package/dist/index.cjs +207 -55
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +6 -6
  30. package/dist/index.d.ts +6 -6
  31. package/dist/index.js +52 -14
  32. package/dist/index.js.map +1 -1
  33. package/dist/systems/index.cjs +64 -46
  34. package/dist/systems/index.cjs.map +1 -1
  35. package/dist/systems/index.d.cts +5 -4
  36. package/dist/systems/index.d.ts +5 -4
  37. package/dist/systems/index.js +3 -3
  38. package/dist/types.d.cts +1 -1
  39. package/dist/types.d.ts +1 -1
  40. package/dist/worldSnapshotUtils.cjs +8 -1
  41. package/dist/worldSnapshotUtils.cjs.map +1 -1
  42. package/dist/worldSnapshotUtils.d.cts +1 -1
  43. package/dist/worldSnapshotUtils.d.ts +1 -1
  44. package/dist/worldSnapshotUtils.js +1 -1
  45. package/package.json +1 -1
  46. package/dist/chunk-EIC5B3A7.js.map +0 -1
  47. package/dist/chunk-G2DUXNTQ.js.map +0 -1
  48. package/dist/chunk-NRSUYDBA.js.map +0 -1
  49. package/dist/chunk-R5D5PWXV.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -1,11 +1,11 @@
1
- import { E as EcsSystem, C as Component, W as WorldEntityView, T as TransformComponent, b as World, c as ComponentClass, d as ParentLookup, e as EcsEntityKind, O as ObjectManagementSystem } from './System-CIiWteft.cjs';
2
- export { A as AssetInput, f as CheckboxInput, g as ColorInput, h as ComponentFactory, i as ComponentInput, j as ComponentKind, D as DropdownInput, k as DropdownOption, l as EcsComponentFactoryKind, m as EcsEntityEditorKind, n as EntityId, o as EntityInput, F as FloatInput, I as InputSystem, p as IntersectionResult, K as KeyboardKey, q as KeyboardKeys, M as MouseButton, R as RenderSystem, S as SelectionListener, r as SliderInput, s as TextInput, t as ToggleInput, u as TransformSyncSystem, v as Vec3, w as Vector2Input, x as Vector3Input } from './System-CIiWteft.cjs';
1
+ import { E as EcsSystem, C as Component, W as WorldEntityView, T as TransformComponent, b as World, c as ComponentClass, d as ParentLookup, e as EcsEntityKind, O as ObjectManagementSystem } from './System-AV2_87Zr.cjs';
2
+ export { A as AssetInput, f as CheckboxInput, g as ColorInput, h as ComponentFactory, i as ComponentInput, j as ComponentKind, D as DropdownInput, k as DropdownOption, l as EcsComponentFactoryKind, m as EcsEntityEditorKind, n as EntityId, o as EntityInput, F as FloatInput, I as InputSystem, p as IntersectionResult, K as KeyboardKey, q as KeyboardKeys, M as MouseButton, R as RenderSystem, S as SelectionListener, r as SliderInput, s as TextInput, t as ToggleInput, u as TransformSyncSystem, v as Vec3, w as Vector2Input, x as Vector3Input } from './System-AV2_87Zr.cjs';
3
3
  import * as THREE from 'three';
4
- import { U as Object3DRef } from './Video-Dj4KBqQ1.cjs';
5
- export { ac as AnimationStateCallbacks, ad as AnimationStateMachine, ae as AnimationStateManager, af as StateMachine } from './Video-Dj4KBqQ1.cjs';
6
- export { i as CoreComponents } from './index-B12sx9yF.cjs';
4
+ import { V as Object3DRef } from './Video-Bn93p6XV.cjs';
5
+ export { ad as AnimationStateCallbacks, ae as AnimationStateMachine, af as AnimationStateManager, ag as StateMachine } from './Video-Bn93p6XV.cjs';
6
+ export { i as CoreComponents } from './index-B4-ABchF.cjs';
7
7
  export { AnimationSystem, AudioSystem, CameraSyncSystem, EnvironmentSyncSystem, InstancedMeshSystem, LightSyncSystem, MaterialSyncSystem, MeshGeometrySystem, ObjectVisibilitySystem, PhysicsSyncSystem, PostprocessingSyncSystem, ScriptBehaviourSystem, SelectionContext, VideoSystem } from './systems/index.cjs';
8
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from './factories/index.cjs';
8
+ 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 './factories/index.cjs';
9
9
  import '@dimforge/rapier3d-compat';
10
10
 
11
11
  interface CustomEcsSystem extends EcsSystem {
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { E as EcsSystem, C as Component, W as WorldEntityView, T as TransformComponent, b as World, c as ComponentClass, d as ParentLookup, e as EcsEntityKind, O as ObjectManagementSystem } from './System-CIiWteft.js';
2
- export { A as AssetInput, f as CheckboxInput, g as ColorInput, h as ComponentFactory, i as ComponentInput, j as ComponentKind, D as DropdownInput, k as DropdownOption, l as EcsComponentFactoryKind, m as EcsEntityEditorKind, n as EntityId, o as EntityInput, F as FloatInput, I as InputSystem, p as IntersectionResult, K as KeyboardKey, q as KeyboardKeys, M as MouseButton, R as RenderSystem, S as SelectionListener, r as SliderInput, s as TextInput, t as ToggleInput, u as TransformSyncSystem, v as Vec3, w as Vector2Input, x as Vector3Input } from './System-CIiWteft.js';
1
+ import { E as EcsSystem, C as Component, W as WorldEntityView, T as TransformComponent, b as World, c as ComponentClass, d as ParentLookup, e as EcsEntityKind, O as ObjectManagementSystem } from './System-AV2_87Zr.js';
2
+ export { A as AssetInput, f as CheckboxInput, g as ColorInput, h as ComponentFactory, i as ComponentInput, j as ComponentKind, D as DropdownInput, k as DropdownOption, l as EcsComponentFactoryKind, m as EcsEntityEditorKind, n as EntityId, o as EntityInput, F as FloatInput, I as InputSystem, p as IntersectionResult, K as KeyboardKey, q as KeyboardKeys, M as MouseButton, R as RenderSystem, S as SelectionListener, r as SliderInput, s as TextInput, t as ToggleInput, u as TransformSyncSystem, v as Vec3, w as Vector2Input, x as Vector3Input } from './System-AV2_87Zr.js';
3
3
  import * as THREE from 'three';
4
- import { U as Object3DRef } from './Video-B-qMljTn.js';
5
- export { ac as AnimationStateCallbacks, ad as AnimationStateMachine, ae as AnimationStateManager, af as StateMachine } from './Video-B-qMljTn.js';
6
- export { i as CoreComponents } from './index-Cf-PaKyN.js';
4
+ import { V as Object3DRef } from './Video-D6mObK_5.js';
5
+ export { ad as AnimationStateCallbacks, ae as AnimationStateMachine, af as AnimationStateManager, ag as StateMachine } from './Video-D6mObK_5.js';
6
+ export { i as CoreComponents } from './index-BO49V8aS.js';
7
7
  export { AnimationSystem, AudioSystem, CameraSyncSystem, EnvironmentSyncSystem, InstancedMeshSystem, LightSyncSystem, MaterialSyncSystem, MeshGeometrySystem, ObjectVisibilitySystem, PhysicsSyncSystem, PostprocessingSyncSystem, ScriptBehaviourSystem, SelectionContext, VideoSystem } from './systems/index.js';
8
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from './factories/index.js';
8
+ 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 './factories/index.js';
9
9
  import '@dimforge/rapier3d-compat';
10
10
 
11
11
  interface CustomEcsSystem extends EcsSystem {
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- import { MeshGeometrySystem, InstancedMeshSystem, EnvironmentSyncSystem, PostprocessingSyncSystem, LightSyncSystem, MaterialSyncSystem, PhysicsSyncSystem, AnimationSystem, AudioSystem, VideoSystem, CameraSyncSystem, TransformSyncSystem, ObjectVisibilitySystem, RenderSystem } from './chunk-NRSUYDBA.js';
2
- export { AnimationSystem, AudioSystem, Behaviour, CameraSyncSystem, EnvironmentSyncSystem, InputSystem, InstancedMeshSystem, KeyboardKeys, LightSyncSystem, MaterialSyncSystem, MeshGeometrySystem, ObjectVisibilitySystem, PhysicsSyncSystem, PostprocessingSyncSystem, RenderSystem, ScriptBehaviourSystem, TransformSyncSystem, VideoSystem } from './chunk-NRSUYDBA.js';
3
- import { registerDefaultFactories } from './chunk-EIC5B3A7.js';
4
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from './chunk-EIC5B3A7.js';
5
- import { ObjectManagementSystem, applyTransform } from './chunk-FDWNCXU3.js';
6
- export { ObjectManagementSystem } from './chunk-FDWNCXU3.js';
7
- import { SelectionTransformState, Object3DRef, Name, EntityType, ScriptComponent, AnimationComponent, TransformComponent, ModelComponent, ImageComponent, SpriteComponent, VideoComponent, AudioComponent, CameraComponent, Environment, Postprocessing, ImageTarget, LightComponent, MaterialComponent, MeshGeometryComponent, Selectable, PhysicsComponent, InstancedMeshComponent } from './chunk-R5D5PWXV.js';
8
- export { AnimationStateMachine, AnimationStateManager, components_exports as CoreComponents } from './chunk-R5D5PWXV.js';
1
+ import { MeshGeometrySystem, InstancedMeshSystem, EnvironmentSyncSystem, PostprocessingSyncSystem, LightSyncSystem, MaterialSyncSystem, PhysicsSyncSystem, AnimationSystem, AudioSystem, VideoSystem, CameraSyncSystem, TransformSyncSystem, ObjectVisibilitySystem, RenderSystem } from './chunk-TVBWYIGY.js';
2
+ export { AnimationSystem, AudioSystem, Behaviour, CameraSyncSystem, EnvironmentSyncSystem, InputSystem, InstancedMeshSystem, KeyboardKeys, LightSyncSystem, MaterialSyncSystem, MeshGeometrySystem, ObjectVisibilitySystem, PhysicsSyncSystem, PostprocessingSyncSystem, RenderSystem, ScriptBehaviourSystem, TransformSyncSystem, VideoSystem } from './chunk-TVBWYIGY.js';
3
+ import { registerDefaultFactories } from './chunk-LE6ARNYQ.js';
4
+ 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';
5
+ import { ObjectManagementSystem, applyTransform } from './chunk-ODCWJHPS.js';
6
+ export { ObjectManagementSystem } from './chunk-ODCWJHPS.js';
7
+ import { SelectionTransformState, Object3DRef, Name, EntityType, ScriptComponent, InstancedMeshComponent, InstanceSlotComponent, AnimationComponent, TransformComponent, ModelComponent, ImageComponent, SpriteComponent, VideoComponent, AudioComponent, CameraComponent, Environment, Postprocessing, ImageTarget, LightComponent, MaterialComponent, MeshGeometryComponent, Selectable, PhysicsComponent } from './chunk-AZR6SLQN.js';
8
+ export { AnimationStateMachine, AnimationStateManager, components_exports as CoreComponents } from './chunk-AZR6SLQN.js';
9
9
  import './chunk-QHILSPT4.js';
10
- import { normalizeDebugValue, DEBUG_CHANGE_IGNORED_SYSTEMS, cloneHistoryValue } from './chunk-G2DUXNTQ.js';
10
+ import { normalizeDebugValue, DEBUG_CHANGE_IGNORED_SYSTEMS, cloneHistoryValue } from './chunk-PHIEXEKJ.js';
11
11
  import { __name } from './chunk-OY7ZODZP.js';
12
12
  export { Component } from './chunk-OY7ZODZP.js';
13
13
  import * as THREE from 'three';
@@ -930,7 +930,8 @@ function buildComponentValueMaps(snapshot) {
930
930
  animationValues: readByComponent(snapshot.components, "AnimationComponent"),
931
931
  imageTargetAnchorValues: readByComponent(snapshot.components, "ImageTargetAnchor"),
932
932
  scriptValues: readByComponent(snapshot.components, "ScriptComponent"),
933
- instancedMeshValues: readByComponent(snapshot.components, "InstancedMeshComponent")
933
+ instancedMeshValues: readByComponent(snapshot.components, "InstancedMeshComponent"),
934
+ instanceSlotValues: readByComponent(snapshot.components, "InstanceSlotComponent")
934
935
  };
935
936
  }
936
937
  __name(buildComponentValueMaps, "buildComponentValueMaps");
@@ -1044,6 +1045,20 @@ function restorePostCreateComponents(world, objectManagementSystem, targetEntity
1044
1045
  new ScriptComponent(entries)
1045
1046
  );
1046
1047
  }
1048
+ {
1049
+ const imComponent = world.getComponent(targetEntityId, InstancedMeshComponent);
1050
+ if (imComponent && imComponent.instanceEntityIds.length > 0) {
1051
+ imComponent.instanceEntityIds = imComponent.instanceEntityIds.map(
1052
+ (oldId) => idMap.get(oldId) ?? oldId
1053
+ );
1054
+ }
1055
+ }
1056
+ {
1057
+ const slotComponent = world.getComponent(targetEntityId, InstanceSlotComponent);
1058
+ if (slotComponent && slotComponent.groupEntityId !== -1) {
1059
+ slotComponent.groupEntityId = idMap.get(slotComponent.groupEntityId) ?? slotComponent.groupEntityId;
1060
+ }
1061
+ }
1047
1062
  }
1048
1063
  __name(restorePostCreateComponents, "restorePostCreateComponents");
1049
1064
 
@@ -1547,12 +1562,21 @@ function restoreComponentState(world, objectManagementSystem, targetEntityId, so
1547
1562
  if (typeof sourceInstancedMesh.receiveShadow === "boolean") {
1548
1563
  imComponent.receiveShadow = sourceInstancedMesh.receiveShadow;
1549
1564
  }
1550
- if (Array.isArray(sourceInstancedMesh.instances)) {
1551
- imComponent.instances = sourceInstancedMesh.instances;
1565
+ if (Array.isArray(sourceInstancedMesh.instanceEntityIds)) {
1566
+ imComponent.instanceEntityIds = sourceInstancedMesh.instanceEntityIds;
1552
1567
  }
1553
1568
  imComponent.instancedMesh = null;
1554
1569
  }
1555
1570
  }
1571
+ const sourceInstanceSlot = asRecord(values.instanceSlotValues.get(sourceEntityId));
1572
+ if (sourceInstanceSlot) {
1573
+ const slotComponent = world.getComponent(targetEntityId, InstanceSlotComponent);
1574
+ if (slotComponent) {
1575
+ if (typeof sourceInstanceSlot.slotIndex === "number") {
1576
+ slotComponent.slotIndex = sourceInstanceSlot.slotIndex;
1577
+ }
1578
+ }
1579
+ }
1556
1580
  }
1557
1581
  __name(restoreComponentState, "restoreComponentState");
1558
1582
 
@@ -1576,7 +1600,8 @@ var HYDRATABLE_ENTITY_KINDS = /* @__PURE__ */ new Set([
1576
1600
  "pointLight",
1577
1601
  "spotLight",
1578
1602
  "areaLight",
1579
- "instancedMesh"
1603
+ "instancedMesh",
1604
+ "instanceSlot"
1580
1605
  ]);
1581
1606
 
1582
1607
  // core/hydration/hydrateWorld.ts
@@ -1658,10 +1683,23 @@ function buildEntityCreationPayload(sourceEntityId, kind, componentValues) {
1658
1683
  if (im) {
1659
1684
  payload.options = {
1660
1685
  meshKind: typeof im.meshKind === "string" ? im.meshKind : "cube",
1686
+ modelPath: typeof im.modelPath === "string" ? im.modelPath : void 0,
1661
1687
  meshParameters: asRecord(im.meshParameters) ?? void 0,
1662
1688
  castShadow: typeof im.castShadow === "boolean" ? im.castShadow : false,
1663
1689
  receiveShadow: typeof im.receiveShadow === "boolean" ? im.receiveShadow : false,
1664
- instances: Array.isArray(im.instances) ? im.instances : void 0
1690
+ // New format: signal the factory to skip child entity creation.
1691
+ // Old format (instances[]): pass through for migration — factory will
1692
+ // create slot entities from the legacy InstanceTransform array.
1693
+ ...Array.isArray(im.instanceEntityIds) ? { instanceEntityIds: im.instanceEntityIds } : Array.isArray(im.instances) ? { instances: im.instances } : {}
1694
+ };
1695
+ }
1696
+ }
1697
+ if (kind === "instanceSlot") {
1698
+ const slot = asRecord(componentValues.instanceSlotValues.get(sourceEntityId));
1699
+ if (slot) {
1700
+ payload.options = {
1701
+ groupEntityId: typeof slot.groupEntityId === "number" ? slot.groupEntityId : -1,
1702
+ slotIndex: typeof slot.slotIndex === "number" ? slot.slotIndex : 0
1665
1703
  };
1666
1704
  }
1667
1705
  }