@vgai/engine 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/adapter/authoring.d.ts +404 -0
- package/dist/adapter/authoring.d.ts.map +1 -0
- package/dist/adapter/authoring.js +22 -0
- package/dist/adapter/colyseus-networking-adapter.d.ts +43 -0
- package/dist/adapter/colyseus-networking-adapter.d.ts.map +1 -0
- package/dist/adapter/colyseus-networking-adapter.js +38 -0
- package/dist/adapter/first-party-systems.d.ts +38 -0
- package/dist/adapter/first-party-systems.d.ts.map +1 -0
- package/dist/adapter/first-party-systems.js +77 -0
- package/dist/adapter/game-adapter.d.ts +133 -0
- package/dist/adapter/game-adapter.d.ts.map +1 -0
- package/dist/adapter/game-adapter.js +10 -0
- package/dist/adapter/host-context.d.ts +73 -0
- package/dist/adapter/host-context.d.ts.map +1 -0
- package/dist/adapter/host-context.js +16 -0
- package/dist/adapter/index.d.ts +22 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +15 -0
- package/dist/adapter/ingest/game-contract.d.ts +53 -0
- package/dist/adapter/ingest/game-contract.d.ts.map +1 -0
- package/dist/adapter/ingest/game-contract.js +30 -0
- package/dist/adapter/ingest/overlay-applier.d.ts +118 -0
- package/dist/adapter/ingest/overlay-applier.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-applier.js +132 -0
- package/dist/adapter/ingest/overlay-apply.d.ts +60 -0
- package/dist/adapter/ingest/overlay-apply.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-apply.js +101 -0
- package/dist/adapter/ingest/overlay-file.d.ts +79 -0
- package/dist/adapter/ingest/overlay-file.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-file.js +66 -0
- package/dist/adapter/ingest/overlay-report.d.ts +113 -0
- package/dist/adapter/ingest/overlay-report.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-report.js +103 -0
- package/dist/adapter/ingest/scene-capture.d.ts +97 -0
- package/dist/adapter/ingest/scene-capture.d.ts.map +1 -0
- package/dist/adapter/ingest/scene-capture.js +248 -0
- package/dist/adapter/ingest/upstream-pin.d.ts +47 -0
- package/dist/adapter/ingest/upstream-pin.d.ts.map +1 -0
- package/dist/adapter/ingest/upstream-pin.js +50 -0
- package/dist/adapter/loop-gate-report.d.ts +34 -0
- package/dist/adapter/loop-gate-report.d.ts.map +1 -0
- package/dist/adapter/loop-gate-report.js +37 -0
- package/dist/adapter/rapier-physics-adapter.d.ts +12 -0
- package/dist/adapter/rapier-physics-adapter.d.ts.map +1 -0
- package/dist/adapter/rapier-physics-adapter.js +46 -0
- package/dist/adapter/system-adapter.d.ts +133 -0
- package/dist/adapter/system-adapter.d.ts.map +1 -0
- package/dist/adapter/system-adapter.js +13 -0
- package/dist/adapter/transform.d.ts +18 -0
- package/dist/adapter/transform.d.ts.map +1 -0
- package/dist/adapter/transform.js +1 -0
- package/dist/adapter/vgai-scene-game-adapter.d.ts +116 -0
- package/dist/adapter/vgai-scene-game-adapter.d.ts.map +1 -0
- package/dist/adapter/vgai-scene-game-adapter.js +714 -0
- package/dist/adapter/world-kind.d.ts +30 -0
- package/dist/adapter/world-kind.d.ts.map +1 -0
- package/dist/adapter/world-kind.js +18 -0
- package/dist/ai/navigation.d.ts +64 -0
- package/dist/ai/navigation.d.ts.map +1 -0
- package/dist/ai/navigation.js +133 -0
- package/dist/animation/anim-graph-types.d.ts +25 -0
- package/dist/animation/anim-graph-types.d.ts.map +1 -0
- package/dist/animation/anim-graph-types.js +1 -0
- package/dist/animation/animation-clock.d.ts +213 -0
- package/dist/animation/animation-clock.d.ts.map +1 -0
- package/dist/animation/animation-clock.js +301 -0
- package/dist/animation/blend-node.d.ts +22 -0
- package/dist/animation/blend-node.d.ts.map +1 -0
- package/dist/animation/blend-node.js +97 -0
- package/dist/animation/camera-ownership.d.ts +250 -0
- package/dist/animation/camera-ownership.d.ts.map +1 -0
- package/dist/animation/camera-ownership.js +169 -0
- package/dist/animation/cinematic-cues.d.ts +200 -0
- package/dist/animation/cinematic-cues.d.ts.map +1 -0
- package/dist/animation/cinematic-cues.js +213 -0
- package/dist/animation/clip-map.d.ts +12 -0
- package/dist/animation/clip-map.d.ts.map +1 -0
- package/dist/animation/clip-map.js +37 -0
- package/dist/animation/gsap-registration.d.ts +119 -0
- package/dist/animation/gsap-registration.d.ts.map +1 -0
- package/dist/animation/gsap-registration.js +92 -0
- package/dist/animation/theatre-clock-binding.d.ts +89 -0
- package/dist/animation/theatre-clock-binding.d.ts.map +1 -0
- package/dist/animation/theatre-clock-binding.js +29 -0
- package/dist/animation/theatre-director.d.ts +242 -0
- package/dist/animation/theatre-director.d.ts.map +1 -0
- package/dist/animation/theatre-director.js +235 -0
- package/dist/animation/theatre-object-binding.d.ts +305 -0
- package/dist/animation/theatre-object-binding.d.ts.map +1 -0
- package/dist/animation/theatre-object-binding.js +351 -0
- package/dist/animation/xstate-animation-binding.d.ts +111 -0
- package/dist/animation/xstate-animation-binding.d.ts.map +1 -0
- package/dist/animation/xstate-animation-binding.js +307 -0
- package/dist/animation/xstate-animation-meta.d.ts +228 -0
- package/dist/animation/xstate-animation-meta.d.ts.map +1 -0
- package/dist/animation/xstate-animation-meta.js +221 -0
- package/dist/assets.d.ts +26 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +55 -0
- package/dist/audio/index.d.ts +4 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/audio/index.js +24 -0
- package/dist/audio/tone-clock-binding.d.ts +75 -0
- package/dist/audio/tone-clock-binding.d.ts.map +1 -0
- package/dist/audio/tone-clock-binding.js +29 -0
- package/dist/audio/tone-context.d.ts +114 -0
- package/dist/audio/tone-context.d.ts.map +1 -0
- package/dist/audio/tone-context.js +39 -0
- package/dist/audio/tone-offline-render.d.ts +90 -0
- package/dist/audio/tone-offline-render.d.ts.map +1 -0
- package/dist/audio/tone-offline-render.js +56 -0
- package/dist/audio/wav-encode.d.ts +38 -0
- package/dist/audio/wav-encode.d.ts.map +1 -0
- package/dist/audio/wav-encode.js +97 -0
- package/dist/core/game-loop.d.ts +21 -0
- package/dist/core/game-loop.d.ts.map +1 -0
- package/dist/core/game-loop.js +130 -0
- package/dist/core/system-runner.d.ts +120 -0
- package/dist/core/system-runner.d.ts.map +1 -0
- package/dist/core/system-runner.js +286 -0
- package/dist/core/types.d.ts +58 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +25 -0
- package/dist/data/data-asset.d.ts +101 -0
- package/dist/data/data-asset.d.ts.map +1 -0
- package/dist/data/data-asset.js +122 -0
- package/dist/data/data-check-core.d.ts +110 -0
- package/dist/data/data-check-core.d.ts.map +1 -0
- package/dist/data/data-check-core.js +178 -0
- package/dist/data/data-ref.d.ts +79 -0
- package/dist/data/data-ref.d.ts.map +1 -0
- package/dist/data/data-ref.js +130 -0
- package/dist/data/vite-plugin-data.d.ts +79 -0
- package/dist/data/vite-plugin-data.d.ts.map +1 -0
- package/dist/data/vite-plugin-data.js +217 -0
- package/dist/dev/console-bridge.d.ts +22 -0
- package/dist/dev/console-bridge.d.ts.map +1 -0
- package/dist/dev/console-bridge.js +71 -0
- package/dist/dev/debug-draw.d.ts +24 -0
- package/dist/dev/debug-draw.d.ts.map +1 -0
- package/dist/dev/debug-draw.js +73 -0
- package/dist/dev/logger.d.ts +30 -0
- package/dist/dev/logger.d.ts.map +1 -0
- package/dist/dev/logger.js +90 -0
- package/dist/ecs/component-manager.d.ts +189 -0
- package/dist/ecs/component-manager.d.ts.map +1 -0
- package/dist/ecs/component-manager.js +676 -0
- package/dist/ecs/game-component.d.ts +97 -0
- package/dist/ecs/game-component.d.ts.map +1 -0
- package/dist/ecs/game-component.js +80 -0
- package/dist/ecs/hmr-swap-report.d.ts +53 -0
- package/dist/ecs/hmr-swap-report.d.ts.map +1 -0
- package/dist/ecs/hmr-swap-report.js +55 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/input/input-manager.d.ts +596 -0
- package/dist/input/input-manager.d.ts.map +1 -0
- package/dist/input/input-manager.js +1564 -0
- package/dist/input/input-types.d.ts +171 -0
- package/dist/input/input-types.d.ts.map +1 -0
- package/dist/input/input-types.js +1 -0
- package/dist/input/prompt-labels.d.ts +21 -0
- package/dist/input/prompt-labels.d.ts.map +1 -0
- package/dist/input/prompt-labels.js +121 -0
- package/dist/input/rebind-controller.d.ts +59 -0
- package/dist/input/rebind-controller.d.ts.map +1 -0
- package/dist/input/rebind-controller.js +85 -0
- package/dist/input/schema.d.ts +16 -0
- package/dist/input/schema.d.ts.map +1 -0
- package/dist/input/schema.js +228 -0
- package/dist/loader.d.ts +43 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +59 -0
- package/dist/manifest/index.d.ts +5 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +8 -0
- package/dist/manifest/load-file.d.ts +4 -0
- package/dist/manifest/load-file.d.ts.map +1 -0
- package/dist/manifest/load-file.js +14 -0
- package/dist/manifest/load.d.ts +117 -0
- package/dist/manifest/load.d.ts.map +1 -0
- package/dist/manifest/load.js +255 -0
- package/dist/manifest/schema.d.ts +173 -0
- package/dist/manifest/schema.d.ts.map +1 -0
- package/dist/manifest/schema.js +302 -0
- package/dist/physics/collision-system.d.ts +41 -0
- package/dist/physics/collision-system.d.ts.map +1 -0
- package/dist/physics/collision-system.js +64 -0
- package/dist/physics/physics-registry.d.ts +45 -0
- package/dist/physics/physics-registry.d.ts.map +1 -0
- package/dist/physics/physics-registry.js +65 -0
- package/dist/physics/transform-writer.d.ts +16 -0
- package/dist/physics/transform-writer.d.ts.map +1 -0
- package/dist/physics/transform-writer.js +38 -0
- package/dist/physics/trigger-dispatch.d.ts +24 -0
- package/dist/physics/trigger-dispatch.d.ts.map +1 -0
- package/dist/physics/trigger-dispatch.js +80 -0
- package/dist/react/game-state.d.ts +105 -0
- package/dist/react/game-state.d.ts.map +1 -0
- package/dist/react/game-state.js +144 -0
- package/dist/react/use-data.d.ts +60 -0
- package/dist/react/use-data.d.ts.map +1 -0
- package/dist/react/use-data.js +96 -0
- package/dist/react/use-selection.d.ts +75 -0
- package/dist/react/use-selection.d.ts.map +1 -0
- package/dist/react/use-selection.js +90 -0
- package/dist/render/auto-batcher.d.ts +34 -0
- package/dist/render/auto-batcher.d.ts.map +1 -0
- package/dist/render/auto-batcher.js +140 -0
- package/dist/render/render-batch-system.d.ts +33 -0
- package/dist/render/render-batch-system.d.ts.map +1 -0
- package/dist/render/render-batch-system.js +230 -0
- package/dist/render/render-features.d.ts +47 -0
- package/dist/render/render-features.d.ts.map +1 -0
- package/dist/render/render-features.js +105 -0
- package/dist/render/render-settings.d.ts +36 -0
- package/dist/render/render-settings.d.ts.map +1 -0
- package/dist/render/render-settings.js +51 -0
- package/dist/runtime/create-runtime.d.ts +280 -0
- package/dist/runtime/create-runtime.d.ts.map +1 -0
- package/dist/runtime/create-runtime.js +795 -0
- package/dist/runtime/frame-selector-cache.d.ts +41 -0
- package/dist/runtime/frame-selector-cache.d.ts.map +1 -0
- package/dist/runtime/frame-selector-cache.js +65 -0
- package/dist/runtime/game.d.ts +433 -0
- package/dist/runtime/game.d.ts.map +1 -0
- package/dist/runtime/game.js +569 -0
- package/dist/runtime/input-router.d.ts +78 -0
- package/dist/runtime/input-router.d.ts.map +1 -0
- package/dist/runtime/input-router.js +171 -0
- package/dist/runtime/mount-game.d.ts +129 -0
- package/dist/runtime/mount-game.d.ts.map +1 -0
- package/dist/runtime/mount-game.js +152 -0
- package/dist/runtime/mount-manifest.d.ts +119 -0
- package/dist/runtime/mount-manifest.d.ts.map +1 -0
- package/dist/runtime/mount-manifest.js +204 -0
- package/dist/runtime/render-audio-control.d.ts +110 -0
- package/dist/runtime/render-audio-control.d.ts.map +1 -0
- package/dist/runtime/render-audio-control.js +111 -0
- package/dist/runtime/render-control.d.ts +291 -0
- package/dist/runtime/render-control.d.ts.map +1 -0
- package/dist/runtime/render-control.js +264 -0
- package/dist/runtime/render-seed.d.ts +57 -0
- package/dist/runtime/render-seed.d.ts.map +1 -0
- package/dist/runtime/render-seed.js +74 -0
- package/dist/runtime/scene-ui-bridge.d.ts +69 -0
- package/dist/runtime/scene-ui-bridge.d.ts.map +1 -0
- package/dist/runtime/scene-ui-bridge.js +23 -0
- package/dist/runtime/scene-ui-data.d.ts +13 -0
- package/dist/runtime/scene-ui-data.d.ts.map +1 -0
- package/dist/runtime/scene-ui-data.js +92 -0
- package/dist/runtime/state-bridge.d.ts +47 -0
- package/dist/runtime/state-bridge.d.ts.map +1 -0
- package/dist/runtime/state-bridge.js +53 -0
- package/dist/runtime/types.d.ts +179 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +1 -0
- package/dist/scene/asset-loaders.d.ts +79 -0
- package/dist/scene/asset-loaders.d.ts.map +1 -0
- package/dist/scene/asset-loaders.js +141 -0
- package/dist/scene/asset-paths.d.ts +11 -0
- package/dist/scene/asset-paths.d.ts.map +1 -0
- package/dist/scene/asset-paths.js +108 -0
- package/dist/scene/asset-ref-check.d.ts +88 -0
- package/dist/scene/asset-ref-check.d.ts.map +1 -0
- package/dist/scene/asset-ref-check.js +214 -0
- package/dist/scene/asset-registry.d.ts +30 -0
- package/dist/scene/asset-registry.d.ts.map +1 -0
- package/dist/scene/asset-registry.js +50 -0
- package/dist/scene/collider-dimensions.d.ts +63 -0
- package/dist/scene/collider-dimensions.d.ts.map +1 -0
- package/dist/scene/collider-dimensions.js +98 -0
- package/dist/scene/component-registry.d.ts +17 -0
- package/dist/scene/component-registry.d.ts.map +1 -0
- package/dist/scene/component-registry.js +28 -0
- package/dist/scene/defaults.d.ts +252 -0
- package/dist/scene/defaults.d.ts.map +1 -0
- package/dist/scene/defaults.js +151 -0
- package/dist/scene/geometries/index.d.ts +8 -0
- package/dist/scene/geometries/index.d.ts.map +1 -0
- package/dist/scene/geometries/index.js +7 -0
- package/dist/scene/geometries/terrain.d.ts +2 -0
- package/dist/scene/geometries/terrain.d.ts.map +1 -0
- package/dist/scene/geometries/terrain.js +37 -0
- package/dist/scene/geometry-registry.d.ts +24 -0
- package/dist/scene/geometry-registry.d.ts.map +1 -0
- package/dist/scene/geometry-registry.js +20 -0
- package/dist/scene/instance-registry.d.ts +36 -0
- package/dist/scene/instance-registry.d.ts.map +1 -0
- package/dist/scene/instance-registry.js +55 -0
- package/dist/scene/instancers/grid.d.ts +2 -0
- package/dist/scene/instancers/grid.d.ts.map +1 -0
- package/dist/scene/instancers/grid.js +36 -0
- package/dist/scene/instancers/index.d.ts +8 -0
- package/dist/scene/instancers/index.d.ts.map +1 -0
- package/dist/scene/instancers/index.js +7 -0
- package/dist/scene/light-camera-factory.d.ts +23 -0
- package/dist/scene/light-camera-factory.d.ts.map +1 -0
- package/dist/scene/light-camera-factory.js +68 -0
- package/dist/scene/material-factory.d.ts +17 -0
- package/dist/scene/material-factory.d.ts.map +1 -0
- package/dist/scene/material-factory.js +197 -0
- package/dist/scene/material-registry.d.ts +40 -0
- package/dist/scene/material-registry.d.ts.map +1 -0
- package/dist/scene/material-registry.js +44 -0
- package/dist/scene/materials/index.d.ts +8 -0
- package/dist/scene/materials/index.d.ts.map +1 -0
- package/dist/scene/materials/index.js +7 -0
- package/dist/scene/materials/water.d.ts +2 -0
- package/dist/scene/materials/water.d.ts.map +1 -0
- package/dist/scene/materials/water.js +54 -0
- package/dist/scene/parse.d.ts +23 -0
- package/dist/scene/parse.d.ts.map +1 -0
- package/dist/scene/parse.js +179 -0
- package/dist/scene/particles-factory.d.ts +33 -0
- package/dist/scene/particles-factory.d.ts.map +1 -0
- package/dist/scene/particles-factory.js +282 -0
- package/dist/scene/scene-apply.d.ts +109 -0
- package/dist/scene/scene-apply.d.ts.map +1 -0
- package/dist/scene/scene-apply.js +326 -0
- package/dist/scene/scene-diff-schema.d.ts +285 -0
- package/dist/scene/scene-diff-schema.d.ts.map +1 -0
- package/dist/scene/scene-diff-schema.js +92 -0
- package/dist/scene/scene-diff-types.d.ts +40 -0
- package/dist/scene/scene-diff-types.d.ts.map +1 -0
- package/dist/scene/scene-diff-types.js +14 -0
- package/dist/scene/scene-loader.d.ts +177 -0
- package/dist/scene/scene-loader.d.ts.map +1 -0
- package/dist/scene/scene-loader.js +1213 -0
- package/dist/scene/scene-query.d.ts +11 -0
- package/dist/scene/scene-query.d.ts.map +1 -0
- package/dist/scene/scene-query.js +63 -0
- package/dist/scene/scene-types.d.ts +10 -0
- package/dist/scene/scene-types.d.ts.map +1 -0
- package/dist/scene/scene-types.js +8 -0
- package/dist/scene/scene-version.d.ts +26 -0
- package/dist/scene/scene-version.d.ts.map +1 -0
- package/dist/scene/scene-version.js +34 -0
- package/dist/scene/schema/animation.d.ts +8 -0
- package/dist/scene/schema/animation.d.ts.map +1 -0
- package/dist/scene/schema/animation.js +42 -0
- package/dist/scene/schema/audio.d.ts +13 -0
- package/dist/scene/schema/audio.d.ts.map +1 -0
- package/dist/scene/schema/audio.js +22 -0
- package/dist/scene/schema/camera.d.ts +28 -0
- package/dist/scene/schema/camera.d.ts.map +1 -0
- package/dist/scene/schema/camera.js +17 -0
- package/dist/scene/schema/collider.d.ts +40 -0
- package/dist/scene/schema/collider.d.ts.map +1 -0
- package/dist/scene/schema/collider.js +55 -0
- package/dist/scene/schema/entity-ref.d.ts +31 -0
- package/dist/scene/schema/entity-ref.d.ts.map +1 -0
- package/dist/scene/schema/entity-ref.js +61 -0
- package/dist/scene/schema/entity.d.ts +1036 -0
- package/dist/scene/schema/entity.d.ts.map +1 -0
- package/dist/scene/schema/entity.js +153 -0
- package/dist/scene/schema/environment.d.ts +425 -0
- package/dist/scene/schema/environment.d.ts.map +1 -0
- package/dist/scene/schema/environment.js +357 -0
- package/dist/scene/schema/index.d.ts +39 -0
- package/dist/scene/schema/index.d.ts.map +1 -0
- package/dist/scene/schema/index.js +20 -0
- package/dist/scene/schema/instances.d.ts +14 -0
- package/dist/scene/schema/instances.d.ts.map +1 -0
- package/dist/scene/schema/instances.js +28 -0
- package/dist/scene/schema/joint.d.ts +23 -0
- package/dist/scene/schema/joint.d.ts.map +1 -0
- package/dist/scene/schema/joint.js +23 -0
- package/dist/scene/schema/light.d.ts +38 -0
- package/dist/scene/schema/light.d.ts.map +1 -0
- package/dist/scene/schema/light.js +26 -0
- package/dist/scene/schema/material.d.ts +199 -0
- package/dist/scene/schema/material.d.ts.map +1 -0
- package/dist/scene/schema/material.js +99 -0
- package/dist/scene/schema/mesh.d.ts +48 -0
- package/dist/scene/schema/mesh.d.ts.map +1 -0
- package/dist/scene/schema/mesh.js +82 -0
- package/dist/scene/schema/particles.d.ts +2178 -0
- package/dist/scene/schema/particles.d.ts.map +1 -0
- package/dist/scene/schema/particles.js +321 -0
- package/dist/scene/schema/physics.d.ts +56 -0
- package/dist/scene/schema/physics.d.ts.map +1 -0
- package/dist/scene/schema/physics.js +37 -0
- package/dist/scene/schema/scene-file.d.ts +304 -0
- package/dist/scene/schema/scene-file.d.ts.map +1 -0
- package/dist/scene/schema/scene-file.js +262 -0
- package/dist/scene/schema/shadow.d.ts +28 -0
- package/dist/scene/schema/shadow.d.ts.map +1 -0
- package/dist/scene/schema/shadow.js +20 -0
- package/dist/scene/schema/spline.d.ts +25 -0
- package/dist/scene/schema/spline.d.ts.map +1 -0
- package/dist/scene/schema/spline.js +15 -0
- package/dist/scene/schema/tuples.d.ts +12 -0
- package/dist/scene/schema/tuples.d.ts.map +1 -0
- package/dist/scene/schema/tuples.js +14 -0
- package/dist/scene/schema/ui.d.ts +880 -0
- package/dist/scene/schema/ui.d.ts.map +1 -0
- package/dist/scene/schema/ui.js +506 -0
- package/dist/scene/user-data.d.ts +171 -0
- package/dist/scene/user-data.d.ts.map +1 -0
- package/dist/scene/user-data.js +137 -0
- package/dist/setup/setup-audio.d.ts +20 -0
- package/dist/setup/setup-audio.d.ts.map +1 -0
- package/dist/setup/setup-audio.js +41 -0
- package/dist/setup/setup-particles.d.ts +17 -0
- package/dist/setup/setup-particles.d.ts.map +1 -0
- package/dist/setup/setup-particles.js +16 -0
- package/dist/setup/setup-physics.d.ts +25 -0
- package/dist/setup/setup-physics.d.ts.map +1 -0
- package/dist/setup/setup-physics.js +51 -0
- package/dist/setup/setup-renderer.d.ts +69 -0
- package/dist/setup/setup-renderer.d.ts.map +1 -0
- package/dist/setup/setup-renderer.js +363 -0
- package/dist/tools/define-tool.d.ts +105 -0
- package/dist/tools/define-tool.d.ts.map +1 -0
- package/dist/tools/define-tool.js +82 -0
- package/dist/world2d/authoring-2d.d.ts +76 -0
- package/dist/world2d/authoring-2d.d.ts.map +1 -0
- package/dist/world2d/authoring-2d.js +176 -0
- package/dist/world2d/capture-to-scene2d.d.ts +5 -0
- package/dist/world2d/capture-to-scene2d.d.ts.map +1 -0
- package/dist/world2d/capture-to-scene2d.js +49 -0
- package/dist/world2d/collision-2d.d.ts +52 -0
- package/dist/world2d/collision-2d.d.ts.map +1 -0
- package/dist/world2d/collision-2d.js +70 -0
- package/dist/world2d/components-2d.d.ts +47 -0
- package/dist/world2d/components-2d.d.ts.map +1 -0
- package/dist/world2d/components-2d.js +77 -0
- package/dist/world2d/index.d.ts +34 -0
- package/dist/world2d/index.d.ts.map +1 -0
- package/dist/world2d/index.js +32 -0
- package/dist/world2d/ingest-iframe-2d.d.ts +82 -0
- package/dist/world2d/ingest-iframe-2d.d.ts.map +1 -0
- package/dist/world2d/ingest-iframe-2d.js +166 -0
- package/dist/world2d/ingest2d.d.ts +97 -0
- package/dist/world2d/ingest2d.d.ts.map +1 -0
- package/dist/world2d/ingest2d.js +40 -0
- package/dist/world2d/physics2d-registry.d.ts +24 -0
- package/dist/world2d/physics2d-registry.d.ts.map +1 -0
- package/dist/world2d/physics2d-registry.js +38 -0
- package/dist/world2d/pixi-game-adapter.d.ts +107 -0
- package/dist/world2d/pixi-game-adapter.d.ts.map +1 -0
- package/dist/world2d/pixi-game-adapter.js +211 -0
- package/dist/world2d/pixi-surface.d.ts +39 -0
- package/dist/world2d/pixi-surface.d.ts.map +1 -0
- package/dist/world2d/pixi-surface.js +47 -0
- package/dist/world2d/scene-capture-2d.d.ts +43 -0
- package/dist/world2d/scene-capture-2d.d.ts.map +1 -0
- package/dist/world2d/scene-capture-2d.js +92 -0
- package/dist/world2d/scene2d-loader.d.ts +27 -0
- package/dist/world2d/scene2d-loader.d.ts.map +1 -0
- package/dist/world2d/scene2d-loader.js +274 -0
- package/dist/world2d/schema/entity2d.d.ts +102 -0
- package/dist/world2d/schema/entity2d.d.ts.map +1 -0
- package/dist/world2d/schema/entity2d.js +119 -0
- package/dist/world2d/schema/physics2d.d.ts +46 -0
- package/dist/world2d/schema/physics2d.d.ts.map +1 -0
- package/dist/world2d/schema/physics2d.js +45 -0
- package/dist/world2d/schema/sprite.d.ts +42 -0
- package/dist/world2d/schema/sprite.d.ts.map +1 -0
- package/dist/world2d/schema/sprite.js +63 -0
- package/dist/world2d/schema/tilemap.d.ts +15 -0
- package/dist/world2d/schema/tilemap.d.ts.map +1 -0
- package/dist/world2d/schema/tilemap.js +19 -0
- package/dist/world2d/schema/tuples2d.d.ts +20 -0
- package/dist/world2d/schema/tuples2d.d.ts.map +1 -0
- package/dist/world2d/schema/tuples2d.js +19 -0
- package/dist/world2d/system-adapters-2d.d.ts +16 -0
- package/dist/world2d/system-adapters-2d.d.ts.map +1 -0
- package/dist/world2d/system-adapters-2d.js +37 -0
- package/dist/world2d/transform-writer-2d.d.ts +16 -0
- package/dist/world2d/transform-writer-2d.d.ts.map +1 -0
- package/dist/world2d/transform-writer-2d.js +22 -0
- package/dist/world2d/types.d.ts +53 -0
- package/dist/world2d/types.d.ts.map +1 -0
- package/dist/world2d/types.js +1 -0
- package/package.json +18 -4
- package/src/adapter/authoring.ts +10 -0
- package/src/adapter/first-party-systems.ts +23 -34
- package/src/adapter/index.ts +1 -3
- package/src/adapter/system-adapter.ts +15 -22
- package/src/adapter/vgai-scene-game-adapter.ts +5 -14
- package/src/animation/anim-graph-types.ts +12 -43
- package/src/animation/animation-clock.ts +479 -0
- package/src/animation/camera-ownership.ts +467 -0
- package/src/animation/cinematic-cues.ts +451 -0
- package/src/animation/clip-map.ts +41 -0
- package/src/animation/gsap-registration.ts +184 -0
- package/src/animation/theatre-clock-binding.ts +111 -0
- package/src/animation/theatre-director.ts +347 -0
- package/src/animation/theatre-object-binding.ts +661 -0
- package/src/animation/xstate-animation-binding.ts +398 -0
- package/src/animation/xstate-animation-meta.ts +282 -0
- package/src/audio/index.ts +39 -7
- package/src/audio/tone-clock-binding.ts +98 -0
- package/src/audio/tone-context.ts +129 -0
- package/src/audio/tone-offline-render.ts +167 -0
- package/src/audio/wav-encode.ts +119 -0
- package/src/core/game-loop.ts +17 -0
- package/src/core/types.ts +13 -0
- package/src/data/data-asset.ts +167 -0
- package/src/data/data-check-core.ts +242 -0
- package/src/data/data-ref.ts +145 -0
- package/src/data/vite-plugin-data.ts +290 -0
- package/src/index.ts +48 -0
- package/src/input/input-manager.ts +1206 -32
- package/src/input/input-types.ts +155 -3
- package/src/input/prompt-labels.ts +122 -0
- package/src/input/rebind-controller.ts +105 -0
- package/src/input/schema.ts +206 -52
- package/src/react/use-data.ts +114 -0
- package/src/react/use-selection.tsx +135 -0
- package/src/runtime/create-runtime.ts +30 -9
- package/src/runtime/render-audio-control.ts +168 -0
- package/src/runtime/render-control.ts +522 -0
- package/src/runtime/render-seed.ts +79 -0
- package/src/runtime/types.ts +0 -5
- package/src/scene/asset-loaders.ts +10 -36
- package/src/scene/asset-paths.ts +0 -2
- package/src/scene/asset-ref-check.ts +248 -0
- package/src/scene/parse.ts +133 -0
- package/src/scene/scene-loader.ts +81 -96
- package/src/scene/schema/animation.ts +30 -79
- package/src/scene/schema/entity.ts +20 -0
- package/src/scene/schema/index.ts +2 -12
- package/src/scene/user-data.ts +8 -9
- package/src/setup/setup-renderer.ts +9 -2
- package/src/tools/define-tool.ts +152 -0
- package/src/animation/anim-graph.ts +0 -406
- package/src/animation/anim-system.ts +0 -28
- package/src/animation/property-track.ts +0 -178
- package/src/animation/schema.ts +0 -204
- package/src/audio/ambient.ts +0 -300
- package/src/audio/impacts.ts +0 -212
- package/src/audio/movement.ts +0 -140
- package/src/audio/musical.ts +0 -200
- package/src/audio/ui-sounds.ts +0 -171
- package/src/audio/vehicle.ts +0 -235
- package/src/audio/weapons.ts +0 -152
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schema for a `SceneDiff` JSON patch (T4.5 — `vgai apply-diff`).
|
|
3
|
+
*
|
|
4
|
+
* Validates the SHAPE of a hand-authored or `diffScene`-computed patch before
|
|
5
|
+
* `applyDiff` (./scene-apply.ts) touches it. Not wired into
|
|
6
|
+
* `scripts/generate-schema.ts` — that script's output feeds the *scene file*
|
|
7
|
+
* JSON Schema (autocomplete/reference for `.vscn.json`/`.prefab.json`/
|
|
8
|
+
* `vgai.game.json`), a different artifact from a diff/patch file. Adding a
|
|
9
|
+
* 5th line there would be mechanically trivial, but a generated
|
|
10
|
+
* `scene-diff.schema.json` has no current consumer (no editor autocomplete
|
|
11
|
+
* targets *.json patch files) — left undone; revisit if one appears.
|
|
12
|
+
*
|
|
13
|
+
* `SceneEntitySchema` is reused as-is for `add`/`update` payloads even though
|
|
14
|
+
* both operations ignore any `children` the payload carries (children are
|
|
15
|
+
* position-managed exclusively by their own `add`/`move` ops — see
|
|
16
|
+
* `applyDiff`'s jsdoc). Rejecting `children` at the schema level would need
|
|
17
|
+
* an `.omit()` off a plain object schema, but `SceneEntitySchema` is a
|
|
18
|
+
* `z.lazy()`-wrapped discriminated union (recursive type), so this schema
|
|
19
|
+
* takes the more permissive-but-documented path: allow it through and let
|
|
20
|
+
* `applyDiff` silently drop it, rather than add a second near-duplicate
|
|
21
|
+
* entity schema just to forbid one field.
|
|
22
|
+
*/
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
import { SceneEntitySchema } from './schema/entity';
|
|
25
|
+
import { SceneEnvironmentSchema } from './schema/environment';
|
|
26
|
+
const ParentIdSchema = z
|
|
27
|
+
.string()
|
|
28
|
+
.nullable()
|
|
29
|
+
.describe('Parent entity id, or null for a top-level (root) entity');
|
|
30
|
+
const TargetIndexSchema = z
|
|
31
|
+
.number()
|
|
32
|
+
.int()
|
|
33
|
+
.describe('Target position among the (new) parent’s children, counted in the FINAL tree ' +
|
|
34
|
+
'(after every op in this diff has been applied) — not the position at the moment this ' +
|
|
35
|
+
'one op runs. Negative values are rejected; out-of-range values are clamped to the end.');
|
|
36
|
+
export const DiffOpSchema = z.discriminatedUnion('type', [
|
|
37
|
+
z
|
|
38
|
+
.object({
|
|
39
|
+
type: z.literal('add').describe('Insert a new entity into the scene tree'),
|
|
40
|
+
entity: SceneEntitySchema.describe('The entity to insert. Any `children` on this payload are ignored — insert descendants ' +
|
|
41
|
+
'via their own `add` ops with `parentId` set to this entity’s `id`.'),
|
|
42
|
+
parentId: ParentIdSchema,
|
|
43
|
+
index: TargetIndexSchema,
|
|
44
|
+
})
|
|
45
|
+
.describe('Add operation'),
|
|
46
|
+
z
|
|
47
|
+
.object({
|
|
48
|
+
type: z.literal('remove').describe('Delete an entity, and its whole subtree, from the scene'),
|
|
49
|
+
id: z.string().describe('Id of the entity to remove'),
|
|
50
|
+
})
|
|
51
|
+
.describe('Remove operation'),
|
|
52
|
+
z
|
|
53
|
+
.object({
|
|
54
|
+
type: z
|
|
55
|
+
.literal('update')
|
|
56
|
+
.describe('Replace an entity’s fields (every field except `id` and `children`) with new values — ' +
|
|
57
|
+
'a full replace, not a merge: fields present on the live entity but absent from this ' +
|
|
58
|
+
'payload are deleted'),
|
|
59
|
+
id: z.string().describe('Id of the entity to update'),
|
|
60
|
+
entity: SceneEntitySchema.describe('The new field values. `id` and any `children` on this payload are ignored — repositioning ' +
|
|
61
|
+
'is exclusively a `move` op’s job.'),
|
|
62
|
+
})
|
|
63
|
+
.describe('Update operation'),
|
|
64
|
+
z
|
|
65
|
+
.object({
|
|
66
|
+
type: z.literal('move').describe('Reparent and/or reorder an existing entity'),
|
|
67
|
+
id: z.string().describe('Id of the entity to move'),
|
|
68
|
+
parentId: ParentIdSchema,
|
|
69
|
+
index: TargetIndexSchema,
|
|
70
|
+
})
|
|
71
|
+
.describe('Move operation'),
|
|
72
|
+
]);
|
|
73
|
+
export const SceneDiffSchema = z
|
|
74
|
+
.object({
|
|
75
|
+
ops: z
|
|
76
|
+
.array(DiffOpSchema)
|
|
77
|
+
.describe('add/remove/update/move operations. Order in this array does not matter for correctness — ' +
|
|
78
|
+
'applyDiff derives its own safe application order (moves are detached before removes run, ' +
|
|
79
|
+
'so a child moved out of a removed parent survives; adds/moves are placed by a fully ' +
|
|
80
|
+
'pre-resolved id map, so a newly-added parent is always resolvable for its newly-added ' +
|
|
81
|
+
'children regardless of array position).'),
|
|
82
|
+
environmentChanged: z.boolean().describe('Whether the scene-level `environment` block changed'),
|
|
83
|
+
newEnvironment: SceneEnvironmentSchema.optional().describe('New `environment` block. Applied only when `environmentChanged` is true; ignored otherwise. ' +
|
|
84
|
+
'Absent (with `environmentChanged: true`) clears the scene’s environment block.'),
|
|
85
|
+
metaChanged: z.boolean().describe('Whether scene metadata (currently just `name`) changed'),
|
|
86
|
+
newName: z
|
|
87
|
+
.string()
|
|
88
|
+
.optional()
|
|
89
|
+
.describe('New scene `name`. Applied only when `metaChanged` is true and this is present; ignored otherwise.'),
|
|
90
|
+
})
|
|
91
|
+
.describe('A scene-diff patch — the JSON format produced by `diffScene` (packages/editor/src/scene-diff.ts) ' +
|
|
92
|
+
'and consumed by `applyDiff` (./scene-apply.ts) / `vgai apply-diff`.');
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene diff types — shared shape for `DiffOp`/`SceneDiff`.
|
|
3
|
+
*
|
|
4
|
+
* Lives in the engine (not next to the compute function in
|
|
5
|
+
* `packages/editor/src/scene-diff.ts`) so that `packages/vgai-cli` — which
|
|
6
|
+
* does not depend on `@vgai/editor` — can validate/apply a diff without
|
|
7
|
+
* introducing a new cli→editor dependency edge. See the dependency-direction
|
|
8
|
+
* note in `./scene-apply.ts` for the full rationale (T4.5).
|
|
9
|
+
*
|
|
10
|
+
* `packages/editor/src/scene-diff.ts` (the ONLY place that computes a
|
|
11
|
+
* `SceneDiff`, via `diffScene`) re-exports these two names so existing
|
|
12
|
+
* editor imports are unaffected.
|
|
13
|
+
*/
|
|
14
|
+
import type { SceneEntity, SceneEnvironment } from './scene-types';
|
|
15
|
+
export type DiffOp = {
|
|
16
|
+
type: 'add';
|
|
17
|
+
entity: SceneEntity;
|
|
18
|
+
parentId: string | null;
|
|
19
|
+
index: number;
|
|
20
|
+
} | {
|
|
21
|
+
type: 'remove';
|
|
22
|
+
id: string;
|
|
23
|
+
} | {
|
|
24
|
+
type: 'update';
|
|
25
|
+
id: string;
|
|
26
|
+
entity: SceneEntity;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'move';
|
|
29
|
+
id: string;
|
|
30
|
+
parentId: string | null;
|
|
31
|
+
index: number;
|
|
32
|
+
};
|
|
33
|
+
export interface SceneDiff {
|
|
34
|
+
ops: DiffOp[];
|
|
35
|
+
environmentChanged: boolean;
|
|
36
|
+
newEnvironment?: SceneEnvironment | undefined;
|
|
37
|
+
metaChanged: boolean;
|
|
38
|
+
newName?: string | undefined;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=scene-diff-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-diff-types.d.ts","sourceRoot":"","sources":["../../src/scene/scene-diff-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene diff types — shared shape for `DiffOp`/`SceneDiff`.
|
|
3
|
+
*
|
|
4
|
+
* Lives in the engine (not next to the compute function in
|
|
5
|
+
* `packages/editor/src/scene-diff.ts`) so that `packages/vgai-cli` — which
|
|
6
|
+
* does not depend on `@vgai/editor` — can validate/apply a diff without
|
|
7
|
+
* introducing a new cli→editor dependency edge. See the dependency-direction
|
|
8
|
+
* note in `./scene-apply.ts` for the full rationale (T4.5).
|
|
9
|
+
*
|
|
10
|
+
* `packages/editor/src/scene-diff.ts` (the ONLY place that computes a
|
|
11
|
+
* `SceneDiff`, via `diffScene`) re-exports these two names so existing
|
|
12
|
+
* editor imports are unaffected.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type RAPIER from '@dimforge/rapier3d-compat';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
import type { BatchedRenderer } from 'three.quarks';
|
|
4
|
+
import { NavMeshManager } from '../ai/navigation';
|
|
5
|
+
import type { ComponentManager } from '../ecs/component-manager';
|
|
6
|
+
import type { PhysicsRegistry } from '../physics/physics-registry';
|
|
7
|
+
import { type RenderScope } from '../render/render-settings';
|
|
8
|
+
import { type ComponentRegistry } from './component-registry';
|
|
9
|
+
import './geometries';
|
|
10
|
+
import './instancers';
|
|
11
|
+
import './materials';
|
|
12
|
+
import { type InstancesFile, type MaterialFile, type PrefabFile, type SceneEntity, type SceneEnvironment, type SceneFile, type UIRoot } from './scene-types';
|
|
13
|
+
/**
|
|
14
|
+
* Clear module-level asset caches (textures, GLTF scenes, IBL env maps). Call
|
|
15
|
+
* on full runtime teardown to release cached GPU resources and avoid leaking
|
|
16
|
+
* across editor Play sessions. Delegates the GLTF/texture caches to
|
|
17
|
+
* {@link clearSharedAssetCaches} and additionally frees the local
|
|
18
|
+
* IBL env-map cache + PMREM generator.
|
|
19
|
+
*
|
|
20
|
+
* Lifetime / P1.8: these caches are intentionally module-level and persist
|
|
21
|
+
* ACROSS hot-reloads / scene switches (they are NOT cleared on every
|
|
22
|
+
* loadSceneFromData). This is deliberate: (1) it makes repeated Play→Stop→Play
|
|
23
|
+
* cheap, and (2) it underpins the `__sharedGeometry` contract from P0.2 —
|
|
24
|
+
* GLTF clones share the cached source geometry, so clearing mid-session would
|
|
25
|
+
* orphan live clones. The caches are keyed by URL, so loading the SAME scene N
|
|
26
|
+
* times is bounded (one entry per distinct asset URL, not per load). They are
|
|
27
|
+
* only released here, on full runtime teardown (`fullCleanup`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function clearAssetCaches(): void;
|
|
30
|
+
/**
|
|
31
|
+
* F7 — per-frame LOD tick. THREE.LOD only swaps its active level when
|
|
32
|
+
* `.update(camera)` runs, so every `THREE.LOD` in the scene graph (built by
|
|
33
|
+
* the `mesh.lod` spawn branch above) needs this called once a frame. Mirrors
|
|
34
|
+
* `tickCustomMaterials`'s traverse-and-tick shape; wired into the runtime's
|
|
35
|
+
* `preRender` system in `vgai-scene-game-adapter.ts`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function updateSceneLODs(scene: THREE.Scene, camera: THREE.Camera): void;
|
|
38
|
+
/**
|
|
39
|
+
* Test-only: current sizes of the module-level asset caches. Used by the P1.8
|
|
40
|
+
* headless test to assert caches stay bounded (one entry per distinct asset URL)
|
|
41
|
+
* across repeated loads of the same scene, rather than growing per load.
|
|
42
|
+
*/
|
|
43
|
+
export declare function __assetCacheSizesForTest(): {
|
|
44
|
+
textures: number;
|
|
45
|
+
gltf: number;
|
|
46
|
+
env: number;
|
|
47
|
+
};
|
|
48
|
+
export interface SceneLoadContext {
|
|
49
|
+
scene: THREE.Scene;
|
|
50
|
+
rapierWorld: RAPIER.World;
|
|
51
|
+
rapier: typeof RAPIER;
|
|
52
|
+
/** Object3D ↔ Rapier body/collider registry (keys physics by the Object3D). */
|
|
53
|
+
physics: PhysicsRegistry;
|
|
54
|
+
prefabs?: Map<string, (ctx: SceneLoadContext, entity: SceneEntity) => THREE.Object3D>;
|
|
55
|
+
componentRegistry?: ComponentRegistry;
|
|
56
|
+
/** Cache for loaded .prefab.json files. Populated on first reference, cleared per scene load. */
|
|
57
|
+
prefabFileCache?: Map<string, PrefabFile>;
|
|
58
|
+
/** Cache for loaded .mat.json files. Populated on first reference. */
|
|
59
|
+
materialFileCache?: Map<string, MaterialFile>;
|
|
60
|
+
/** Cache for loaded .instances.json files. Populated on first reference (F3). */
|
|
61
|
+
instancesFileCache?: Map<string, InstancesFile>;
|
|
62
|
+
/** Supply an AudioListener (attached to camera) to enable audio entity spawning. */
|
|
63
|
+
audioListener?: THREE.AudioListener;
|
|
64
|
+
/** ComponentManager for instantiating GameComponent classes from scene data. */
|
|
65
|
+
componentManager?: ComponentManager;
|
|
66
|
+
/** three.quarks BatchedRenderer. If provided, particle systems declared on
|
|
67
|
+
* entities are registered here so they render (mirrors the editor). */
|
|
68
|
+
particleRenderer?: BatchedRenderer;
|
|
69
|
+
/** WebGLRenderer. Required for skybox/IBL (PMREM). Absent in headless tests,
|
|
70
|
+
* where the skybox load is skipped rather than substituting a placeholder. */
|
|
71
|
+
renderer?: THREE.WebGLRenderer;
|
|
72
|
+
/** Scene-level render-feature overrides (`environment.rendering`), populated by
|
|
73
|
+
* `instantiateScene` once `data.environment` is known. Read by the F7 mesh.lod
|
|
74
|
+
* master-gate check (`resolveRenderSettings(ctx.sceneRendering, def.render)`). */
|
|
75
|
+
sceneRendering?: RenderScope;
|
|
76
|
+
}
|
|
77
|
+
/** Handle returned from loadScene — call update() each frame to tick animations. */
|
|
78
|
+
export interface SceneInstance {
|
|
79
|
+
update(dt: number): void;
|
|
80
|
+
dispose(): void;
|
|
81
|
+
/** Pre-baked navmesh loaded from sibling .navmesh file, if present. */
|
|
82
|
+
navMesh?: NavMeshManager | undefined;
|
|
83
|
+
/** Cameras defined in the scene file. First entry is typically the "main" camera. */
|
|
84
|
+
cameras: THREE.Camera[];
|
|
85
|
+
/** Parsed scene environment, if any — lets the runtime apply post-processing
|
|
86
|
+
* (which needs the composer/camera the loader doesn't have). */
|
|
87
|
+
environment?: SceneEnvironment | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* The scene file's top-level `ui` tree (React UI roots/canvases, A1),
|
|
90
|
+
* carried through verbatim from the parsed `SceneFile` by BOTH `loadScene`
|
|
91
|
+
* and `loadSceneFromData` (single source of truth — R8 item 7 / B). Opaque
|
|
92
|
+
* to the loader itself; the adapter passes it to `renderSceneUI` (the
|
|
93
|
+
* injected React renderer) so scenePath and sceneData mounts render the
|
|
94
|
+
* SAME scene-authored UI instead of only the sceneData branch special-
|
|
95
|
+
* casing it. `undefined` when the scene file has no `ui` field.
|
|
96
|
+
*/
|
|
97
|
+
ui?: UIRoot[] | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Authored entity id -> spawned Object3D (design/24-scene-ui.md D5). The
|
|
100
|
+
* SAME map `spawnEntity`/`createSceneJoints` build internally (id-less
|
|
101
|
+
* entities are auto-UUID'd before insertion, so every spawned entity has an
|
|
102
|
+
* entry) -- exposed so the scene adapter's default `worldProjector` can
|
|
103
|
+
* resolve a `trackEntity` id to a live Object3D without a second id
|
|
104
|
+
* registry. Both `loadScene` and `loadSceneFromData` funnel through the one
|
|
105
|
+
* `instantiateScene` return site, so this is populated identically for both.
|
|
106
|
+
*/
|
|
107
|
+
entities: ReadonlyMap<string, THREE.Object3D>;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Loads a .vscn.json file and instantiates all entities.
|
|
111
|
+
*
|
|
112
|
+
* Creates Three.js objects and Rapier bodies. The Object3D IS the entity —
|
|
113
|
+
* there is no separate ECS id. Uses raw Three.js/Rapier calls — no abstraction.
|
|
114
|
+
*
|
|
115
|
+
* Returns a SceneInstance that must be ticked each frame (for GLTF animations).
|
|
116
|
+
*/
|
|
117
|
+
export declare function loadScene(url: string, ctx: SceneLoadContext): Promise<SceneInstance>;
|
|
118
|
+
/**
|
|
119
|
+
* Instantiate a scene from an already-parsed SceneFile.
|
|
120
|
+
*
|
|
121
|
+
* Same as loadScene but skips the fetch — useful when the scene data is
|
|
122
|
+
* already in memory (e.g. serialized from the editor for play-mode preview).
|
|
123
|
+
*/
|
|
124
|
+
export declare function loadSceneFromData(data: SceneFile, ctx: SceneLoadContext): Promise<SceneInstance>;
|
|
125
|
+
/**
|
|
126
|
+
* F6 (`docs/VSCN-STRUCTURAL-GAPS-DESIGN.md`) — resolve `EntityRefSchema`
|
|
127
|
+
* component fields from the authored string id to the live `Object3D`.
|
|
128
|
+
*
|
|
129
|
+
* Modeled directly on `createSceneJoints` above (same walk, same `idMap`,
|
|
130
|
+
* same "missing target" shape) — the difference is WHAT gets resolved
|
|
131
|
+
* (a component field, discovered via the component's own static schema)
|
|
132
|
+
* and HOW a miss is handled: a joint with a missing target logs a warning
|
|
133
|
+
* and skips it; a missing entity-ref id is a loud load error (throw) per
|
|
134
|
+
* the design doc's AC, because a component that expects a live `Object3D`
|
|
135
|
+
* at `init()` cannot safely run with a dangling string in that field.
|
|
136
|
+
*
|
|
137
|
+
* Must run AFTER every entity is spawned (idMap is complete — components are
|
|
138
|
+
* attached during spawn too, so by this point every instance's ref field
|
|
139
|
+
* still holds its raw authored string id) and BEFORE
|
|
140
|
+
* `componentManager.initAll()`, so `init()` observes the resolved
|
|
141
|
+
* `Object3D`, not the string. Resolves through the SAME `idMap`
|
|
142
|
+
* `createSceneJoints` uses — no new registry (G3).
|
|
143
|
+
*/
|
|
144
|
+
export declare function resolveEntityRefs(entities: SceneEntity[], idMap: Map<string, THREE.Object3D>, manager: ComponentManager): void;
|
|
145
|
+
/** Handle returned from spawnPrefab — call update() each frame to tick animations. */
|
|
146
|
+
export interface SpawnedPrefab {
|
|
147
|
+
/** The Object3D of the spawned prefab root (added to the scene). */
|
|
148
|
+
object3D: THREE.Object3D;
|
|
149
|
+
/**
|
|
150
|
+
* Tick standalone `animation.autoplay` clips for this prefab. A GameComponent
|
|
151
|
+
* that attaches its own XState-driven animation binding (E5 — see
|
|
152
|
+
* `xstate-animation-binding.ts`) ticks that binding itself, so this is a
|
|
153
|
+
* no-op for those. Call once per frame, mirroring SceneInstance.update.
|
|
154
|
+
*/
|
|
155
|
+
update(dt: number): void;
|
|
156
|
+
/** Stop any mixers this prefab created. */
|
|
157
|
+
dispose(): void;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Spawn a prefab instance at runtime from gameplay code.
|
|
161
|
+
*
|
|
162
|
+
* Returns a {@link SpawnedPrefab}. The previous version passed throwaway
|
|
163
|
+
* tickFns/mixers arrays, so a runtime-spawned prefab's `animation.autoplay`
|
|
164
|
+
* never advanced. Now the tick functions are captured and exposed via
|
|
165
|
+
* `update()`, consistent with how loadScene's SceneInstance.update drives
|
|
166
|
+
* animations.
|
|
167
|
+
*
|
|
168
|
+
* Usage:
|
|
169
|
+
* const crate = await spawnPrefab('/data/prefabs/crate.prefab.json', ctx, {
|
|
170
|
+
* transform: { position: [x, y, z] },
|
|
171
|
+
* components: { Health: { current: 50 } },
|
|
172
|
+
* });
|
|
173
|
+
* // each frame (only needed for autoplay clips):
|
|
174
|
+
* crate.update(dt);
|
|
175
|
+
*/
|
|
176
|
+
export declare function spawnPrefab(prefabUrl: string, ctx: SceneLoadContext, overrides?: Partial<SceneEntity>): Promise<SpawnedPrefab>;
|
|
177
|
+
//# sourceMappingURL=scene-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-loader.d.ts","sourceRoot":"","sources":["../../src/scene/scene-loader.ts"],"names":[],"mappings":"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"}
|