@relu-interactives/spatial-ecs 0.2.4 → 0.2.6

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 (50) hide show
  1. package/dist/{System-BTyYvKVH.d.cts → System-CIiWteft.d.cts} +2 -2
  2. package/dist/{System-BTyYvKVH.d.ts → System-CIiWteft.d.ts} +2 -2
  3. package/dist/{Video-BWhbvVPg.d.ts → Video-B-qMljTn.d.ts} +147 -75
  4. package/dist/{Video-D2H5H-K3.d.cts → Video-Dj4KBqQ1.d.cts} +147 -75
  5. package/dist/{chunk-XWIEEJ7Z.js → chunk-EIC5B3A7.js} +128 -82
  6. package/dist/chunk-EIC5B3A7.js.map +1 -0
  7. package/dist/{chunk-AYEF3X2P.js → chunk-FDWNCXU3.js} +3 -3
  8. package/dist/chunk-FDWNCXU3.js.map +1 -0
  9. package/dist/{chunk-NFDTIYR4.js → chunk-G2DUXNTQ.js} +18 -2
  10. package/dist/chunk-G2DUXNTQ.js.map +1 -0
  11. package/dist/{chunk-P2YDX5DB.js → chunk-NRSUYDBA.js} +275 -5
  12. package/dist/chunk-NRSUYDBA.js.map +1 -0
  13. package/dist/{chunk-MAWBTMCG.js → chunk-R5D5PWXV.js} +160 -88
  14. package/dist/chunk-R5D5PWXV.js.map +1 -0
  15. package/dist/components/index.cjs +165 -93
  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 +221 -105
  21. package/dist/factories/index.cjs.map +1 -1
  22. package/dist/factories/index.d.cts +9 -3
  23. package/dist/factories/index.d.ts +9 -3
  24. package/dist/factories/index.js +3 -3
  25. package/dist/{index-KdEzEZox.d.cts → index-B12sx9yF.d.cts} +8 -3
  26. package/dist/{index-Dm6zF1MY.d.ts → index-Cf-PaKyN.d.ts} +8 -3
  27. package/dist/index.cjs +627 -179
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +7 -7
  30. package/dist/index.d.ts +7 -7
  31. package/dist/index.js +54 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/systems/index.cjs +403 -63
  34. package/dist/systems/index.cjs.map +1 -1
  35. package/dist/systems/index.d.cts +27 -3
  36. package/dist/systems/index.d.ts +27 -3
  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 +16 -0
  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-AYEF3X2P.js.map +0 -1
  47. package/dist/chunk-MAWBTMCG.js.map +0 -1
  48. package/dist/chunk-NFDTIYR4.js.map +0 -1
  49. package/dist/chunk-P2YDX5DB.js.map +0 -1
  50. package/dist/chunk-XWIEEJ7Z.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-BTyYvKVH.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-BTyYvKVH.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-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';
3
3
  import * as THREE from 'three';
4
- import { P as Object3DRef } from './Video-D2H5H-K3.cjs';
5
- export { a7 as AnimationStateCallbacks, a8 as AnimationStateMachine, a9 as AnimationStateManager, aa as StateMachine } from './Video-D2H5H-K3.cjs';
6
- export { i as CoreComponents } from './index-KdEzEZox.cjs';
7
- export { AnimationSystem, AudioSystem, CameraSyncSystem, EnvironmentSyncSystem, LightSyncSystem, MaterialSyncSystem, MeshGeometrySystem, ObjectVisibilitySystem, PhysicsSyncSystem, PostprocessingSyncSystem, ScriptBehaviourSystem, SelectionContext, VideoSystem } from './systems/index.cjs';
8
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from './factories/index.cjs';
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';
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';
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-BTyYvKVH.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-BTyYvKVH.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-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';
3
3
  import * as THREE from 'three';
4
- import { P as Object3DRef } from './Video-BWhbvVPg.js';
5
- export { a7 as AnimationStateCallbacks, a8 as AnimationStateMachine, a9 as AnimationStateManager, aa as StateMachine } from './Video-BWhbvVPg.js';
6
- export { i as CoreComponents } from './index-Dm6zF1MY.js';
7
- export { AnimationSystem, AudioSystem, CameraSyncSystem, EnvironmentSyncSystem, LightSyncSystem, MaterialSyncSystem, MeshGeometrySystem, ObjectVisibilitySystem, PhysicsSyncSystem, PostprocessingSyncSystem, ScriptBehaviourSystem, SelectionContext, VideoSystem } from './systems/index.js';
8
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from './factories/index.js';
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';
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';
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, EnvironmentSyncSystem, PostprocessingSyncSystem, LightSyncSystem, MaterialSyncSystem, PhysicsSyncSystem, AnimationSystem, AudioSystem, VideoSystem, CameraSyncSystem, TransformSyncSystem, ObjectVisibilitySystem, RenderSystem } from './chunk-P2YDX5DB.js';
2
- export { AnimationSystem, AudioSystem, Behaviour, CameraSyncSystem, EnvironmentSyncSystem, InputSystem, KeyboardKeys, LightSyncSystem, MaterialSyncSystem, MeshGeometrySystem, ObjectVisibilitySystem, PhysicsSyncSystem, PostprocessingSyncSystem, RenderSystem, ScriptBehaviourSystem, TransformSyncSystem, VideoSystem } from './chunk-P2YDX5DB.js';
3
- import { registerDefaultFactories } from './chunk-XWIEEJ7Z.js';
4
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVideoComponent, registerDefaultComponentFactories, registerDefaultFactories } from './chunk-XWIEEJ7Z.js';
5
- import { ObjectManagementSystem, applyTransform } from './chunk-AYEF3X2P.js';
6
- export { ObjectManagementSystem } from './chunk-AYEF3X2P.js';
7
- import { SelectionTransformState, Object3DRef, Name, EntityType, ScriptComponent, AnimationComponent, TransformComponent, ModelComponent, ImageComponent, SpriteComponent, VideoComponent, AudioComponent, CameraComponent, Environment, Postprocessing, ImageTarget, LightComponent, MaterialComponent, MeshGeometryComponent, Selectable, PhysicsComponent } from './chunk-MAWBTMCG.js';
8
- export { AnimationStateMachine, AnimationStateManager, components_exports as CoreComponents } from './chunk-MAWBTMCG.js';
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';
9
9
  import './chunk-QHILSPT4.js';
10
- import { normalizeDebugValue, DEBUG_CHANGE_IGNORED_SYSTEMS, cloneHistoryValue } from './chunk-NFDTIYR4.js';
10
+ import { normalizeDebugValue, DEBUG_CHANGE_IGNORED_SYSTEMS, cloneHistoryValue } from './chunk-G2DUXNTQ.js';
11
11
  import { __name } from './chunk-OY7ZODZP.js';
12
12
  export { Component } from './chunk-OY7ZODZP.js';
13
13
  import * as THREE from 'three';
@@ -348,6 +348,7 @@ var _World = class _World {
348
348
  isEditor ?? false
349
349
  );
350
350
  const meshGeometrySystem = new MeshGeometrySystem();
351
+ const instancedMeshSystem = new InstancedMeshSystem();
351
352
  const environmentSyncSystem = this.featureFlags.supportSkybox ? new EnvironmentSyncSystem(this.scene) : null;
352
353
  const postprocessingSyncSystem = this.featureFlags.supportPostprocessing ? new PostprocessingSyncSystem(this.renderer, this.scene, this.camera) : null;
353
354
  const lightSyncSystem = new LightSyncSystem();
@@ -370,7 +371,8 @@ var _World = class _World {
370
371
  this.inputSystem = null;
371
372
  const coreSystems = [
372
373
  objectManagementSystem,
373
- meshGeometrySystem
374
+ meshGeometrySystem,
375
+ instancedMeshSystem
374
376
  ];
375
377
  if (environmentSyncSystem) {
376
378
  coreSystems.push(environmentSyncSystem);
@@ -927,7 +929,8 @@ function buildComponentValueMaps(snapshot) {
927
929
  physicsValues: readByComponent(snapshot.components, "PhysicsComponent"),
928
930
  animationValues: readByComponent(snapshot.components, "AnimationComponent"),
929
931
  imageTargetAnchorValues: readByComponent(snapshot.components, "ImageTargetAnchor"),
930
- scriptValues: readByComponent(snapshot.components, "ScriptComponent")
932
+ scriptValues: readByComponent(snapshot.components, "ScriptComponent"),
933
+ instancedMeshValues: readByComponent(snapshot.components, "InstancedMeshComponent")
931
934
  };
932
935
  }
933
936
  __name(buildComponentValueMaps, "buildComponentValueMaps");
@@ -1524,6 +1527,32 @@ function restoreComponentState(world, objectManagementSystem, targetEntityId, so
1524
1527
  sourceAnimation
1525
1528
  );
1526
1529
  }
1530
+ const sourceInstancedMesh = asRecord(values.instancedMeshValues.get(sourceEntityId));
1531
+ if (sourceInstancedMesh) {
1532
+ const imComponent = world.getComponent(targetEntityId, InstancedMeshComponent);
1533
+ if (imComponent) {
1534
+ if (typeof sourceInstancedMesh.meshKind === "string") {
1535
+ imComponent.meshKind = sourceInstancedMesh.meshKind;
1536
+ }
1537
+ if (typeof sourceInstancedMesh.modelPath === "string") {
1538
+ imComponent.modelPath = sourceInstancedMesh.modelPath;
1539
+ }
1540
+ const parameters = asRecord(sourceInstancedMesh.meshParameters);
1541
+ if (parameters) {
1542
+ imComponent.meshParameters = parameters;
1543
+ }
1544
+ if (typeof sourceInstancedMesh.castShadow === "boolean") {
1545
+ imComponent.castShadow = sourceInstancedMesh.castShadow;
1546
+ }
1547
+ if (typeof sourceInstancedMesh.receiveShadow === "boolean") {
1548
+ imComponent.receiveShadow = sourceInstancedMesh.receiveShadow;
1549
+ }
1550
+ if (Array.isArray(sourceInstancedMesh.instances)) {
1551
+ imComponent.instances = sourceInstancedMesh.instances;
1552
+ }
1553
+ imComponent.instancedMesh = null;
1554
+ }
1555
+ }
1527
1556
  }
1528
1557
  __name(restoreComponentState, "restoreComponentState");
1529
1558
 
@@ -1546,7 +1575,8 @@ var HYDRATABLE_ENTITY_KINDS = /* @__PURE__ */ new Set([
1546
1575
  "directionalLight",
1547
1576
  "pointLight",
1548
1577
  "spotLight",
1549
- "areaLight"
1578
+ "areaLight",
1579
+ "instancedMesh"
1550
1580
  ]);
1551
1581
 
1552
1582
  // core/hydration/hydrateWorld.ts
@@ -1623,6 +1653,18 @@ function buildEntityCreationPayload(sourceEntityId, kind, componentValues) {
1623
1653
  };
1624
1654
  }
1625
1655
  }
1656
+ if (kind === "instancedMesh") {
1657
+ const im = asRecord(componentValues.instancedMeshValues.get(sourceEntityId));
1658
+ if (im) {
1659
+ payload.options = {
1660
+ meshKind: typeof im.meshKind === "string" ? im.meshKind : "cube",
1661
+ meshParameters: asRecord(im.meshParameters) ?? void 0,
1662
+ castShadow: typeof im.castShadow === "boolean" ? im.castShadow : false,
1663
+ receiveShadow: typeof im.receiveShadow === "boolean" ? im.receiveShadow : false,
1664
+ instances: Array.isArray(im.instances) ? im.instances : void 0
1665
+ };
1666
+ }
1667
+ }
1626
1668
  return payload;
1627
1669
  }
1628
1670
  __name(buildEntityCreationPayload, "buildEntityCreationPayload");