@relu-interactives/spatial-ecs 0.2.2
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.
- package/README.md +125 -0
- package/dist/System-rXAmagXA.d.cts +659 -0
- package/dist/System-rXAmagXA.d.ts +659 -0
- package/dist/Video-CDemv74U.d.cts +1261 -0
- package/dist/Video-ChKV1UI7.d.ts +1261 -0
- package/dist/assets/draco/draco_decoder.js +34 -0
- package/dist/assets/draco/draco_decoder.wasm +0 -0
- package/dist/assets/draco/draco_wasm_wrapper.js +117 -0
- package/dist/chunk-AYEF3X2P.js +223 -0
- package/dist/chunk-AYEF3X2P.js.map +1 -0
- package/dist/chunk-MAWBTMCG.js +1722 -0
- package/dist/chunk-MAWBTMCG.js.map +1 -0
- package/dist/chunk-NFDTIYR4.js +248 -0
- package/dist/chunk-NFDTIYR4.js.map +1 -0
- package/dist/chunk-OY7ZODZP.js +16 -0
- package/dist/chunk-OY7ZODZP.js.map +1 -0
- package/dist/chunk-P2YDX5DB.js +3304 -0
- package/dist/chunk-P2YDX5DB.js.map +1 -0
- package/dist/chunk-QHILSPT4.js +3 -0
- package/dist/chunk-QHILSPT4.js.map +1 -0
- package/dist/chunk-XWIEEJ7Z.js +1315 -0
- package/dist/chunk-XWIEEJ7Z.js.map +1 -0
- package/dist/components/index.cjs +1745 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +4 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/docs/api/Behaviour/classes/Behaviour.md +554 -0
- package/dist/docs/api/Behaviour/index.md +15 -0
- package/dist/docs/api/Component/classes/Component.md +57 -0
- package/dist/docs/api/Component/index.md +15 -0
- package/dist/docs/api/components/classes/AnimationComponent.md +318 -0
- package/dist/docs/api/components/classes/AudioComponent.md +114 -0
- package/dist/docs/api/components/classes/CameraComponent.md +59 -0
- package/dist/docs/api/components/classes/EntityType.md +48 -0
- package/dist/docs/api/components/classes/Environment.md +47 -0
- package/dist/docs/api/components/classes/ImageComponent.md +57 -0
- package/dist/docs/api/components/classes/ImageTarget.md +60 -0
- package/dist/docs/api/components/classes/ImageTargetAnchor.md +48 -0
- package/dist/docs/api/components/classes/LightComponent.md +70 -0
- package/dist/docs/api/components/classes/MaterialComponent.md +181 -0
- package/dist/docs/api/components/classes/MeshComponent.md +48 -0
- package/dist/docs/api/components/classes/MeshGeometryComponent.md +64 -0
- package/dist/docs/api/components/classes/ModelComponent.md +49 -0
- package/dist/docs/api/components/classes/Name.md +46 -0
- package/dist/docs/api/components/classes/Object3DRef.md +54 -0
- package/dist/docs/api/components/classes/ParentId.md +47 -0
- package/dist/docs/api/components/classes/PhysicsComponent.md +82 -0
- package/dist/docs/api/components/classes/Postprocessing.md +49 -0
- package/dist/docs/api/components/classes/ScriptComponent.md +54 -0
- package/dist/docs/api/components/classes/Selectable.md +46 -0
- package/dist/docs/api/components/classes/SelectionTransformState.md +54 -0
- package/dist/docs/api/components/classes/SpriteComponent.md +55 -0
- package/dist/docs/api/components/classes/TransformComponent.md +197 -0
- package/dist/docs/api/components/classes/VideoComponent.md +123 -0
- package/dist/docs/api/components/functions/normalizePhysicsState.md +23 -0
- package/dist/docs/api/components/index.md +94 -0
- package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +42 -0
- package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +45 -0
- package/dist/docs/api/components/type-aliases/CameraProjection.md +15 -0
- package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +15 -0
- package/dist/docs/api/components/type-aliases/ColliderShape.md +15 -0
- package/dist/docs/api/components/type-aliases/ColliderState.md +62 -0
- package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +27 -0
- package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +37 -0
- package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +34 -0
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +15 -0
- package/dist/docs/api/components/type-aliases/EnvironmentState.md +29 -0
- package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +25 -0
- package/dist/docs/api/components/type-aliases/ImageTargetReference.md +33 -0
- package/dist/docs/api/components/type-aliases/LightValueState.md +41 -0
- package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +15 -0
- package/dist/docs/api/components/type-aliases/MaterialValueState.md +75 -0
- package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +13 -0
- package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +33 -0
- package/dist/docs/api/components/type-aliases/PhysicsState.md +25 -0
- package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +25 -0
- package/dist/docs/api/components/type-aliases/PostprocessingState.md +164 -0
- package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +25 -0
- package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +23 -0
- package/dist/docs/api/components/type-aliases/RigidbodyState.md +53 -0
- package/dist/docs/api/components/type-aliases/RigidbodyType.md +19 -0
- package/dist/docs/api/components/type-aliases/ScriptEntry.md +38 -0
- package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +15 -0
- package/dist/docs/api/components/type-aliases/TransformData.md +27 -0
- package/dist/docs/api/components/type-aliases/TransformModeValue.md +15 -0
- package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +15 -0
- package/dist/docs/api/components/type-aliases/Vec3.md +27 -0
- package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +13 -0
- package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +13 -0
- package/dist/docs/api/index/classes/AnimationStateMachine.md +201 -0
- package/dist/docs/api/index/classes/AnimationStateManager.md +253 -0
- package/dist/docs/api/index/classes/AnimationSystem.md +68 -0
- package/dist/docs/api/index/classes/AudioSystem.md +98 -0
- package/dist/docs/api/index/classes/CameraSyncSystem.md +49 -0
- package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +75 -0
- package/dist/docs/api/index/classes/InputSystem.md +449 -0
- package/dist/docs/api/index/classes/LightSyncSystem.md +49 -0
- package/dist/docs/api/index/classes/MaterialSyncSystem.md +67 -0
- package/dist/docs/api/index/classes/MeshGeometrySystem.md +49 -0
- package/dist/docs/api/index/classes/ObjectManagementSystem.md +298 -0
- package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +49 -0
- package/dist/docs/api/index/classes/PhysicsSyncSystem.md +83 -0
- package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +80 -0
- package/dist/docs/api/index/classes/RenderSystem.md +64 -0
- package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +83 -0
- package/dist/docs/api/index/classes/TransformSyncSystem.md +49 -0
- package/dist/docs/api/index/classes/VideoSystem.md +97 -0
- package/dist/docs/api/index/classes/World.md +1405 -0
- package/dist/docs/api/index/functions/createAnimationComponent.md +28 -0
- package/dist/docs/api/index/functions/createAudioComponent.md +32 -0
- package/dist/docs/api/index/functions/createCameraComponent.md +28 -0
- package/dist/docs/api/index/functions/createEntityTypeComponent.md +28 -0
- package/dist/docs/api/index/functions/createEnvironmentComponent.md +28 -0
- package/dist/docs/api/index/functions/createImageComponent.md +28 -0
- package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +28 -0
- package/dist/docs/api/index/functions/createImageTargetComponent.md +28 -0
- package/dist/docs/api/index/functions/createLightComponent.md +28 -0
- package/dist/docs/api/index/functions/createMaterialComponent.md +28 -0
- package/dist/docs/api/index/functions/createMeshComponent.md +28 -0
- package/dist/docs/api/index/functions/createMeshGeometryComponent.md +28 -0
- package/dist/docs/api/index/functions/createModelComponent.md +28 -0
- package/dist/docs/api/index/functions/createNameComponent.md +28 -0
- package/dist/docs/api/index/functions/createObject3DRefComponent.md +28 -0
- package/dist/docs/api/index/functions/createParentIdComponent.md +28 -0
- package/dist/docs/api/index/functions/createPhysicsComponent.md +30 -0
- package/dist/docs/api/index/functions/createPostprocessingComponent.md +28 -0
- package/dist/docs/api/index/functions/createScriptComponent.md +28 -0
- package/dist/docs/api/index/functions/createSelectableComponent.md +28 -0
- package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +28 -0
- package/dist/docs/api/index/functions/createSpriteComponent.md +28 -0
- package/dist/docs/api/index/functions/createTransformComponent.md +28 -0
- package/dist/docs/api/index/functions/createVideoComponent.md +28 -0
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +28 -0
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +28 -0
- package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +23 -0
- package/dist/docs/api/index/functions/registerDefaultFactories.md +23 -0
- package/dist/docs/api/index/index.md +249 -0
- package/dist/docs/api/index/interfaces/EcsSystem.md +50 -0
- package/dist/docs/api/index/interfaces/StateMachine.md +26 -0
- package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +25 -0
- package/dist/docs/api/index/type-aliases/ComponentFactory.md +25 -0
- package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +37 -0
- package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +26 -0
- package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +25 -0
- package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +23 -0
- package/dist/docs/api/index/type-aliases/KeyboardKey.md +13 -0
- package/dist/docs/api/index/type-aliases/MouseButton.md +13 -0
- package/dist/docs/api/index/type-aliases/SelectionContext.md +31 -0
- package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +13 -0
- package/dist/docs/api/index/variables/KeyboardKeys.md +195 -0
- package/dist/docs/api/index.md +15 -0
- package/dist/docs/api/typedoc-sidebar.json +1 -0
- package/dist/docs/api/types/index.md +34 -0
- package/dist/docs/api/types/type-aliases/AssetInput.md +23 -0
- package/dist/docs/api/types/type-aliases/CheckboxInput.md +13 -0
- package/dist/docs/api/types/type-aliases/ColorInput.md +13 -0
- package/dist/docs/api/types/type-aliases/ComponentInput.md +52 -0
- package/dist/docs/api/types/type-aliases/ComponentKind.md +37 -0
- package/dist/docs/api/types/type-aliases/DropdownInput.md +23 -0
- package/dist/docs/api/types/type-aliases/DropdownOption.md +23 -0
- package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +15 -0
- package/dist/docs/api/types/type-aliases/EcsEntityKind.md +35 -0
- package/dist/docs/api/types/type-aliases/EntityId.md +16 -0
- package/dist/docs/api/types/type-aliases/EntityInput.md +23 -0
- package/dist/docs/api/types/type-aliases/FloatInput.md +13 -0
- package/dist/docs/api/types/type-aliases/IntersectionResult.md +29 -0
- package/dist/docs/api/types/type-aliases/ParentLookup.md +26 -0
- package/dist/docs/api/types/type-aliases/SelectionListener.md +25 -0
- package/dist/docs/api/types/type-aliases/SliderInput.md +27 -0
- package/dist/docs/api/types/type-aliases/TextInput.md +13 -0
- package/dist/docs/api/types/type-aliases/ToggleInput.md +13 -0
- package/dist/docs/api/types/type-aliases/Vec3.md +23 -0
- package/dist/docs/api/types/type-aliases/Vector2Input.md +23 -0
- package/dist/docs/api/types/type-aliases/Vector3Input.md +25 -0
- package/dist/docs/api/types/type-aliases/WorldEntityView.md +17 -0
- package/dist/docs/guide/accessing-components.md +399 -0
- package/dist/docs/guide/authoring-a-behaviour.md +166 -0
- package/dist/docs/guide/behaviour-lifecycle.md +43 -0
- package/dist/docs/guide/component-catalog.md +59 -0
- package/dist/docs/guide/components/_sidebar.json +78 -0
- package/dist/docs/guide/components/animation.md +171 -0
- package/dist/docs/guide/components/audio.md +181 -0
- package/dist/docs/guide/components/camera.md +179 -0
- package/dist/docs/guide/components/entity-type.md +141 -0
- package/dist/docs/guide/components/image-target-anchor.md +103 -0
- package/dist/docs/guide/components/image-target.md +122 -0
- package/dist/docs/guide/components/image.md +146 -0
- package/dist/docs/guide/components/light.md +157 -0
- package/dist/docs/guide/components/material.md +161 -0
- package/dist/docs/guide/components/mesh-geometry.md +153 -0
- package/dist/docs/guide/components/mesh.md +151 -0
- package/dist/docs/guide/components/model.md +96 -0
- package/dist/docs/guide/components/name.md +121 -0
- package/dist/docs/guide/components/object3d-ref.md +115 -0
- package/dist/docs/guide/components/parent-id.md +108 -0
- package/dist/docs/guide/components/physics.md +163 -0
- package/dist/docs/guide/components/script.md +142 -0
- package/dist/docs/guide/components/sprite.md +155 -0
- package/dist/docs/guide/components/transform.md +155 -0
- package/dist/docs/guide/components/video.md +153 -0
- package/dist/docs/guide/concepts.md +34 -0
- package/dist/docs/guide/getting-started/creating-objects.md +50 -0
- package/dist/docs/guide/getting-started/editing-objects.md +62 -0
- package/dist/docs/guide/getting-started/editor/assets-browser.md +55 -0
- package/dist/docs/guide/getting-started/editor/hierarchy.md +47 -0
- package/dist/docs/guide/getting-started/editor/index.md +16 -0
- package/dist/docs/guide/getting-started/editor/inspector.md +36 -0
- package/dist/docs/guide/getting-started/editor/modules.md +35 -0
- package/dist/docs/guide/getting-started/editor/scene-inspector.md +64 -0
- package/dist/docs/guide/getting-started/editor/toolbar.md +39 -0
- package/dist/docs/guide/getting-started/editor/viewport.md +43 -0
- package/dist/docs/guide/getting-started/first-launch.md +17 -0
- package/dist/docs/guide/getting-started/index.md +37 -0
- package/dist/docs/guide/getting-started/installation.md +59 -0
- package/dist/docs/guide/getting-started/preview-and-test.md +55 -0
- package/dist/docs/guide/getting-started/project-types/3d.md +30 -0
- package/dist/docs/guide/getting-started/project-types/ar.md +6 -0
- package/dist/docs/guide/getting-started/project-types/face-tracking.md +6 -0
- package/dist/docs/guide/getting-started/project-types/image-tracking.md +42 -0
- package/dist/docs/guide/getting-started/project-types/index.md +25 -0
- package/dist/docs/guide/getting-started/project-types/vr.md +6 -0
- package/dist/docs/guide/getting-started/projects.md +53 -0
- package/dist/docs/guide/getting-started/shortcuts.md +43 -0
- package/dist/docs/guide/inspector-data-binding.md +367 -0
- package/dist/docs/guide/reading-input.md +202 -0
- package/dist/docs/guide/scene/environment.md +101 -0
- package/dist/docs/guide/scene/index.md +36 -0
- package/dist/docs/guide/scene/postprocessing.md +108 -0
- package/dist/docs/guide/spawning/ambient-light.md +28 -0
- package/dist/docs/guide/spawning/area-light.md +32 -0
- package/dist/docs/guide/spawning/audio.md +42 -0
- package/dist/docs/guide/spawning/camera.md +50 -0
- package/dist/docs/guide/spawning/capsule.md +29 -0
- package/dist/docs/guide/spawning/cube.md +31 -0
- package/dist/docs/guide/spawning/cylinder.md +29 -0
- package/dist/docs/guide/spawning/directional-light.md +32 -0
- package/dist/docs/guide/spawning/empty.md +31 -0
- package/dist/docs/guide/spawning/image-target.md +48 -0
- package/dist/docs/guide/spawning/image.md +33 -0
- package/dist/docs/guide/spawning/index.md +79 -0
- package/dist/docs/guide/spawning/model.md +31 -0
- package/dist/docs/guide/spawning/plane.md +31 -0
- package/dist/docs/guide/spawning/point-light.md +32 -0
- package/dist/docs/guide/spawning/sphere.md +29 -0
- package/dist/docs/guide/spawning/spot-light.md +32 -0
- package/dist/docs/guide/spawning/sprite.md +31 -0
- package/dist/docs/guide/spawning/video.md +53 -0
- package/dist/docs/guide/system-overview.md +73 -0
- package/dist/docs/guide/systems/_sidebar.json +66 -0
- package/dist/docs/guide/systems/animation-system.md +32 -0
- package/dist/docs/guide/systems/audio-system.md +28 -0
- package/dist/docs/guide/systems/camera-sync-system.md +31 -0
- package/dist/docs/guide/systems/environment-sync-system.md +31 -0
- package/dist/docs/guide/systems/input-system.md +217 -0
- package/dist/docs/guide/systems/light-sync-system.md +29 -0
- package/dist/docs/guide/systems/material-sync-system.md +32 -0
- package/dist/docs/guide/systems/mesh-geometry-system.md +40 -0
- package/dist/docs/guide/systems/object-management-system.md +38 -0
- package/dist/docs/guide/systems/object-visibility-system.md +26 -0
- package/dist/docs/guide/systems/physics-sync-system.md +56 -0
- package/dist/docs/guide/systems/postprocessing-sync-system.md +43 -0
- package/dist/docs/guide/systems/render-system.md +22 -0
- package/dist/docs/guide/systems/script-behaviour-system.md +59 -0
- package/dist/docs/guide/systems/transform-sync-system.md +29 -0
- package/dist/docs/guide/systems/video-system.md +30 -0
- package/dist/docs/guide/world-api.md +405 -0
- package/dist/factories/index.cjs +3077 -0
- package/dist/factories/index.cjs.map +1 -0
- package/dist/factories/index.d.cts +69 -0
- package/dist/factories/index.d.ts +69 -0
- package/dist/factories/index.js +6 -0
- package/dist/factories/index.js.map +1 -0
- package/dist/index-B4-YyUNR.d.cts +73 -0
- package/dist/index-BZUOKeTO.d.ts +73 -0
- package/dist/index.cjs +8584 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +283 -0
- package/dist/index.d.ts +283 -0
- package/dist/index.js +1729 -0
- package/dist/index.js.map +1 -0
- package/dist/systems/index.cjs +5119 -0
- package/dist/systems/index.cjs.map +1 -0
- package/dist/systems/index.d.cts +200 -0
- package/dist/systems/index.d.ts +200 -0
- package/dist/systems/index.js +6 -0
- package/dist/systems/index.js.map +1 -0
- package/dist/types.cjs +4 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +3 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/worldSnapshotUtils.cjs +259 -0
- package/dist/worldSnapshotUtils.cjs.map +1 -0
- package/dist/worldSnapshotUtils.d.cts +3 -0
- package/dist/worldSnapshotUtils.d.ts +3 -0
- package/dist/worldSnapshotUtils.js +4 -0
- package/dist/worldSnapshotUtils.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { __name, Component } from './chunk-OY7ZODZP.js';
|
|
2
|
+
|
|
3
|
+
// core/worldSnapshotUtils.ts
|
|
4
|
+
var DEBUG_CHANGE_IGNORED_SYSTEMS = /* @__PURE__ */ new Set([
|
|
5
|
+
"OrbitCameraSystem",
|
|
6
|
+
"PhysicsSyncSystem"
|
|
7
|
+
]);
|
|
8
|
+
function normalizeDebugValue(value, ctx) {
|
|
9
|
+
if (value === null || value === void 0) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
const valueType = typeof value;
|
|
13
|
+
if (valueType === "string" || valueType === "number" || valueType === "boolean") {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (valueType === "function") {
|
|
17
|
+
const fn = value;
|
|
18
|
+
return `[Function:${fn.name || "anonymous"}]`;
|
|
19
|
+
}
|
|
20
|
+
if (value instanceof Date) {
|
|
21
|
+
return value.toISOString();
|
|
22
|
+
}
|
|
23
|
+
if (valueType !== "object") {
|
|
24
|
+
return String(value);
|
|
25
|
+
}
|
|
26
|
+
const objectValue = value;
|
|
27
|
+
const constructorName = objectValue.constructor?.name && objectValue.constructor.name !== "Object" ? objectValue.constructor.name : null;
|
|
28
|
+
if (constructorName === "AnimationClip") {
|
|
29
|
+
return {
|
|
30
|
+
__type: "AnimationClip",
|
|
31
|
+
name: typeof objectValue.name === "string" ? objectValue.name : ""
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (constructorName === "AnimationStateMachine") {
|
|
35
|
+
const clipValue = objectValue.clip && typeof objectValue.clip === "object" ? objectValue.clip : null;
|
|
36
|
+
return {
|
|
37
|
+
__type: "AnimationStateMachine",
|
|
38
|
+
name: typeof objectValue.name === "string" ? objectValue.name : "",
|
|
39
|
+
loop: Boolean(objectValue.loop),
|
|
40
|
+
isPlaying: Boolean(objectValue.isPlaying),
|
|
41
|
+
isPaused: Boolean(objectValue.isPaused),
|
|
42
|
+
clip: {
|
|
43
|
+
__type: "AnimationClip",
|
|
44
|
+
name: typeof clipValue?.name === "string" ? clipValue.name : ""
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (constructorName === "AnimationComponent") {
|
|
49
|
+
const clips = Array.isArray(objectValue.clips) ? objectValue.clips.map((clip) => {
|
|
50
|
+
if (!clip || typeof clip !== "object") {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const clipValue = clip;
|
|
54
|
+
return {
|
|
55
|
+
__type: "AnimationClip",
|
|
56
|
+
name: typeof clipValue.name === "string" ? clipValue.name : ""
|
|
57
|
+
};
|
|
58
|
+
}).filter((clip) => clip !== null) : [];
|
|
59
|
+
const availableClips = Array.isArray(objectValue.availableClips) ? objectValue.availableClips.filter(
|
|
60
|
+
(entry) => typeof entry === "string" && entry.length > 0
|
|
61
|
+
) : clips.map((clip) => clip.name).filter((name) => name.length > 0);
|
|
62
|
+
const externalClipSources = Array.isArray(objectValue.externalClipSources) ? objectValue.externalClipSources.filter(
|
|
63
|
+
(entry) => typeof entry === "string" && entry.length > 0
|
|
64
|
+
) : [];
|
|
65
|
+
const states = Array.isArray(objectValue.states) ? objectValue.states.map((state) => {
|
|
66
|
+
if (!state || typeof state !== "object") {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
const stateValue = state;
|
|
70
|
+
const clipValue = stateValue.clip && typeof stateValue.clip === "object" ? stateValue.clip : null;
|
|
71
|
+
const name = typeof stateValue.name === "string" ? stateValue.name : "";
|
|
72
|
+
const clip = typeof clipValue?.name === "string" ? clipValue.name : "";
|
|
73
|
+
if (!name || !clip) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
name,
|
|
78
|
+
clip,
|
|
79
|
+
clipId: typeof stateValue.clipId === "string" && stateValue.clipId.length > 0 ? stateValue.clipId : null,
|
|
80
|
+
loop: Boolean(stateValue.loop)
|
|
81
|
+
};
|
|
82
|
+
}).filter(
|
|
83
|
+
(state) => state !== null
|
|
84
|
+
) : [];
|
|
85
|
+
const activeValue = objectValue.active && typeof objectValue.active === "object" ? objectValue.active : null;
|
|
86
|
+
const activeStateName = typeof objectValue.activeStateName === "string" ? objectValue.activeStateName : typeof activeValue?.name === "string" ? activeValue.name : null;
|
|
87
|
+
return {
|
|
88
|
+
__type: "AnimationComponent",
|
|
89
|
+
clips,
|
|
90
|
+
availableClips,
|
|
91
|
+
externalClipSources,
|
|
92
|
+
states,
|
|
93
|
+
activeStateName,
|
|
94
|
+
paused: Boolean(objectValue.paused),
|
|
95
|
+
reverse: Boolean(objectValue.reverse),
|
|
96
|
+
timeScale: typeof objectValue.timeScale === "number" && Number.isFinite(objectValue.timeScale) ? objectValue.timeScale : 1,
|
|
97
|
+
crossFadeDuration: typeof objectValue.crossFadeDuration === "number" && Number.isFinite(objectValue.crossFadeDuration) ? Math.max(0, objectValue.crossFadeDuration) : 0
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (constructorName === "PhysicsComponent") {
|
|
101
|
+
return {
|
|
102
|
+
__type: "PhysicsComponent",
|
|
103
|
+
values: normalizeDebugValue(objectValue.values, {
|
|
104
|
+
seen: ctx.seen,
|
|
105
|
+
depth: ctx.depth + 1,
|
|
106
|
+
maxDepth: ctx.maxDepth
|
|
107
|
+
})
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (constructorName === "MaterialComponent") {
|
|
111
|
+
return {
|
|
112
|
+
__type: "MaterialComponent",
|
|
113
|
+
values: normalizeDebugValue(objectValue.values, {
|
|
114
|
+
seen: ctx.seen,
|
|
115
|
+
depth: ctx.depth + 1,
|
|
116
|
+
maxDepth: ctx.maxDepth
|
|
117
|
+
})
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
if (constructorName === "VideoComponent") {
|
|
121
|
+
return {
|
|
122
|
+
__type: "VideoComponent",
|
|
123
|
+
path: typeof objectValue.path === "string" ? objectValue.path : "",
|
|
124
|
+
options: normalizeDebugValue(objectValue.options, {
|
|
125
|
+
seen: ctx.seen,
|
|
126
|
+
depth: ctx.depth + 1,
|
|
127
|
+
maxDepth: ctx.maxDepth
|
|
128
|
+
})
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
if (ctx.seen.has(objectValue)) {
|
|
132
|
+
return "[Circular]";
|
|
133
|
+
}
|
|
134
|
+
if (ctx.depth >= ctx.maxDepth) {
|
|
135
|
+
return constructorName ? `[MaxDepth:${constructorName}]` : "[MaxDepth:Object]";
|
|
136
|
+
}
|
|
137
|
+
if (objectValue.nodeType === 1 && typeof objectValue.tagName === "string") {
|
|
138
|
+
return `[HTMLElement:${String(objectValue.tagName)}]`;
|
|
139
|
+
}
|
|
140
|
+
if (objectValue.isObject3D === true) {
|
|
141
|
+
const position = objectValue.position;
|
|
142
|
+
return {
|
|
143
|
+
__type: "Object3D",
|
|
144
|
+
objectType: objectValue.type,
|
|
145
|
+
name: objectValue.name,
|
|
146
|
+
uuid: objectValue.uuid,
|
|
147
|
+
position: position && typeof position.x === "number" && typeof position.y === "number" && typeof position.z === "number" ? {
|
|
148
|
+
x: position.x,
|
|
149
|
+
y: position.y,
|
|
150
|
+
z: position.z
|
|
151
|
+
} : void 0
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
ctx.seen.add(objectValue);
|
|
155
|
+
const nextContext = {
|
|
156
|
+
seen: ctx.seen,
|
|
157
|
+
depth: ctx.depth + 1,
|
|
158
|
+
maxDepth: ctx.maxDepth
|
|
159
|
+
};
|
|
160
|
+
if (Array.isArray(objectValue)) {
|
|
161
|
+
return objectValue.map((item) => normalizeDebugValue(item, nextContext));
|
|
162
|
+
}
|
|
163
|
+
if (objectValue instanceof Map) {
|
|
164
|
+
return {
|
|
165
|
+
__type: "Map",
|
|
166
|
+
entries: [...objectValue.entries()].map(([key, mapValue]) => [
|
|
167
|
+
normalizeDebugValue(key, nextContext),
|
|
168
|
+
normalizeDebugValue(mapValue, nextContext)
|
|
169
|
+
])
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
if (objectValue instanceof Set) {
|
|
173
|
+
return {
|
|
174
|
+
__type: "Set",
|
|
175
|
+
values: [...objectValue.values()].map(
|
|
176
|
+
(setValue) => normalizeDebugValue(setValue, nextContext)
|
|
177
|
+
)
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const normalized = {};
|
|
181
|
+
const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));
|
|
182
|
+
for (const key of keys) {
|
|
183
|
+
normalized[key] = normalizeDebugValue(objectValue[key], nextContext);
|
|
184
|
+
}
|
|
185
|
+
return constructorName ? {
|
|
186
|
+
__type: constructorName,
|
|
187
|
+
...normalized
|
|
188
|
+
} : normalized;
|
|
189
|
+
}
|
|
190
|
+
__name(normalizeDebugValue, "normalizeDebugValue");
|
|
191
|
+
function shouldPreserveReference(value) {
|
|
192
|
+
const objectValue = value;
|
|
193
|
+
if (objectValue.isObject3D === true) {
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
if (objectValue.nodeType === 1 && typeof objectValue.tagName === "string") {
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
__name(shouldPreserveReference, "shouldPreserveReference");
|
|
202
|
+
function cloneHistoryValue(value, seen = /* @__PURE__ */ new WeakMap()) {
|
|
203
|
+
if (value === null || value === void 0) {
|
|
204
|
+
return value;
|
|
205
|
+
}
|
|
206
|
+
const valueType = typeof value;
|
|
207
|
+
if (valueType === "string" || valueType === "number" || valueType === "boolean" || valueType === "bigint" || valueType === "symbol" || valueType === "function") {
|
|
208
|
+
return value;
|
|
209
|
+
}
|
|
210
|
+
if (value instanceof Date) {
|
|
211
|
+
return new Date(value.getTime());
|
|
212
|
+
}
|
|
213
|
+
if (valueType !== "object") {
|
|
214
|
+
return value;
|
|
215
|
+
}
|
|
216
|
+
const objectValue = value;
|
|
217
|
+
if (shouldPreserveReference(objectValue)) {
|
|
218
|
+
return value;
|
|
219
|
+
}
|
|
220
|
+
const seenValue = seen.get(objectValue);
|
|
221
|
+
if (seenValue !== void 0) {
|
|
222
|
+
return seenValue;
|
|
223
|
+
}
|
|
224
|
+
if (Array.isArray(objectValue)) {
|
|
225
|
+
const cloneArray = [];
|
|
226
|
+
seen.set(objectValue, cloneArray);
|
|
227
|
+
for (const item of objectValue) {
|
|
228
|
+
cloneArray.push(cloneHistoryValue(item, seen));
|
|
229
|
+
}
|
|
230
|
+
return cloneArray;
|
|
231
|
+
}
|
|
232
|
+
const prototype = Object.getPrototypeOf(objectValue);
|
|
233
|
+
const shouldCloneWithPrototype = objectValue instanceof Component || prototype === Object.prototype || prototype === null;
|
|
234
|
+
if (!shouldCloneWithPrototype) {
|
|
235
|
+
return value;
|
|
236
|
+
}
|
|
237
|
+
const cloneObject = Object.create(prototype);
|
|
238
|
+
seen.set(objectValue, cloneObject);
|
|
239
|
+
for (const key of Object.keys(objectValue)) {
|
|
240
|
+
cloneObject[key] = cloneHistoryValue(objectValue[key], seen);
|
|
241
|
+
}
|
|
242
|
+
return cloneObject;
|
|
243
|
+
}
|
|
244
|
+
__name(cloneHistoryValue, "cloneHistoryValue");
|
|
245
|
+
|
|
246
|
+
export { DEBUG_CHANGE_IGNORED_SYSTEMS, cloneHistoryValue, normalizeDebugValue };
|
|
247
|
+
//# sourceMappingURL=chunk-NFDTIYR4.js.map
|
|
248
|
+
//# sourceMappingURL=chunk-NFDTIYR4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../core/worldSnapshotUtils.ts"],"names":[],"mappings":"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","file":"chunk-NFDTIYR4.js","sourcesContent":["import { Component } from \"./Component\";\nimport type { EntityId } from \"./types\";\n\nexport type ComponentClass<T extends Component> = new (...args: never[]) => T;\nexport type AnyComponent = Component;\n\nexport type WorldHistorySnapshot = {\n selectedEntityId: EntityId | null;\n entities: EntityId[];\n nextEntityId: number;\n components: Array<{\n componentType: ComponentClass<AnyComponent>;\n entries: Array<{\n entityId: EntityId;\n component: AnyComponent;\n }>;\n }>;\n};\n\nexport const DEBUG_CHANGE_IGNORED_SYSTEMS = new Set<string>([\n \"OrbitCameraSystem\",\n \"PhysicsSyncSystem\",\n]);\n\ntype NormalizeContext = {\n seen: WeakSet<object>;\n depth: number;\n maxDepth: number;\n};\n\nexport function normalizeDebugValue(\n value: unknown,\n ctx: NormalizeContext,\n): unknown {\n if (value === null || value === undefined) {\n return value;\n }\n\n const valueType = typeof value;\n if (\n valueType === \"string\" ||\n valueType === \"number\" ||\n valueType === \"boolean\"\n ) {\n return value;\n }\n\n if (valueType === \"function\") {\n const fn = value as (...args: unknown[]) => unknown;\n return `[Function:${fn.name || \"anonymous\"}]`;\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (valueType !== \"object\") {\n return String(value);\n }\n\n const objectValue = value as Record<string, unknown>;\n\n const constructorName =\n objectValue.constructor?.name && objectValue.constructor.name !== \"Object\"\n ? objectValue.constructor.name\n : null;\n\n if (constructorName === \"AnimationClip\") {\n return {\n __type: \"AnimationClip\",\n name: typeof objectValue.name === \"string\" ? objectValue.name : \"\",\n };\n }\n\n if (constructorName === \"AnimationStateMachine\") {\n const clipValue =\n objectValue.clip && typeof objectValue.clip === \"object\"\n ? (objectValue.clip as Record<string, unknown>)\n : null;\n\n return {\n __type: \"AnimationStateMachine\",\n name: typeof objectValue.name === \"string\" ? objectValue.name : \"\",\n loop: Boolean(objectValue.loop),\n isPlaying: Boolean(objectValue.isPlaying),\n isPaused: Boolean(objectValue.isPaused),\n clip: {\n __type: \"AnimationClip\",\n name: typeof clipValue?.name === \"string\" ? clipValue.name : \"\",\n },\n };\n }\n\n if (constructorName === \"AnimationComponent\") {\n const clips = Array.isArray(objectValue.clips)\n ? objectValue.clips\n .map((clip) => {\n if (!clip || typeof clip !== \"object\") {\n return null;\n }\n\n const clipValue = clip as Record<string, unknown>;\n return {\n __type: \"AnimationClip\",\n name: typeof clipValue.name === \"string\" ? clipValue.name : \"\",\n };\n })\n .filter((clip): clip is { __type: \"AnimationClip\"; name: string } => clip !== null)\n : [];\n\n const availableClips = Array.isArray(objectValue.availableClips)\n ? objectValue.availableClips.filter(\n (entry): entry is string => typeof entry === \"string\" && entry.length > 0,\n )\n : clips.map((clip) => clip.name).filter((name) => name.length > 0);\n\n const externalClipSources = Array.isArray(objectValue.externalClipSources)\n ? objectValue.externalClipSources.filter(\n (entry): entry is string => typeof entry === \"string\" && entry.length > 0,\n )\n : [];\n\n const states = Array.isArray(objectValue.states)\n ? objectValue.states\n .map((state) => {\n if (!state || typeof state !== \"object\") {\n return null;\n }\n\n const stateValue = state as Record<string, unknown>;\n const clipValue =\n stateValue.clip && typeof stateValue.clip === \"object\"\n ? (stateValue.clip as Record<string, unknown>)\n : null;\n\n const name = typeof stateValue.name === \"string\" ? stateValue.name : \"\";\n const clip = typeof clipValue?.name === \"string\" ? clipValue.name : \"\";\n if (!name || !clip) {\n return null;\n }\n\n return {\n name,\n clip,\n clipId:\n typeof stateValue.clipId === \"string\" && stateValue.clipId.length > 0\n ? stateValue.clipId\n : null,\n loop: Boolean(stateValue.loop),\n };\n })\n .filter(\n (\n state,\n ): state is {\n name: string;\n clip: string;\n clipId: string | null;\n loop: boolean;\n } => state !== null,\n )\n : [];\n\n const activeValue =\n objectValue.active && typeof objectValue.active === \"object\"\n ? (objectValue.active as Record<string, unknown>)\n : null;\n\n const activeStateName =\n typeof objectValue.activeStateName === \"string\"\n ? objectValue.activeStateName\n : typeof activeValue?.name === \"string\"\n ? activeValue.name\n : null;\n\n return {\n __type: \"AnimationComponent\",\n clips,\n availableClips,\n externalClipSources,\n states,\n activeStateName,\n paused: Boolean(objectValue.paused),\n reverse: Boolean(objectValue.reverse),\n timeScale:\n typeof objectValue.timeScale === \"number\" && Number.isFinite(objectValue.timeScale)\n ? objectValue.timeScale\n : 1,\n crossFadeDuration:\n typeof objectValue.crossFadeDuration === \"number\" &&\n Number.isFinite(objectValue.crossFadeDuration)\n ? Math.max(0, objectValue.crossFadeDuration)\n : 0,\n };\n }\n\n if (constructorName === \"PhysicsComponent\") {\n // Only serialize the authoring `values` state. The live `rigidBody` and\n // `collider` Rapier references change every physics frame and must not\n // be included in the debug snapshot, otherwise the WorldChangeDetection-\n // System would detect a change every frame and flood the undo history.\n return {\n __type: \"PhysicsComponent\",\n values: normalizeDebugValue(objectValue.values, {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n }),\n };\n }\n\n if (constructorName === \"MaterialComponent\") {\n // Only serialize the authoring `values` state. The live Three.js\n // `material` / `materials` objects mutate after transparency is toggled\n // (shader recompilation flags, `needsUpdate`, etc.) and must not be\n // included in the debug snapshot — doing so causes the\n // WorldChangeDetectionSystem to detect a spurious change every frame.\n return {\n __type: \"MaterialComponent\",\n values: normalizeDebugValue(objectValue.values, {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n }),\n };\n }\n\n if (constructorName === \"VideoComponent\") {\n // Only serialize `path` and `options`. The live runtime fields\n // (`object`, `videoElement`, `texture`, `material`, `audioNode`) change\n // during video load/playback and must not be included in the debug\n // snapshot — doing so causes WorldChangeDetectionSystem to detect a\n // spurious change on every frame while a video is loading or playing.\n return {\n __type: \"VideoComponent\",\n path: typeof objectValue.path === \"string\" ? objectValue.path : \"\",\n options: normalizeDebugValue(objectValue.options, {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n }),\n };\n }\n\n if (ctx.seen.has(objectValue)) {\n return \"[Circular]\";\n }\n\n if (ctx.depth >= ctx.maxDepth) {\n return constructorName\n ? `[MaxDepth:${constructorName}]`\n : \"[MaxDepth:Object]\";\n }\n\n if (objectValue.nodeType === 1 && typeof objectValue.tagName === \"string\") {\n return `[HTMLElement:${String(objectValue.tagName)}]`;\n }\n\n if (objectValue.isObject3D === true) {\n const position = objectValue.position as\n | { x?: number; y?: number; z?: number }\n | undefined;\n\n return {\n __type: \"Object3D\",\n objectType: objectValue.type,\n name: objectValue.name,\n uuid: objectValue.uuid,\n position:\n position &&\n typeof position.x === \"number\" &&\n typeof position.y === \"number\" &&\n typeof position.z === \"number\"\n ? {\n x: position.x,\n y: position.y,\n z: position.z,\n }\n : undefined,\n };\n }\n\n ctx.seen.add(objectValue);\n const nextContext: NormalizeContext = {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n };\n\n if (Array.isArray(objectValue)) {\n return objectValue.map((item) => normalizeDebugValue(item, nextContext));\n }\n\n if (objectValue instanceof Map) {\n return {\n __type: \"Map\",\n entries: [...objectValue.entries()].map(([key, mapValue]) => [\n normalizeDebugValue(key, nextContext),\n normalizeDebugValue(mapValue, nextContext),\n ]),\n };\n }\n\n if (objectValue instanceof Set) {\n return {\n __type: \"Set\",\n values: [...objectValue.values()].map((setValue) =>\n normalizeDebugValue(setValue, nextContext),\n ),\n };\n }\n\n const normalized: Record<string, unknown> = {};\n const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));\n for (const key of keys) {\n normalized[key] = normalizeDebugValue(objectValue[key], nextContext);\n }\n\n return constructorName\n ? {\n __type: constructorName,\n ...normalized,\n }\n : normalized;\n}\n\nfunction shouldPreserveReference(value: object): boolean {\n const objectValue = value as Record<string, unknown>;\n\n if (objectValue.isObject3D === true) {\n return true;\n }\n\n if (objectValue.nodeType === 1 && typeof objectValue.tagName === \"string\") {\n return true;\n }\n\n return false;\n}\n\nexport function cloneHistoryValue<T>(\n value: T,\n seen: WeakMap<object, unknown> = new WeakMap<object, unknown>(),\n): T {\n if (value === null || value === undefined) {\n return value;\n }\n\n const valueType = typeof value;\n if (\n valueType === \"string\" ||\n valueType === \"number\" ||\n valueType === \"boolean\" ||\n valueType === \"bigint\" ||\n valueType === \"symbol\" ||\n valueType === \"function\"\n ) {\n return value;\n }\n\n if (value instanceof Date) {\n return new Date(value.getTime()) as T;\n }\n\n if (valueType !== \"object\") {\n return value;\n }\n\n const objectValue = value as Record<string, unknown>;\n\n if (shouldPreserveReference(objectValue)) {\n return value;\n }\n\n const seenValue = seen.get(objectValue);\n if (seenValue !== undefined) {\n return seenValue as T;\n }\n\n if (Array.isArray(objectValue)) {\n const cloneArray: unknown[] = [];\n seen.set(objectValue, cloneArray);\n\n for (const item of objectValue) {\n cloneArray.push(cloneHistoryValue(item, seen));\n }\n\n return cloneArray as T;\n }\n\n const prototype = Object.getPrototypeOf(objectValue);\n const shouldCloneWithPrototype =\n objectValue instanceof Component ||\n prototype === Object.prototype ||\n prototype === null;\n\n if (!shouldCloneWithPrototype) {\n return value;\n }\n\n const cloneObject = Object.create(prototype) as Record<string, unknown>;\n seen.set(objectValue, cloneObject);\n\n for (const key of Object.keys(objectValue)) {\n cloneObject[key] = cloneHistoryValue(objectValue[key], seen);\n }\n\n return cloneObject as T;\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
for (var name in all)
|
|
5
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
// core/Component.ts
|
|
9
|
+
var _Component = class _Component {
|
|
10
|
+
};
|
|
11
|
+
__name(_Component, "Component");
|
|
12
|
+
var Component = _Component;
|
|
13
|
+
|
|
14
|
+
export { Component, __export, __name };
|
|
15
|
+
//# sourceMappingURL=chunk-OY7ZODZP.js.map
|
|
16
|
+
//# sourceMappingURL=chunk-OY7ZODZP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../core/Component.ts"],"names":[],"mappings":";;;;;;;;AAWO,IAAM,UAAA,GAAN,MAAM,UAAA,CAAU;AAAC,CAAA;AAAD,MAAA,CAAA,UAAA,EAAA,WAAA,CAAA;AAAhB,IAAM,SAAA,GAAN","file":"chunk-OY7ZODZP.js","sourcesContent":["/**\n * Marker base class for every ECS component. Subclass `Component` to declare\n * a typed data container that systems can query.\n *\n * @remarks\n * Components own state only — runtime behaviour belongs in {@link Behaviour}\n * subclasses for user scripts. Keep fields plain (numbers, strings, vectors,\n * asset URLs).\n *\n * @category Components\n */\nexport class Component {}\n\n"]}
|