@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,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed registry for `Object3D.userData` keys used by the engine and editor.
|
|
3
|
+
*
|
|
4
|
+
* Three.js lets any code stash arbitrary values on `object.userData`, and over
|
|
5
|
+
* time the engine + editor accumulated ~20 stringly-typed keys that together
|
|
6
|
+
* form a *parallel object model* — meaning carried entirely in undocumented
|
|
7
|
+
* string literals. This module is the ONE documented place that lists every
|
|
8
|
+
* such key, its value type, and what it means. All engine/editor-internal
|
|
9
|
+
* `userData` access for these keys must go through {@link getUserData} /
|
|
10
|
+
* {@link setUserData} / {@link hasUserData} / {@link deleteUserData} so the key
|
|
11
|
+
* strings live in exactly one place and are type-checked at every call site.
|
|
12
|
+
*
|
|
13
|
+
* NOTE: This covers engine/editor *internal* keys only. User game code in the
|
|
14
|
+
* example template may stash its own ad-hoc keys; those are out of scope.
|
|
15
|
+
*
|
|
16
|
+
* ## Key reference
|
|
17
|
+
*
|
|
18
|
+
* Serialization / identity (load-bearing — editor identity + scene I/O):
|
|
19
|
+
* - `entity` — the full {@link SceneEntity} descriptor backing this
|
|
20
|
+
* Object3D. Source of truth the editor reads/writes and
|
|
21
|
+
* the serializer walks to rebuild `.vscn.json`.
|
|
22
|
+
* - `entityId` — the entity's stable string id. Presence also marks an
|
|
23
|
+
* Object3D as a "real" entity (vs editor helper/env object).
|
|
24
|
+
*
|
|
25
|
+
* Runtime scene-query overrides (read by `scene-query.ts`):
|
|
26
|
+
* - `tags` — string[] tag override; falls back to `entity.tags`.
|
|
27
|
+
* - `components` — component record or name[] override; falls back to
|
|
28
|
+
* `entity.components`.
|
|
29
|
+
*
|
|
30
|
+
* Runtime gameplay metadata (set by the scene loader):
|
|
31
|
+
* - `navRole` — `'walkable' | 'obstacle'` navmesh role; collected at runtime.
|
|
32
|
+
* - `pivot` — `[x,y,z]` local-space pivot for rotate/scale-around-pivot.
|
|
33
|
+
* - `splineCurve` — resolved THREE curve built from the entity's spline.
|
|
34
|
+
* - `_camera` — THREE.Camera owned by a camera entity (collected on load).
|
|
35
|
+
* - `_particleSystem` — three.quarks ParticleSystem (scene-sync registration + census).
|
|
36
|
+
*
|
|
37
|
+
* Animation (load-bearing — ED5 disposal contract):
|
|
38
|
+
* - `_animMixer` — THREE.AnimationMixer driving this subtree's clips.
|
|
39
|
+
* - `_animClips` — Map<string, AnimationClip> discovered on the GLTF (E5 —
|
|
40
|
+
* lets a GameComponent build its own XState-driven
|
|
41
|
+
* binding via `bindXStateAnimation` over the SAME
|
|
42
|
+
* mixer; see xstate-animation-binding.ts).
|
|
43
|
+
* - `_availableClips` — string[] of clip names discovered on the GLTF
|
|
44
|
+
* (inspector dropdown; same names as `_animClips`' keys).
|
|
45
|
+
*
|
|
46
|
+
* Disposal contract:
|
|
47
|
+
* - `__sharedGeometry` — `true` when a mesh's geometry is shared/cached and MUST
|
|
48
|
+
* NOT be disposed by per-object cleanup (P0.2 contract).
|
|
49
|
+
*
|
|
50
|
+
* Editor shading overrides (editor-only, see `scene-sync.ts`):
|
|
51
|
+
* - `__shadeOrig` — original material(s) stashed before a shading override.
|
|
52
|
+
* - `__shadeUnlit` — generated unlit material(s) for the unlit view mode.
|
|
53
|
+
*
|
|
54
|
+
* Custom-shader materials (see `material-registry.ts`):
|
|
55
|
+
* - `__matDef` — name of the registered custom-material definition.
|
|
56
|
+
* - `__uniforms` — authored uniform values passed to the def's update().
|
|
57
|
+
*
|
|
58
|
+
* Instancing (see `instance-registry.ts`):
|
|
59
|
+
* - `__instancer` — name of the registered instancer that built the mesh.
|
|
60
|
+
*
|
|
61
|
+
* Unmodified-game ingestion (editor-only, see `editor/src/ingest/`):
|
|
62
|
+
* - `__ingest` — `true` on every Object3D minted by ingestion (vs the
|
|
63
|
+
* first-party scene loader); routes edits to live
|
|
64
|
+
* mutation instead of descriptor rebuild.
|
|
65
|
+
* - `__ingestNextId` — monotonic id counter stashed on the captured Scene
|
|
66
|
+
* root so re-reflects keep minting unique ids.
|
|
67
|
+
*
|
|
68
|
+
* Editor scene-graph tagging (editor-only):
|
|
69
|
+
* - `engineInternal` — `true` on engine-owned infrastructure in the game scene
|
|
70
|
+
* (particle BatchedRenderer, debug-draw + its subtree).
|
|
71
|
+
* The editor's play-mode hierarchy skips these so they
|
|
72
|
+
* don't show up as selectable "entities".
|
|
73
|
+
* - `liveObject` — `true` on a runtime/procedural Object3D that the editor
|
|
74
|
+
* surfaced in the play-mode hierarchy with a *synthetic*
|
|
75
|
+
* descriptor (it has no `.vscn` record). Marks it as
|
|
76
|
+
* ephemeral: selectable/movable for testing, never saved.
|
|
77
|
+
* - `editorHelper` — `true` for editor-only helper objects (gizmos, wireframes).
|
|
78
|
+
* - `editorHelperType` — which kind of helper (lights/particles/pivot/navmesh/...).
|
|
79
|
+
* - `editorIcon` — `true` for editor billboard icon sprites.
|
|
80
|
+
* - `envObject` — `true` for environment objects (ambient light, etc.).
|
|
81
|
+
* - `splineControlPoint` — index of a spline control-point drag handle.
|
|
82
|
+
* - `vcDirIdx` — view-cube face direction index (0=+X,1=-X,2=+Y,...).
|
|
83
|
+
*/
|
|
84
|
+
import type * as THREE from 'three';
|
|
85
|
+
import type { ParticleSystem } from 'three.quarks';
|
|
86
|
+
import type { SceneEntity } from './scene-types';
|
|
87
|
+
/** The kinds of editor helper objects tagged via `editorHelperType`. */
|
|
88
|
+
export type EditorHelperType = 'lights' | 'cameras' | 'audio' | 'colliders' | 'splines' | 'particles' | 'pivot' | 'navmesh';
|
|
89
|
+
/**
|
|
90
|
+
* Maps each canonical accessor name to its value type. This is the single
|
|
91
|
+
* source of truth for what every known `userData` key holds.
|
|
92
|
+
*/
|
|
93
|
+
export interface UserDataSchema {
|
|
94
|
+
entity: SceneEntity;
|
|
95
|
+
entityId: string;
|
|
96
|
+
tags: string[];
|
|
97
|
+
components: Record<string, unknown> | string[];
|
|
98
|
+
navRole: 'walkable' | 'obstacle';
|
|
99
|
+
pivot: [number, number, number];
|
|
100
|
+
splineCurve: THREE.Curve<THREE.Vector3>;
|
|
101
|
+
splineControlPoint: number;
|
|
102
|
+
_camera: THREE.Camera;
|
|
103
|
+
_particleSystem: ParticleSystem;
|
|
104
|
+
_animMixer: THREE.AnimationMixer;
|
|
105
|
+
_animClips: Map<string, THREE.AnimationClip>;
|
|
106
|
+
_availableClips: string[];
|
|
107
|
+
__sharedGeometry: boolean;
|
|
108
|
+
__shadeOrig: THREE.Material | THREE.Material[];
|
|
109
|
+
__shadeUnlit: THREE.Material[];
|
|
110
|
+
__matDef: string;
|
|
111
|
+
__uniforms: Record<string, unknown>;
|
|
112
|
+
__instancer: string;
|
|
113
|
+
__ingest: boolean;
|
|
114
|
+
__ingestNextId: number;
|
|
115
|
+
engineInternal: boolean;
|
|
116
|
+
liveObject: boolean;
|
|
117
|
+
editorHelper: boolean;
|
|
118
|
+
editorHelperType: EditorHelperType;
|
|
119
|
+
editorIcon: boolean;
|
|
120
|
+
envObject: boolean;
|
|
121
|
+
vcDirIdx: number;
|
|
122
|
+
}
|
|
123
|
+
/** Any key in the typed registry. */
|
|
124
|
+
export type UserDataKey = keyof UserDataSchema;
|
|
125
|
+
/**
|
|
126
|
+
* Canonical name → literal `userData` string key. The accessor names match the
|
|
127
|
+
* raw string keys 1:1 (this is the documented set referenced by the AC), so the
|
|
128
|
+
* literal strings appear in exactly this one place.
|
|
129
|
+
*/
|
|
130
|
+
export declare const UserDataKeys: {
|
|
131
|
+
readonly entity: "entity";
|
|
132
|
+
readonly entityId: "entityId";
|
|
133
|
+
readonly tags: "tags";
|
|
134
|
+
readonly components: "components";
|
|
135
|
+
readonly navRole: "navRole";
|
|
136
|
+
readonly pivot: "pivot";
|
|
137
|
+
readonly splineCurve: "splineCurve";
|
|
138
|
+
readonly splineControlPoint: "splineControlPoint";
|
|
139
|
+
readonly _camera: "_camera";
|
|
140
|
+
readonly _particleSystem: "_particleSystem";
|
|
141
|
+
readonly _animMixer: "_animMixer";
|
|
142
|
+
readonly _animClips: "_animClips";
|
|
143
|
+
readonly _availableClips: "_availableClips";
|
|
144
|
+
readonly __sharedGeometry: "__sharedGeometry";
|
|
145
|
+
readonly __shadeOrig: "__shadeOrig";
|
|
146
|
+
readonly __shadeUnlit: "__shadeUnlit";
|
|
147
|
+
readonly __matDef: "__matDef";
|
|
148
|
+
readonly __uniforms: "__uniforms";
|
|
149
|
+
readonly __instancer: "__instancer";
|
|
150
|
+
readonly __ingest: "__ingest";
|
|
151
|
+
readonly __ingestNextId: "__ingestNextId";
|
|
152
|
+
readonly engineInternal: "engineInternal";
|
|
153
|
+
readonly liveObject: "liveObject";
|
|
154
|
+
readonly editorHelper: "editorHelper";
|
|
155
|
+
readonly editorHelperType: "editorHelperType";
|
|
156
|
+
readonly editorIcon: "editorIcon";
|
|
157
|
+
readonly envObject: "envObject";
|
|
158
|
+
readonly vcDirIdx: "vcDirIdx";
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Read a typed `userData` value. Returns `undefined` when the key is unset or
|
|
162
|
+
* when `obj` is nullish (so call sites can pass an optionally-resolved object).
|
|
163
|
+
*/
|
|
164
|
+
export declare function getUserData<K extends UserDataKey>(obj: THREE.Object3D | null | undefined, key: K): UserDataSchema[K] | undefined;
|
|
165
|
+
/** Write a typed `userData` value. */
|
|
166
|
+
export declare function setUserData<K extends UserDataKey>(obj: THREE.Object3D, key: K, value: UserDataSchema[K]): void;
|
|
167
|
+
/** True when `key` is set (not `undefined`) on the object's `userData`. */
|
|
168
|
+
export declare function hasUserData(obj: THREE.Object3D | null | undefined, key: UserDataKey): boolean;
|
|
169
|
+
/** Remove a `userData` key. */
|
|
170
|
+
export declare function deleteUserData(obj: THREE.Object3D, key: UserDataKey): void;
|
|
171
|
+
//# sourceMappingURL=user-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-data.d.ts","sourceRoot":"","sources":["../../src/scene/user-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;IAC/C,OAAO,EAAE,UAAU,GAAG,UAAU,CAAC;IACjC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;IACtB,eAAe,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BuB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,EACtC,GAAG,EAAE,CAAC,GACL,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAE/B;AAED,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,GAAG,EAAE,KAAK,CAAC,QAAQ,EACnB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GACvB,IAAI,CAEN;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAE7F;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAE1E"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed registry for `Object3D.userData` keys used by the engine and editor.
|
|
3
|
+
*
|
|
4
|
+
* Three.js lets any code stash arbitrary values on `object.userData`, and over
|
|
5
|
+
* time the engine + editor accumulated ~20 stringly-typed keys that together
|
|
6
|
+
* form a *parallel object model* — meaning carried entirely in undocumented
|
|
7
|
+
* string literals. This module is the ONE documented place that lists every
|
|
8
|
+
* such key, its value type, and what it means. All engine/editor-internal
|
|
9
|
+
* `userData` access for these keys must go through {@link getUserData} /
|
|
10
|
+
* {@link setUserData} / {@link hasUserData} / {@link deleteUserData} so the key
|
|
11
|
+
* strings live in exactly one place and are type-checked at every call site.
|
|
12
|
+
*
|
|
13
|
+
* NOTE: This covers engine/editor *internal* keys only. User game code in the
|
|
14
|
+
* example template may stash its own ad-hoc keys; those are out of scope.
|
|
15
|
+
*
|
|
16
|
+
* ## Key reference
|
|
17
|
+
*
|
|
18
|
+
* Serialization / identity (load-bearing — editor identity + scene I/O):
|
|
19
|
+
* - `entity` — the full {@link SceneEntity} descriptor backing this
|
|
20
|
+
* Object3D. Source of truth the editor reads/writes and
|
|
21
|
+
* the serializer walks to rebuild `.vscn.json`.
|
|
22
|
+
* - `entityId` — the entity's stable string id. Presence also marks an
|
|
23
|
+
* Object3D as a "real" entity (vs editor helper/env object).
|
|
24
|
+
*
|
|
25
|
+
* Runtime scene-query overrides (read by `scene-query.ts`):
|
|
26
|
+
* - `tags` — string[] tag override; falls back to `entity.tags`.
|
|
27
|
+
* - `components` — component record or name[] override; falls back to
|
|
28
|
+
* `entity.components`.
|
|
29
|
+
*
|
|
30
|
+
* Runtime gameplay metadata (set by the scene loader):
|
|
31
|
+
* - `navRole` — `'walkable' | 'obstacle'` navmesh role; collected at runtime.
|
|
32
|
+
* - `pivot` — `[x,y,z]` local-space pivot for rotate/scale-around-pivot.
|
|
33
|
+
* - `splineCurve` — resolved THREE curve built from the entity's spline.
|
|
34
|
+
* - `_camera` — THREE.Camera owned by a camera entity (collected on load).
|
|
35
|
+
* - `_particleSystem` — three.quarks ParticleSystem (scene-sync registration + census).
|
|
36
|
+
*
|
|
37
|
+
* Animation (load-bearing — ED5 disposal contract):
|
|
38
|
+
* - `_animMixer` — THREE.AnimationMixer driving this subtree's clips.
|
|
39
|
+
* - `_animClips` — Map<string, AnimationClip> discovered on the GLTF (E5 —
|
|
40
|
+
* lets a GameComponent build its own XState-driven
|
|
41
|
+
* binding via `bindXStateAnimation` over the SAME
|
|
42
|
+
* mixer; see xstate-animation-binding.ts).
|
|
43
|
+
* - `_availableClips` — string[] of clip names discovered on the GLTF
|
|
44
|
+
* (inspector dropdown; same names as `_animClips`' keys).
|
|
45
|
+
*
|
|
46
|
+
* Disposal contract:
|
|
47
|
+
* - `__sharedGeometry` — `true` when a mesh's geometry is shared/cached and MUST
|
|
48
|
+
* NOT be disposed by per-object cleanup (P0.2 contract).
|
|
49
|
+
*
|
|
50
|
+
* Editor shading overrides (editor-only, see `scene-sync.ts`):
|
|
51
|
+
* - `__shadeOrig` — original material(s) stashed before a shading override.
|
|
52
|
+
* - `__shadeUnlit` — generated unlit material(s) for the unlit view mode.
|
|
53
|
+
*
|
|
54
|
+
* Custom-shader materials (see `material-registry.ts`):
|
|
55
|
+
* - `__matDef` — name of the registered custom-material definition.
|
|
56
|
+
* - `__uniforms` — authored uniform values passed to the def's update().
|
|
57
|
+
*
|
|
58
|
+
* Instancing (see `instance-registry.ts`):
|
|
59
|
+
* - `__instancer` — name of the registered instancer that built the mesh.
|
|
60
|
+
*
|
|
61
|
+
* Unmodified-game ingestion (editor-only, see `editor/src/ingest/`):
|
|
62
|
+
* - `__ingest` — `true` on every Object3D minted by ingestion (vs the
|
|
63
|
+
* first-party scene loader); routes edits to live
|
|
64
|
+
* mutation instead of descriptor rebuild.
|
|
65
|
+
* - `__ingestNextId` — monotonic id counter stashed on the captured Scene
|
|
66
|
+
* root so re-reflects keep minting unique ids.
|
|
67
|
+
*
|
|
68
|
+
* Editor scene-graph tagging (editor-only):
|
|
69
|
+
* - `engineInternal` — `true` on engine-owned infrastructure in the game scene
|
|
70
|
+
* (particle BatchedRenderer, debug-draw + its subtree).
|
|
71
|
+
* The editor's play-mode hierarchy skips these so they
|
|
72
|
+
* don't show up as selectable "entities".
|
|
73
|
+
* - `liveObject` — `true` on a runtime/procedural Object3D that the editor
|
|
74
|
+
* surfaced in the play-mode hierarchy with a *synthetic*
|
|
75
|
+
* descriptor (it has no `.vscn` record). Marks it as
|
|
76
|
+
* ephemeral: selectable/movable for testing, never saved.
|
|
77
|
+
* - `editorHelper` — `true` for editor-only helper objects (gizmos, wireframes).
|
|
78
|
+
* - `editorHelperType` — which kind of helper (lights/particles/pivot/navmesh/...).
|
|
79
|
+
* - `editorIcon` — `true` for editor billboard icon sprites.
|
|
80
|
+
* - `envObject` — `true` for environment objects (ambient light, etc.).
|
|
81
|
+
* - `splineControlPoint` — index of a spline control-point drag handle.
|
|
82
|
+
* - `vcDirIdx` — view-cube face direction index (0=+X,1=-X,2=+Y,...).
|
|
83
|
+
*/
|
|
84
|
+
/**
|
|
85
|
+
* Canonical name → literal `userData` string key. The accessor names match the
|
|
86
|
+
* raw string keys 1:1 (this is the documented set referenced by the AC), so the
|
|
87
|
+
* literal strings appear in exactly this one place.
|
|
88
|
+
*/
|
|
89
|
+
export const UserDataKeys = {
|
|
90
|
+
entity: 'entity',
|
|
91
|
+
entityId: 'entityId',
|
|
92
|
+
tags: 'tags',
|
|
93
|
+
components: 'components',
|
|
94
|
+
navRole: 'navRole',
|
|
95
|
+
pivot: 'pivot',
|
|
96
|
+
splineCurve: 'splineCurve',
|
|
97
|
+
splineControlPoint: 'splineControlPoint',
|
|
98
|
+
_camera: '_camera',
|
|
99
|
+
_particleSystem: '_particleSystem',
|
|
100
|
+
_animMixer: '_animMixer',
|
|
101
|
+
_animClips: '_animClips',
|
|
102
|
+
_availableClips: '_availableClips',
|
|
103
|
+
__sharedGeometry: '__sharedGeometry',
|
|
104
|
+
__shadeOrig: '__shadeOrig',
|
|
105
|
+
__shadeUnlit: '__shadeUnlit',
|
|
106
|
+
__matDef: '__matDef',
|
|
107
|
+
__uniforms: '__uniforms',
|
|
108
|
+
__instancer: '__instancer',
|
|
109
|
+
__ingest: '__ingest',
|
|
110
|
+
__ingestNextId: '__ingestNextId',
|
|
111
|
+
engineInternal: 'engineInternal',
|
|
112
|
+
liveObject: 'liveObject',
|
|
113
|
+
editorHelper: 'editorHelper',
|
|
114
|
+
editorHelperType: 'editorHelperType',
|
|
115
|
+
editorIcon: 'editorIcon',
|
|
116
|
+
envObject: 'envObject',
|
|
117
|
+
vcDirIdx: 'vcDirIdx',
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Read a typed `userData` value. Returns `undefined` when the key is unset or
|
|
121
|
+
* when `obj` is nullish (so call sites can pass an optionally-resolved object).
|
|
122
|
+
*/
|
|
123
|
+
export function getUserData(obj, key) {
|
|
124
|
+
return obj ? obj.userData[UserDataKeys[key]] : undefined;
|
|
125
|
+
}
|
|
126
|
+
/** Write a typed `userData` value. */
|
|
127
|
+
export function setUserData(obj, key, value) {
|
|
128
|
+
obj.userData[UserDataKeys[key]] = value;
|
|
129
|
+
}
|
|
130
|
+
/** True when `key` is set (not `undefined`) on the object's `userData`. */
|
|
131
|
+
export function hasUserData(obj, key) {
|
|
132
|
+
return obj ? obj.userData[UserDataKeys[key]] !== undefined : false;
|
|
133
|
+
}
|
|
134
|
+
/** Remove a `userData` key. */
|
|
135
|
+
export function deleteUserData(obj, key) {
|
|
136
|
+
delete obj.userData[UserDataKeys[key]];
|
|
137
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export interface AudioContext {
|
|
3
|
+
listener: THREE.AudioListener;
|
|
4
|
+
masterGain: GainNode;
|
|
5
|
+
buses: {
|
|
6
|
+
music: GainNode;
|
|
7
|
+
sfx: GainNode;
|
|
8
|
+
voice: GainNode;
|
|
9
|
+
};
|
|
10
|
+
/** Call this on first user interaction (click/key) to resume audio context */
|
|
11
|
+
resume: () => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates the audio listener and bus hierarchy.
|
|
15
|
+
*
|
|
16
|
+
* Bus routing: music/sfx/voice → master → destination
|
|
17
|
+
* Attach `listener` to the active camera: `camera.add(audioCtx.listener)`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function setupAudio(camera: THREE.Camera): AudioContext;
|
|
20
|
+
//# sourceMappingURL=setup-audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-audio.d.ts","sourceRoot":"","sources":["../../src/setup/setup-audio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE;QACL,KAAK,EAAE,QAAQ,CAAC;QAChB,GAAG,EAAE,QAAQ,CAAC;QACd,KAAK,EAAE,QAAQ,CAAC;KACjB,CAAC;IACF,8EAA8E;IAC9E,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAuC7D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the audio listener and bus hierarchy.
|
|
4
|
+
*
|
|
5
|
+
* Bus routing: music/sfx/voice → master → destination
|
|
6
|
+
* Attach `listener` to the active camera: `camera.add(audioCtx.listener)`.
|
|
7
|
+
*/
|
|
8
|
+
export function setupAudio(camera) {
|
|
9
|
+
const listener = new THREE.AudioListener();
|
|
10
|
+
camera.add(listener);
|
|
11
|
+
const ctx = listener.context;
|
|
12
|
+
const masterGain = ctx.createGain();
|
|
13
|
+
masterGain.connect(ctx.destination);
|
|
14
|
+
// Route the Three.js listener through masterGain so that THREE.Audio /
|
|
15
|
+
// THREE.PositionalAudio objects are also silenced by the mute button.
|
|
16
|
+
listener.gain.disconnect();
|
|
17
|
+
listener.gain.connect(masterGain);
|
|
18
|
+
const musicGain = ctx.createGain();
|
|
19
|
+
musicGain.gain.value = 0.7;
|
|
20
|
+
musicGain.connect(masterGain);
|
|
21
|
+
const sfxGain = ctx.createGain();
|
|
22
|
+
sfxGain.gain.value = 1.0;
|
|
23
|
+
sfxGain.connect(masterGain);
|
|
24
|
+
const voiceGain = ctx.createGain();
|
|
25
|
+
voiceGain.gain.value = 1.0;
|
|
26
|
+
voiceGain.connect(masterGain);
|
|
27
|
+
return {
|
|
28
|
+
listener,
|
|
29
|
+
masterGain,
|
|
30
|
+
buses: {
|
|
31
|
+
music: musicGain,
|
|
32
|
+
sfx: sfxGain,
|
|
33
|
+
voice: voiceGain,
|
|
34
|
+
},
|
|
35
|
+
resume() {
|
|
36
|
+
if (ctx.state === 'suspended') {
|
|
37
|
+
ctx.resume();
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type * as THREE from 'three';
|
|
2
|
+
import { BatchedRenderer } from 'three.quarks';
|
|
3
|
+
export interface ParticlesContext {
|
|
4
|
+
batchedRenderer: BatchedRenderer;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Creates the three.quarks BatchedRenderer for GPU particle systems.
|
|
8
|
+
*
|
|
9
|
+
* three.quarks renders all particle systems in a single draw call via instancing.
|
|
10
|
+
* Add particle systems to the batchedRenderer, not directly to the scene.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* const particles = setupParticles(scene);
|
|
14
|
+
* // In render loop: particles.batchedRenderer.update(dt);
|
|
15
|
+
*/
|
|
16
|
+
export declare function setupParticles(scene: THREE.Scene): ParticlesContext;
|
|
17
|
+
//# sourceMappingURL=setup-particles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-particles.d.ts","sourceRoot":"","sources":["../../src/setup/setup-particles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAKnE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BatchedRenderer } from 'three.quarks';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the three.quarks BatchedRenderer for GPU particle systems.
|
|
4
|
+
*
|
|
5
|
+
* three.quarks renders all particle systems in a single draw call via instancing.
|
|
6
|
+
* Add particle systems to the batchedRenderer, not directly to the scene.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* const particles = setupParticles(scene);
|
|
10
|
+
* // In render loop: particles.batchedRenderer.update(dt);
|
|
11
|
+
*/
|
|
12
|
+
export function setupParticles(scene) {
|
|
13
|
+
const batchedRenderer = new BatchedRenderer();
|
|
14
|
+
scene.add(batchedRenderer);
|
|
15
|
+
return { batchedRenderer };
|
|
16
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type RAPIER from '@dimforge/rapier3d-compat';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
export interface PhysicsContext {
|
|
4
|
+
rapierWorld: RAPIER.World;
|
|
5
|
+
eventQueue: RAPIER.EventQueue;
|
|
6
|
+
debugMesh: THREE.LineSegments;
|
|
7
|
+
debugEnabled: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates the Rapier physics world and debug visualization.
|
|
11
|
+
*
|
|
12
|
+
* Call RAPIER.init() before this function.
|
|
13
|
+
* This is direct Rapier setup — no abstraction. Edit freely.
|
|
14
|
+
*/
|
|
15
|
+
export declare function setupPhysics(rapier: typeof RAPIER, scene: THREE.Scene, gravity?: {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
z: number;
|
|
19
|
+
}): PhysicsContext;
|
|
20
|
+
/**
|
|
21
|
+
* Update the debug line visualization from Rapier's debug render data.
|
|
22
|
+
* Call this each frame if debug is enabled.
|
|
23
|
+
*/
|
|
24
|
+
export declare function updatePhysicsDebug(rapierWorld: RAPIER.World, debugMesh: THREE.LineSegments): void;
|
|
25
|
+
//# sourceMappingURL=setup-physics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-physics.d.ts","sourceRoot":"","sources":["../../src/setup/setup-physics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,MAAM,EACrB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,GAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAA6B,GACtE,cAAc,CAiBhB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,QAuB1F"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the Rapier physics world and debug visualization.
|
|
4
|
+
*
|
|
5
|
+
* Call RAPIER.init() before this function.
|
|
6
|
+
* This is direct Rapier setup — no abstraction. Edit freely.
|
|
7
|
+
*/
|
|
8
|
+
export function setupPhysics(rapier, scene, gravity = { x: 0, y: -9.81, z: 0 }) {
|
|
9
|
+
const rapierWorld = new rapier.World(gravity);
|
|
10
|
+
const eventQueue = new rapier.EventQueue(true);
|
|
11
|
+
// Debug visualization (toggled at runtime)
|
|
12
|
+
const debugGeometry = new THREE.BufferGeometry();
|
|
13
|
+
const debugMaterial = new THREE.LineBasicMaterial({ color: 0x00ff00, vertexColors: true });
|
|
14
|
+
const debugMesh = new THREE.LineSegments(debugGeometry, debugMaterial);
|
|
15
|
+
debugMesh.visible = false;
|
|
16
|
+
scene.add(debugMesh);
|
|
17
|
+
return {
|
|
18
|
+
rapierWorld,
|
|
19
|
+
eventQueue,
|
|
20
|
+
debugMesh,
|
|
21
|
+
debugEnabled: false,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Update the debug line visualization from Rapier's debug render data.
|
|
26
|
+
* Call this each frame if debug is enabled.
|
|
27
|
+
*/
|
|
28
|
+
export function updatePhysicsDebug(rapierWorld, debugMesh) {
|
|
29
|
+
const buffers = rapierWorld.debugRender();
|
|
30
|
+
const geom = debugMesh.geometry;
|
|
31
|
+
// Reuse the existing BufferAttributes whenever the vertex count is stable
|
|
32
|
+
// (the common case). Allocating a new Float32Array + BufferAttribute every
|
|
33
|
+
// frame orphaned a fresh GPU buffer each time. We only allocate when the
|
|
34
|
+
// size actually changes.
|
|
35
|
+
const posAttr = geom.getAttribute('position');
|
|
36
|
+
if (posAttr && posAttr.array.length === buffers.vertices.length) {
|
|
37
|
+
posAttr.array.set(buffers.vertices);
|
|
38
|
+
posAttr.needsUpdate = true;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
geom.setAttribute('position', new THREE.BufferAttribute(new Float32Array(buffers.vertices), 3));
|
|
42
|
+
}
|
|
43
|
+
const colAttr = geom.getAttribute('color');
|
|
44
|
+
if (colAttr && colAttr.array.length === buffers.colors.length) {
|
|
45
|
+
colAttr.array.set(buffers.colors);
|
|
46
|
+
colAttr.needsUpdate = true;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
geom.setAttribute('color', new THREE.BufferAttribute(new Float32Array(buffers.colors), 4));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { EffectComposer } from 'postprocessing';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
import { type RenderScope } from '../render/render-settings';
|
|
4
|
+
import type { SceneEnvironment } from '../scene/scene-types';
|
|
5
|
+
export interface RendererContext {
|
|
6
|
+
renderer: THREE.WebGLRenderer;
|
|
7
|
+
scene: THREE.Scene;
|
|
8
|
+
camera: THREE.PerspectiveCamera;
|
|
9
|
+
composer: EffectComposer;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Apply the live renderer-level render settings (shadows, resolution scale) from
|
|
13
|
+
* the resolved cascade. `antialias`/`backend` are reload-only (renderer re-init)
|
|
14
|
+
* and are handled at construction, not here. Pass the scene `rendering` scope
|
|
15
|
+
* (e.g. `env.rendering`); absent values fall back to the registry defaults so
|
|
16
|
+
* behavior is unchanged when a scene omits `rendering`.
|
|
17
|
+
*
|
|
18
|
+
* `basePixelRatio` is the call-site's native pixel-ratio policy (the runtime caps
|
|
19
|
+
* at 2; the editor uses the raw devicePixelRatio); `resolutionScale` multiplies it.
|
|
20
|
+
*/
|
|
21
|
+
export declare function applyRendererSettings(renderer: THREE.WebGLRenderer, rendering?: RenderScope, basePixelRatio?: number): void;
|
|
22
|
+
/**
|
|
23
|
+
* Create ONLY the WebGL renderer. The HOST owns the renderer (see
|
|
24
|
+
* `HostContext.renderer`); the game/adapter owns the scene/camera/composer it
|
|
25
|
+
* renders into. Split out of `setupRenderer` for the adapter inversion.
|
|
26
|
+
*
|
|
27
|
+
* `rendering` is the scene-level render scope (`env.rendering`); it seeds the
|
|
28
|
+
* reload-only `antialias` option at construction and the live shadow/resolution
|
|
29
|
+
* settings (via {@link applyRendererSettings}). Absent → registry defaults.
|
|
30
|
+
*
|
|
31
|
+
* `opts` is additive (T6.1 slice 1, COMPOSITION-DESIGN.md D5 §1/§4): omitted
|
|
32
|
+
* entirely, construction is byte-identical to before (no `alpha`/
|
|
33
|
+
* `preserveDrawingBuffer` keys at all) — the legacy single-canvas host never
|
|
34
|
+
* passes it. The worlds path passes `alpha:true` for every stacked canvas
|
|
35
|
+
* above the bottom one (so its clear-alpha-0 shows the layer below through
|
|
36
|
+
* it) and `preserveDrawingBuffer:true` for every stacked canvas (the
|
|
37
|
+
* recorded capture-tier cost, paid once here rather than re-derived later).
|
|
38
|
+
*/
|
|
39
|
+
export declare function createHostRenderer(canvas: HTMLCanvasElement, width?: number, height?: number, rendering?: RenderScope, opts?: {
|
|
40
|
+
alpha?: boolean;
|
|
41
|
+
preserveDrawingBuffer?: boolean;
|
|
42
|
+
}): THREE.WebGLRenderer;
|
|
43
|
+
/**
|
|
44
|
+
* Create the scene, camera, and postprocessing composer that a first-party game
|
|
45
|
+
* renders into, given a host-provided renderer. The GPU-only `composer` is
|
|
46
|
+
* created here; a headless host (no GPU) skips this entirely.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createSceneView(renderer: THREE.WebGLRenderer, width?: number, height?: number): {
|
|
49
|
+
scene: THREE.Scene;
|
|
50
|
+
camera: THREE.PerspectiveCamera;
|
|
51
|
+
composer: EffectComposer;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Creates the Three.js renderer, scene, camera, and postprocessing pipeline.
|
|
55
|
+
*
|
|
56
|
+
* This is direct Three.js setup — no abstraction. Edit freely. (Now a thin
|
|
57
|
+
* combination of {@link createHostRenderer} + {@link createSceneView}.)
|
|
58
|
+
*/
|
|
59
|
+
export declare function setupRenderer(canvas: HTMLCanvasElement, width?: number, height?: number): RendererContext;
|
|
60
|
+
/**
|
|
61
|
+
* Rebuild composer passes from scene environment settings.
|
|
62
|
+
* Scenes without toneMapping default to ACES (the runtime default).
|
|
63
|
+
* Code can further modify the composer after this call.
|
|
64
|
+
*
|
|
65
|
+
* Pass objectMap to enable entity-referencing effects (godRays, outline).
|
|
66
|
+
* Pass entities to resolve tag-based references (outline).
|
|
67
|
+
*/
|
|
68
|
+
export declare function applyScenePostProcessing(composer: EffectComposer, renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera, env?: SceneEnvironment, objectMap?: Map<string, THREE.Object3D>, entityTags?: Map<string, string[]>): void;
|
|
69
|
+
//# sourceMappingURL=setup-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-renderer.d.ts","sourceRoot":"","sources":["../../src/setup/setup-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,cAAc,EAoBf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,2BAA2B,CAAC;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAChC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAC7B,SAAS,CAAC,EAAE,WAAW,EACvB,cAAc,SAAuC,GACpD,IAAI,CAKN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,KAAK,SAAoB,EACzB,MAAM,SAAqB,EAC3B,SAAS,CAAC,EAAE,WAAW,EACvB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1D,KAAK,CAAC,aAAa,CAoBrB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,KAAK,CAAC,aAAa,EAC7B,KAAK,SAAoB,EACzB,MAAM,SAAqB,GAC1B;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAyBnF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,iBAAiB,EACzB,KAAK,SAAoB,EACzB,MAAM,SAAqB,GAC1B,eAAe,CAIjB;AAkBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,KAAK,CAAC,aAAa,EAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,GAAG,CAAC,EAAE,gBAAgB,EACtB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EACvC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACjC,IAAI,CAsVN"}
|