@vgai/engine 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/schemas/engine-capabilities.json +4 -4
- package/schemas/vgai-game.schema.json +2 -2
- package/src/adapter/authoring.ts +42 -0
- package/src/adapter/index.ts +3 -0
- package/src/adapter/ingest/overlay-apply.ts +50 -6
- package/src/adapter/ingest/scene-capture.ts +51 -2
- package/src/adapter/vgai-scene-game-adapter.ts +24 -0
- package/src/manifest/schema.ts +7 -3
- package/src/runtime/create-runtime.ts +97 -0
- package/src/runtime/game.ts +11 -1
- package/src/scene/asset-ref-check.ts +1 -1
- package/src/scene/scene-loader.ts +2 -2
- package/src/scene/user-data.ts +18 -0
- package/src/world3d-react/behavior.tsx +19 -11
- package/src/world3d-react/r3f-adapter.tsx +8 -0
- package/dist/adapter/adapter-surface.d.ts +0 -30
- package/dist/adapter/adapter-surface.d.ts.map +0 -1
- package/dist/adapter/adapter-surface.js +0 -18
- package/dist/adapter/authoring.d.ts +0 -461
- package/dist/adapter/authoring.d.ts.map +0 -1
- package/dist/adapter/authoring.js +0 -22
- package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
- package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
- package/dist/adapter/colyseus-networking-adapter.js +0 -38
- package/dist/adapter/first-party-systems.d.ts +0 -38
- package/dist/adapter/first-party-systems.d.ts.map +0 -1
- package/dist/adapter/first-party-systems.js +0 -77
- package/dist/adapter/game-adapter.d.ts +0 -133
- package/dist/adapter/game-adapter.d.ts.map +0 -1
- package/dist/adapter/game-adapter.js +0 -10
- package/dist/adapter/host-context.d.ts +0 -71
- package/dist/adapter/host-context.d.ts.map +0 -1
- package/dist/adapter/host-context.js +0 -16
- package/dist/adapter/index.d.ts +0 -22
- package/dist/adapter/index.d.ts.map +0 -1
- package/dist/adapter/index.js +0 -15
- package/dist/adapter/ingest/game-contract.d.ts +0 -53
- package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
- package/dist/adapter/ingest/game-contract.js +0 -30
- package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
- package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-applier.js +0 -132
- package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
- package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-apply.js +0 -101
- package/dist/adapter/ingest/overlay-file.d.ts +0 -79
- package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-file.js +0 -66
- package/dist/adapter/ingest/overlay-report.d.ts +0 -113
- package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-report.js +0 -103
- package/dist/adapter/ingest/scene-capture.d.ts +0 -97
- package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
- package/dist/adapter/ingest/scene-capture.js +0 -248
- package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
- package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
- package/dist/adapter/ingest/upstream-pin.js +0 -50
- package/dist/adapter/loop-gate-report.d.ts +0 -34
- package/dist/adapter/loop-gate-report.d.ts.map +0 -1
- package/dist/adapter/loop-gate-report.js +0 -37
- package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
- package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
- package/dist/adapter/rapier-physics-adapter.js +0 -46
- package/dist/adapter/system-adapter.d.ts +0 -206
- package/dist/adapter/system-adapter.d.ts.map +0 -1
- package/dist/adapter/system-adapter.js +0 -13
- package/dist/adapter/transform.d.ts +0 -18
- package/dist/adapter/transform.d.ts.map +0 -1
- package/dist/adapter/transform.js +0 -1
- package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -108
- package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
- package/dist/adapter/vgai-scene-game-adapter.js +0 -762
- package/dist/ai/navigation.d.ts +0 -64
- package/dist/ai/navigation.d.ts.map +0 -1
- package/dist/ai/navigation.js +0 -133
- package/dist/animation/anim-graph-types.d.ts +0 -25
- package/dist/animation/anim-graph-types.d.ts.map +0 -1
- package/dist/animation/anim-graph-types.js +0 -1
- package/dist/animation/animation-clock.d.ts +0 -213
- package/dist/animation/animation-clock.d.ts.map +0 -1
- package/dist/animation/animation-clock.js +0 -301
- package/dist/animation/blend-node.d.ts +0 -22
- package/dist/animation/blend-node.d.ts.map +0 -1
- package/dist/animation/blend-node.js +0 -97
- package/dist/animation/camera-ownership.d.ts +0 -250
- package/dist/animation/camera-ownership.d.ts.map +0 -1
- package/dist/animation/camera-ownership.js +0 -169
- package/dist/animation/cinematic-cues.d.ts +0 -200
- package/dist/animation/cinematic-cues.d.ts.map +0 -1
- package/dist/animation/cinematic-cues.js +0 -213
- package/dist/animation/clip-map.d.ts +0 -12
- package/dist/animation/clip-map.d.ts.map +0 -1
- package/dist/animation/clip-map.js +0 -37
- package/dist/animation/gsap-registration.d.ts +0 -119
- package/dist/animation/gsap-registration.d.ts.map +0 -1
- package/dist/animation/gsap-registration.js +0 -92
- package/dist/animation/theatre-clock-binding.d.ts +0 -89
- package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
- package/dist/animation/theatre-clock-binding.js +0 -29
- package/dist/animation/theatre-director.d.ts +0 -242
- package/dist/animation/theatre-director.d.ts.map +0 -1
- package/dist/animation/theatre-director.js +0 -235
- package/dist/animation/theatre-object-binding.d.ts +0 -305
- package/dist/animation/theatre-object-binding.d.ts.map +0 -1
- package/dist/animation/theatre-object-binding.js +0 -351
- package/dist/animation/xstate-animation-binding.d.ts +0 -56
- package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
- package/dist/animation/xstate-animation-binding.js +0 -331
- package/dist/animation/xstate-animation-meta.d.ts +0 -266
- package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
- package/dist/animation/xstate-animation-meta.js +0 -252
- package/dist/assets.d.ts +0 -26
- package/dist/assets.d.ts.map +0 -1
- package/dist/assets.js +0 -55
- package/dist/audio/index.d.ts +0 -4
- package/dist/audio/index.d.ts.map +0 -1
- package/dist/audio/index.js +0 -24
- package/dist/audio/tone-clock-binding.d.ts +0 -75
- package/dist/audio/tone-clock-binding.d.ts.map +0 -1
- package/dist/audio/tone-clock-binding.js +0 -29
- package/dist/audio/tone-context.d.ts +0 -114
- package/dist/audio/tone-context.d.ts.map +0 -1
- package/dist/audio/tone-context.js +0 -39
- package/dist/audio/tone-offline-render.d.ts +0 -90
- package/dist/audio/tone-offline-render.d.ts.map +0 -1
- package/dist/audio/tone-offline-render.js +0 -56
- package/dist/audio/wav-encode.d.ts +0 -38
- package/dist/audio/wav-encode.d.ts.map +0 -1
- package/dist/audio/wav-encode.js +0 -97
- package/dist/character/cloth-sim.d.ts +0 -179
- package/dist/character/cloth-sim.d.ts.map +0 -1
- package/dist/character/cloth-sim.js +0 -334
- package/dist/character/spring-chain.d.ts +0 -135
- package/dist/character/spring-chain.d.ts.map +0 -1
- package/dist/character/spring-chain.js +0 -165
- package/dist/core/game-loop.d.ts +0 -42
- package/dist/core/game-loop.d.ts.map +0 -1
- package/dist/core/game-loop.js +0 -167
- package/dist/core/seeded-random.d.ts +0 -69
- package/dist/core/seeded-random.d.ts.map +0 -1
- package/dist/core/seeded-random.js +0 -121
- package/dist/core/system-runner.d.ts +0 -120
- package/dist/core/system-runner.d.ts.map +0 -1
- package/dist/core/system-runner.js +0 -297
- package/dist/core/types.d.ts +0 -92
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -25
- package/dist/data/data-asset.d.ts +0 -101
- package/dist/data/data-asset.d.ts.map +0 -1
- package/dist/data/data-asset.js +0 -122
- package/dist/data/data-check-core.d.ts +0 -110
- package/dist/data/data-check-core.d.ts.map +0 -1
- package/dist/data/data-check-core.js +0 -178
- package/dist/data/data-ref.d.ts +0 -79
- package/dist/data/data-ref.d.ts.map +0 -1
- package/dist/data/data-ref.js +0 -130
- package/dist/data/vite-plugin-data.d.ts +0 -79
- package/dist/data/vite-plugin-data.d.ts.map +0 -1
- package/dist/data/vite-plugin-data.js +0 -217
- package/dist/dev/console-bridge.d.ts +0 -22
- package/dist/dev/console-bridge.d.ts.map +0 -1
- package/dist/dev/console-bridge.js +0 -71
- package/dist/dev/debug-draw.d.ts +0 -24
- package/dist/dev/debug-draw.d.ts.map +0 -1
- package/dist/dev/debug-draw.js +0 -73
- package/dist/dev/logger.d.ts +0 -30
- package/dist/dev/logger.d.ts.map +0 -1
- package/dist/dev/logger.js +0 -90
- package/dist/dev/performance-profiler.d.ts +0 -60
- package/dist/dev/performance-profiler.d.ts.map +0 -1
- package/dist/dev/performance-profiler.js +0 -181
- package/dist/dev/webgl-gpu-timer.d.ts +0 -8
- package/dist/dev/webgl-gpu-timer.d.ts.map +0 -1
- package/dist/dev/webgl-gpu-timer.js +0 -52
- package/dist/ecs/component-manager.d.ts +0 -205
- package/dist/ecs/component-manager.d.ts.map +0 -1
- package/dist/ecs/component-manager.js +0 -706
- package/dist/ecs/game-component.d.ts +0 -146
- package/dist/ecs/game-component.d.ts.map +0 -1
- package/dist/ecs/game-component.js +0 -141
- package/dist/ecs/hmr-swap-report.d.ts +0 -53
- package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
- package/dist/ecs/hmr-swap-report.js +0 -55
- package/dist/humanoid/bake.operation.d.ts +0 -119
- package/dist/humanoid/bake.operation.d.ts.map +0 -1
- package/dist/humanoid/bake.operation.js +0 -228
- package/dist/humanoid/body.d.ts +0 -101
- package/dist/humanoid/body.d.ts.map +0 -1
- package/dist/humanoid/body.js +0 -530
- package/dist/humanoid/clips.d.ts +0 -62
- package/dist/humanoid/clips.d.ts.map +0 -1
- package/dist/humanoid/clips.js +0 -121
- package/dist/humanoid/compose.d.ts +0 -75
- package/dist/humanoid/compose.d.ts.map +0 -1
- package/dist/humanoid/compose.js +0 -176
- package/dist/humanoid/generate.d.ts +0 -92
- package/dist/humanoid/generate.d.ts.map +0 -1
- package/dist/humanoid/generate.js +0 -124
- package/dist/humanoid/index.d.ts +0 -24
- package/dist/humanoid/index.d.ts.map +0 -1
- package/dist/humanoid/index.js +0 -18
- package/dist/humanoid/schema.d.ts +0 -35
- package/dist/humanoid/schema.d.ts.map +0 -1
- package/dist/humanoid/schema.js +0 -87
- package/dist/humanoid/skeleton.d.ts +0 -103
- package/dist/humanoid/skeleton.d.ts.map +0 -1
- package/dist/humanoid/skeleton.js +0 -289
- package/dist/index.d.ts +0 -37
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -30
- package/dist/input/input-manager.d.ts +0 -945
- package/dist/input/input-manager.d.ts.map +0 -1
- package/dist/input/input-manager.js +0 -2207
- package/dist/input/input-types.d.ts +0 -174
- package/dist/input/input-types.d.ts.map +0 -1
- package/dist/input/input-types.js +0 -1
- package/dist/input/prompt-labels.d.ts +0 -21
- package/dist/input/prompt-labels.d.ts.map +0 -1
- package/dist/input/prompt-labels.js +0 -121
- package/dist/input/rebind-controller.d.ts +0 -59
- package/dist/input/rebind-controller.d.ts.map +0 -1
- package/dist/input/rebind-controller.js +0 -85
- package/dist/input/schema.d.ts +0 -16
- package/dist/input/schema.d.ts.map +0 -1
- package/dist/input/schema.js +0 -228
- package/dist/loader.d.ts +0 -43
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -59
- package/dist/manifest/index.d.ts +0 -5
- package/dist/manifest/index.d.ts.map +0 -1
- package/dist/manifest/index.js +0 -8
- package/dist/manifest/load-file.d.ts +0 -4
- package/dist/manifest/load-file.d.ts.map +0 -1
- package/dist/manifest/load-file.js +0 -14
- package/dist/manifest/load.d.ts +0 -144
- package/dist/manifest/load.d.ts.map +0 -1
- package/dist/manifest/load.js +0 -273
- package/dist/manifest/schema.d.ts +0 -230
- package/dist/manifest/schema.d.ts.map +0 -1
- package/dist/manifest/schema.js +0 -394
- package/dist/physics/collision-system.d.ts +0 -41
- package/dist/physics/collision-system.d.ts.map +0 -1
- package/dist/physics/collision-system.js +0 -64
- package/dist/physics/physics-registry.d.ts +0 -45
- package/dist/physics/physics-registry.d.ts.map +0 -1
- package/dist/physics/physics-registry.js +0 -65
- package/dist/physics/transform-writer.d.ts +0 -16
- package/dist/physics/transform-writer.d.ts.map +0 -1
- package/dist/physics/transform-writer.js +0 -38
- package/dist/physics/trigger-dispatch.d.ts +0 -24
- package/dist/physics/trigger-dispatch.d.ts.map +0 -1
- package/dist/physics/trigger-dispatch.js +0 -80
- package/dist/react/game-state.d.ts +0 -156
- package/dist/react/game-state.d.ts.map +0 -1
- package/dist/react/game-state.js +0 -222
- package/dist/react/root-adapter.d.ts +0 -11
- package/dist/react/root-adapter.d.ts.map +0 -1
- package/dist/react/root-adapter.js +0 -41
- package/dist/react/unmanaged-root-detector.d.ts +0 -12
- package/dist/react/unmanaged-root-detector.d.ts.map +0 -1
- package/dist/react/unmanaged-root-detector.js +0 -45
- package/dist/react/use-data.d.ts +0 -60
- package/dist/react/use-data.d.ts.map +0 -1
- package/dist/react/use-data.js +0 -101
- package/dist/react/use-selection.d.ts +0 -75
- package/dist/react/use-selection.d.ts.map +0 -1
- package/dist/react/use-selection.js +0 -90
- package/dist/render/auto-batcher.d.ts +0 -34
- package/dist/render/auto-batcher.d.ts.map +0 -1
- package/dist/render/auto-batcher.js +0 -140
- package/dist/render/render-batch-system.d.ts +0 -33
- package/dist/render/render-batch-system.d.ts.map +0 -1
- package/dist/render/render-batch-system.js +0 -230
- package/dist/render/render-features.d.ts +0 -47
- package/dist/render/render-features.d.ts.map +0 -1
- package/dist/render/render-features.js +0 -105
- package/dist/render/render-settings.d.ts +0 -36
- package/dist/render/render-settings.d.ts.map +0 -1
- package/dist/render/render-settings.js +0 -51
- package/dist/runtime/create-runtime.d.ts +0 -249
- package/dist/runtime/create-runtime.d.ts.map +0 -1
- package/dist/runtime/create-runtime.js +0 -641
- package/dist/runtime/debug-bridge.d.ts +0 -257
- package/dist/runtime/debug-bridge.d.ts.map +0 -1
- package/dist/runtime/debug-bridge.js +0 -224
- package/dist/runtime/debug-registry.d.ts +0 -288
- package/dist/runtime/debug-registry.d.ts.map +0 -1
- package/dist/runtime/debug-registry.js +0 -513
- package/dist/runtime/frame-selector-cache.d.ts +0 -41
- package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
- package/dist/runtime/frame-selector-cache.js +0 -65
- package/dist/runtime/game.d.ts +0 -496
- package/dist/runtime/game.d.ts.map +0 -1
- package/dist/runtime/game.js +0 -741
- package/dist/runtime/gameplay-rng-trap.d.ts +0 -48
- package/dist/runtime/gameplay-rng-trap.d.ts.map +0 -1
- package/dist/runtime/gameplay-rng-trap.js +0 -96
- package/dist/runtime/input-router.d.ts +0 -78
- package/dist/runtime/input-router.d.ts.map +0 -1
- package/dist/runtime/input-router.js +0 -171
- package/dist/runtime/mount-game.d.ts +0 -129
- package/dist/runtime/mount-game.d.ts.map +0 -1
- package/dist/runtime/mount-game.js +0 -152
- package/dist/runtime/mount-manifest.d.ts +0 -173
- package/dist/runtime/mount-manifest.d.ts.map +0 -1
- package/dist/runtime/mount-manifest.js +0 -297
- package/dist/runtime/render-audio-control.d.ts +0 -110
- package/dist/runtime/render-audio-control.d.ts.map +0 -1
- package/dist/runtime/render-audio-control.js +0 -111
- package/dist/runtime/render-control.d.ts +0 -291
- package/dist/runtime/render-control.d.ts.map +0 -1
- package/dist/runtime/render-control.js +0 -264
- package/dist/runtime/render-seed.d.ts +0 -57
- package/dist/runtime/render-seed.d.ts.map +0 -1
- package/dist/runtime/render-seed.js +0 -74
- package/dist/runtime/state-bridge.d.ts +0 -61
- package/dist/runtime/state-bridge.d.ts.map +0 -1
- package/dist/runtime/state-bridge.js +0 -63
- package/dist/runtime/types.d.ts +0 -253
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/runtime/types.js +0 -1
- package/dist/scene/asset-loaders.d.ts +0 -79
- package/dist/scene/asset-loaders.d.ts.map +0 -1
- package/dist/scene/asset-loaders.js +0 -141
- package/dist/scene/asset-paths.d.ts +0 -11
- package/dist/scene/asset-paths.d.ts.map +0 -1
- package/dist/scene/asset-paths.js +0 -108
- package/dist/scene/asset-ref-check.d.ts +0 -88
- package/dist/scene/asset-ref-check.d.ts.map +0 -1
- package/dist/scene/asset-ref-check.js +0 -214
- package/dist/scene/asset-registry.d.ts +0 -38
- package/dist/scene/asset-registry.d.ts.map +0 -1
- package/dist/scene/asset-registry.js +0 -66
- package/dist/scene/collider-dimensions.d.ts +0 -63
- package/dist/scene/collider-dimensions.d.ts.map +0 -1
- package/dist/scene/collider-dimensions.js +0 -98
- package/dist/scene/component-registry.d.ts +0 -22
- package/dist/scene/component-registry.d.ts.map +0 -1
- package/dist/scene/component-registry.js +0 -37
- package/dist/scene/defaults.d.ts +0 -252
- package/dist/scene/defaults.d.ts.map +0 -1
- package/dist/scene/defaults.js +0 -151
- package/dist/scene/geometries/index.d.ts +0 -8
- package/dist/scene/geometries/index.d.ts.map +0 -1
- package/dist/scene/geometries/index.js +0 -7
- package/dist/scene/geometries/terrain.d.ts +0 -2
- package/dist/scene/geometries/terrain.d.ts.map +0 -1
- package/dist/scene/geometries/terrain.js +0 -37
- package/dist/scene/geometry-registry.d.ts +0 -24
- package/dist/scene/geometry-registry.d.ts.map +0 -1
- package/dist/scene/geometry-registry.js +0 -20
- package/dist/scene/instance-registry.d.ts +0 -36
- package/dist/scene/instance-registry.d.ts.map +0 -1
- package/dist/scene/instance-registry.js +0 -55
- package/dist/scene/instancers/grid.d.ts +0 -2
- package/dist/scene/instancers/grid.d.ts.map +0 -1
- package/dist/scene/instancers/grid.js +0 -36
- package/dist/scene/instancers/index.d.ts +0 -8
- package/dist/scene/instancers/index.d.ts.map +0 -1
- package/dist/scene/instancers/index.js +0 -7
- package/dist/scene/light-camera-factory.d.ts +0 -23
- package/dist/scene/light-camera-factory.d.ts.map +0 -1
- package/dist/scene/light-camera-factory.js +0 -68
- package/dist/scene/material-factory.d.ts +0 -17
- package/dist/scene/material-factory.d.ts.map +0 -1
- package/dist/scene/material-factory.js +0 -197
- package/dist/scene/material-registry.d.ts +0 -40
- package/dist/scene/material-registry.d.ts.map +0 -1
- package/dist/scene/material-registry.js +0 -44
- package/dist/scene/materials/index.d.ts +0 -8
- package/dist/scene/materials/index.d.ts.map +0 -1
- package/dist/scene/materials/index.js +0 -7
- package/dist/scene/materials/water.d.ts +0 -2
- package/dist/scene/materials/water.d.ts.map +0 -1
- package/dist/scene/materials/water.js +0 -54
- package/dist/scene/parse.d.ts +0 -23
- package/dist/scene/parse.d.ts.map +0 -1
- package/dist/scene/parse.js +0 -179
- package/dist/scene/particles-factory.d.ts +0 -33
- package/dist/scene/particles-factory.d.ts.map +0 -1
- package/dist/scene/particles-factory.js +0 -282
- package/dist/scene/scene-apply.d.ts +0 -109
- package/dist/scene/scene-apply.d.ts.map +0 -1
- package/dist/scene/scene-apply.js +0 -370
- package/dist/scene/scene-diff-schema.d.ts +0 -285
- package/dist/scene/scene-diff-schema.d.ts.map +0 -1
- package/dist/scene/scene-diff-schema.js +0 -92
- package/dist/scene/scene-diff-types.d.ts +0 -40
- package/dist/scene/scene-diff-types.d.ts.map +0 -1
- package/dist/scene/scene-diff-types.js +0 -14
- package/dist/scene/scene-loader.d.ts +0 -167
- package/dist/scene/scene-loader.d.ts.map +0 -1
- package/dist/scene/scene-loader.js +0 -1211
- package/dist/scene/scene-query.d.ts +0 -11
- package/dist/scene/scene-query.d.ts.map +0 -1
- package/dist/scene/scene-query.js +0 -63
- package/dist/scene/scene-types.d.ts +0 -10
- package/dist/scene/scene-types.d.ts.map +0 -1
- package/dist/scene/scene-types.js +0 -8
- package/dist/scene/scene-version.d.ts +0 -26
- package/dist/scene/scene-version.d.ts.map +0 -1
- package/dist/scene/scene-version.js +0 -34
- package/dist/scene/schema/animation.d.ts +0 -8
- package/dist/scene/schema/animation.d.ts.map +0 -1
- package/dist/scene/schema/animation.js +0 -42
- package/dist/scene/schema/audio.d.ts +0 -13
- package/dist/scene/schema/audio.d.ts.map +0 -1
- package/dist/scene/schema/audio.js +0 -22
- package/dist/scene/schema/camera.d.ts +0 -28
- package/dist/scene/schema/camera.d.ts.map +0 -1
- package/dist/scene/schema/camera.js +0 -17
- package/dist/scene/schema/collider.d.ts +0 -40
- package/dist/scene/schema/collider.d.ts.map +0 -1
- package/dist/scene/schema/collider.js +0 -55
- package/dist/scene/schema/entity-ref.d.ts +0 -31
- package/dist/scene/schema/entity-ref.d.ts.map +0 -1
- package/dist/scene/schema/entity-ref.js +0 -61
- package/dist/scene/schema/entity.d.ts +0 -1036
- package/dist/scene/schema/entity.d.ts.map +0 -1
- package/dist/scene/schema/entity.js +0 -153
- package/dist/scene/schema/environment.d.ts +0 -425
- package/dist/scene/schema/environment.d.ts.map +0 -1
- package/dist/scene/schema/environment.js +0 -357
- package/dist/scene/schema/index.d.ts +0 -37
- package/dist/scene/schema/index.d.ts.map +0 -1
- package/dist/scene/schema/index.js +0 -19
- package/dist/scene/schema/instances.d.ts +0 -14
- package/dist/scene/schema/instances.d.ts.map +0 -1
- package/dist/scene/schema/instances.js +0 -28
- package/dist/scene/schema/joint.d.ts +0 -23
- package/dist/scene/schema/joint.d.ts.map +0 -1
- package/dist/scene/schema/joint.js +0 -23
- package/dist/scene/schema/light.d.ts +0 -38
- package/dist/scene/schema/light.d.ts.map +0 -1
- package/dist/scene/schema/light.js +0 -26
- package/dist/scene/schema/material.d.ts +0 -199
- package/dist/scene/schema/material.d.ts.map +0 -1
- package/dist/scene/schema/material.js +0 -103
- package/dist/scene/schema/mesh.d.ts +0 -48
- package/dist/scene/schema/mesh.d.ts.map +0 -1
- package/dist/scene/schema/mesh.js +0 -82
- package/dist/scene/schema/particles.d.ts +0 -2178
- package/dist/scene/schema/particles.d.ts.map +0 -1
- package/dist/scene/schema/particles.js +0 -321
- package/dist/scene/schema/physics.d.ts +0 -56
- package/dist/scene/schema/physics.d.ts.map +0 -1
- package/dist/scene/schema/physics.js +0 -37
- package/dist/scene/schema/scene-file.d.ts +0 -303
- package/dist/scene/schema/scene-file.d.ts.map +0 -1
- package/dist/scene/schema/scene-file.js +0 -256
- package/dist/scene/schema/shadow.d.ts +0 -28
- package/dist/scene/schema/shadow.d.ts.map +0 -1
- package/dist/scene/schema/shadow.js +0 -20
- package/dist/scene/schema/spline.d.ts +0 -25
- package/dist/scene/schema/spline.d.ts.map +0 -1
- package/dist/scene/schema/spline.js +0 -15
- package/dist/scene/schema/tuples.d.ts +0 -12
- package/dist/scene/schema/tuples.d.ts.map +0 -1
- package/dist/scene/schema/tuples.js +0 -14
- package/dist/scene/user-data.d.ts +0 -185
- package/dist/scene/user-data.d.ts.map +0 -1
- package/dist/scene/user-data.js +0 -144
- package/dist/setup/setup-audio.d.ts +0 -20
- package/dist/setup/setup-audio.d.ts.map +0 -1
- package/dist/setup/setup-audio.js +0 -41
- package/dist/setup/setup-particles.d.ts +0 -17
- package/dist/setup/setup-particles.d.ts.map +0 -1
- package/dist/setup/setup-particles.js +0 -16
- package/dist/setup/setup-physics.d.ts +0 -25
- package/dist/setup/setup-physics.d.ts.map +0 -1
- package/dist/setup/setup-physics.js +0 -51
- package/dist/setup/setup-renderer.d.ts +0 -69
- package/dist/setup/setup-renderer.d.ts.map +0 -1
- package/dist/setup/setup-renderer.js +0 -363
- package/dist/tools/define-tool.d.ts +0 -130
- package/dist/tools/define-tool.d.ts.map +0 -1
- package/dist/tools/define-tool.js +0 -96
- package/dist/world2d/authoring-2d.d.ts +0 -80
- package/dist/world2d/authoring-2d.d.ts.map +0 -1
- package/dist/world2d/authoring-2d.js +0 -195
- package/dist/world2d/capture-to-scene2d.d.ts +0 -5
- package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
- package/dist/world2d/capture-to-scene2d.js +0 -49
- package/dist/world2d/collision-2d.d.ts +0 -52
- package/dist/world2d/collision-2d.d.ts.map +0 -1
- package/dist/world2d/collision-2d.js +0 -70
- package/dist/world2d/components-2d.d.ts +0 -47
- package/dist/world2d/components-2d.d.ts.map +0 -1
- package/dist/world2d/components-2d.js +0 -77
- package/dist/world2d/index.d.ts +0 -34
- package/dist/world2d/index.d.ts.map +0 -1
- package/dist/world2d/index.js +0 -32
- package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
- package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
- package/dist/world2d/ingest-iframe-2d.js +0 -166
- package/dist/world2d/ingest2d.d.ts +0 -97
- package/dist/world2d/ingest2d.d.ts.map +0 -1
- package/dist/world2d/ingest2d.js +0 -40
- package/dist/world2d/physics2d-registry.d.ts +0 -24
- package/dist/world2d/physics2d-registry.d.ts.map +0 -1
- package/dist/world2d/physics2d-registry.js +0 -38
- package/dist/world2d/pixi-game-adapter.d.ts +0 -107
- package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
- package/dist/world2d/pixi-game-adapter.js +0 -210
- package/dist/world2d/pixi-surface.d.ts +0 -39
- package/dist/world2d/pixi-surface.d.ts.map +0 -1
- package/dist/world2d/pixi-surface.js +0 -47
- package/dist/world2d/scene-capture-2d.d.ts +0 -43
- package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
- package/dist/world2d/scene-capture-2d.js +0 -92
- package/dist/world2d/scene2d-loader.d.ts +0 -27
- package/dist/world2d/scene2d-loader.d.ts.map +0 -1
- package/dist/world2d/scene2d-loader.js +0 -275
- package/dist/world2d/schema/entity2d.d.ts +0 -102
- package/dist/world2d/schema/entity2d.d.ts.map +0 -1
- package/dist/world2d/schema/entity2d.js +0 -119
- package/dist/world2d/schema/physics2d.d.ts +0 -46
- package/dist/world2d/schema/physics2d.d.ts.map +0 -1
- package/dist/world2d/schema/physics2d.js +0 -45
- package/dist/world2d/schema/sprite.d.ts +0 -42
- package/dist/world2d/schema/sprite.d.ts.map +0 -1
- package/dist/world2d/schema/sprite.js +0 -63
- package/dist/world2d/schema/tilemap.d.ts +0 -15
- package/dist/world2d/schema/tilemap.d.ts.map +0 -1
- package/dist/world2d/schema/tilemap.js +0 -19
- package/dist/world2d/schema/tuples2d.d.ts +0 -20
- package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
- package/dist/world2d/schema/tuples2d.js +0 -19
- package/dist/world2d/system-adapters-2d.d.ts +0 -16
- package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
- package/dist/world2d/system-adapters-2d.js +0 -37
- package/dist/world2d/transform-writer-2d.d.ts +0 -16
- package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
- package/dist/world2d/transform-writer-2d.js +0 -22
- package/dist/world2d/types.d.ts +0 -59
- package/dist/world2d/types.d.ts.map +0 -1
- package/dist/world2d/types.js +0 -1
package/dist/ai/navigation.d.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NavMeshManager — wraps recast-navigation for navmesh generation + crowd pathfinding.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* await init(); // WASM init (call once per app)
|
|
6
|
-
* const nav = new NavMeshManager();
|
|
7
|
-
* await nav.buildFromMeshes(meshes);
|
|
8
|
-
* const path = nav.findPath(start, end);
|
|
9
|
-
* const crowd = nav.createCrowd(10);
|
|
10
|
-
* // In game loop: nav.updateCrowd(dt);
|
|
11
|
-
*/
|
|
12
|
-
import { NavMeshHelper } from '@recast-navigation/three';
|
|
13
|
-
import type { CrowdAgent } from 'recast-navigation';
|
|
14
|
-
import { Crowd } from 'recast-navigation';
|
|
15
|
-
import type { Mesh, Scene } from 'three';
|
|
16
|
-
export type { CrowdAgent };
|
|
17
|
-
export interface Vector3Like {
|
|
18
|
-
x: number;
|
|
19
|
-
y: number;
|
|
20
|
-
z: number;
|
|
21
|
-
}
|
|
22
|
-
export interface NavMeshBuildParams {
|
|
23
|
-
cellSize?: number | undefined;
|
|
24
|
-
cellHeight?: number | undefined;
|
|
25
|
-
walkableSlopeAngle?: number | undefined;
|
|
26
|
-
walkableHeight?: number | undefined;
|
|
27
|
-
walkableClimb?: number | undefined;
|
|
28
|
-
walkableRadius?: number | undefined;
|
|
29
|
-
maxEdgeLen?: number | undefined;
|
|
30
|
-
maxSimplificationError?: number | undefined;
|
|
31
|
-
minRegionArea?: number | undefined;
|
|
32
|
-
mergeRegionArea?: number | undefined;
|
|
33
|
-
}
|
|
34
|
-
export declare function initNavigation(): Promise<void>;
|
|
35
|
-
export declare class NavMeshManager {
|
|
36
|
-
private navMesh;
|
|
37
|
-
private query;
|
|
38
|
-
private crowd;
|
|
39
|
-
private helper;
|
|
40
|
-
/** Build navmesh from Three.js Mesh objects (grounds, obstacles, etc.). */
|
|
41
|
-
buildFromMeshes(meshes: Mesh[], params?: NavMeshBuildParams): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Destroy all live recast handles (crowd, query, navmesh) and dispose the
|
|
44
|
-
* debug helper. Recast objects live on the WASM heap and are NOT GC'd —
|
|
45
|
-
* they must be explicitly `.destroy()`ed or they leak.
|
|
46
|
-
*/
|
|
47
|
-
private destroyRecast;
|
|
48
|
-
/** True once a navmesh has been built (for the NavigationAdapter to gate on). */
|
|
49
|
-
hasNavMesh(): boolean;
|
|
50
|
-
/** Find a straight path between two world positions. Returns [] if no path. */
|
|
51
|
-
findPath(start: Vector3Like, end: Vector3Like): Vector3Like[];
|
|
52
|
-
/** Create a crowd with up to maxAgents agents. */
|
|
53
|
-
createCrowd(maxAgents: number): Crowd;
|
|
54
|
-
/** Step the crowd simulation. Call once per frame. */
|
|
55
|
-
updateCrowd(dt: number): void;
|
|
56
|
-
/** Get or create the wireframe debug mesh. Add to scene once, call update() after rebuilding. */
|
|
57
|
-
getDebugMesh(scene: Scene): NavMeshHelper | null;
|
|
58
|
-
/** Serialize the current navmesh to a binary blob. */
|
|
59
|
-
exportData(): Uint8Array;
|
|
60
|
-
/** Load a navmesh from a previously exported binary blob. */
|
|
61
|
-
loadFromData(data: Uint8Array): void;
|
|
62
|
-
dispose(scene: Scene): void;
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/ai/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAoD,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGzC,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAID,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAA8B;IAE5C,2EAA2E;IAC3E,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO;IA4BrE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAoBrB,iFAAiF;IACjF,UAAU,IAAI,OAAO;IAIrB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,EAAE;IAO7D,kDAAkD;IAClD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK;IAMrC,sDAAsD;IACtD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7B,iGAAiG;IACjG,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;IAShD,sDAAsD;IACtD,UAAU,IAAI,UAAU;IAKxB,6DAA6D;IAC7D,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQpC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAM5B"}
|
package/dist/ai/navigation.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NavMeshManager — wraps recast-navigation for navmesh generation + crowd pathfinding.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* await init(); // WASM init (call once per app)
|
|
6
|
-
* const nav = new NavMeshManager();
|
|
7
|
-
* await nav.buildFromMeshes(meshes);
|
|
8
|
-
* const path = nav.findPath(start, end);
|
|
9
|
-
* const crowd = nav.createCrowd(10);
|
|
10
|
-
* // In game loop: nav.updateCrowd(dt);
|
|
11
|
-
*/
|
|
12
|
-
import { NavMeshHelper, threeToSoloNavMesh } from '@recast-navigation/three';
|
|
13
|
-
import { Crowd, exportNavMesh, importNavMesh, init, NavMeshQuery } from 'recast-navigation';
|
|
14
|
-
import { DEFAULTS } from '../scene/defaults';
|
|
15
|
-
let wasmInitialized = false;
|
|
16
|
-
export async function initNavigation() {
|
|
17
|
-
if (wasmInitialized)
|
|
18
|
-
return;
|
|
19
|
-
await init();
|
|
20
|
-
wasmInitialized = true;
|
|
21
|
-
}
|
|
22
|
-
export class NavMeshManager {
|
|
23
|
-
navMesh = null;
|
|
24
|
-
query = null;
|
|
25
|
-
crowd = null;
|
|
26
|
-
helper = null;
|
|
27
|
-
/** Build navmesh from Three.js Mesh objects (grounds, obstacles, etc.). */
|
|
28
|
-
buildFromMeshes(meshes, params) {
|
|
29
|
-
const d = DEFAULTS.navigation;
|
|
30
|
-
const result = threeToSoloNavMesh(meshes, {
|
|
31
|
-
cs: params?.cellSize ?? d.cellSize,
|
|
32
|
-
ch: params?.cellHeight ?? d.cellHeight,
|
|
33
|
-
walkableSlopeAngle: params?.walkableSlopeAngle ?? d.walkableSlopeAngle,
|
|
34
|
-
walkableHeight: params?.walkableHeight ?? d.walkableHeight,
|
|
35
|
-
walkableClimb: params?.walkableClimb ?? d.walkableClimb,
|
|
36
|
-
walkableRadius: params?.walkableRadius ?? d.walkableRadius,
|
|
37
|
-
maxEdgeLen: params?.maxEdgeLen ?? d.maxEdgeLen,
|
|
38
|
-
maxSimplificationError: params?.maxSimplificationError ?? d.maxSimplificationError,
|
|
39
|
-
minRegionArea: params?.minRegionArea ?? d.minRegionArea,
|
|
40
|
-
mergeRegionArea: params?.mergeRegionArea ?? d.mergeRegionArea,
|
|
41
|
-
// Recast tuning knobs with no DEFAULTS counterpart (not modeled there).
|
|
42
|
-
maxVertsPerPoly: 6,
|
|
43
|
-
detailSampleDist: 6,
|
|
44
|
-
detailSampleMaxError: 1,
|
|
45
|
-
});
|
|
46
|
-
if (!result.success || !result.navMesh)
|
|
47
|
-
return false;
|
|
48
|
-
// Free the previous recast objects before replacing them (WASM heap leak).
|
|
49
|
-
this.destroyRecast();
|
|
50
|
-
this.navMesh = result.navMesh;
|
|
51
|
-
this.query = new NavMeshQuery(this.navMesh);
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Destroy all live recast handles (crowd, query, navmesh) and dispose the
|
|
56
|
-
* debug helper. Recast objects live on the WASM heap and are NOT GC'd —
|
|
57
|
-
* they must be explicitly `.destroy()`ed or they leak.
|
|
58
|
-
*/
|
|
59
|
-
destroyRecast() {
|
|
60
|
-
if (this.helper) {
|
|
61
|
-
this.helper.parent?.remove(this.helper);
|
|
62
|
-
this.helper.dispose?.();
|
|
63
|
-
this.helper = null;
|
|
64
|
-
}
|
|
65
|
-
if (this.crowd) {
|
|
66
|
-
this.crowd.destroy();
|
|
67
|
-
this.crowd = null;
|
|
68
|
-
}
|
|
69
|
-
if (this.query) {
|
|
70
|
-
this.query.destroy();
|
|
71
|
-
this.query = null;
|
|
72
|
-
}
|
|
73
|
-
if (this.navMesh) {
|
|
74
|
-
this.navMesh.destroy();
|
|
75
|
-
this.navMesh = null;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/** True once a navmesh has been built (for the NavigationAdapter to gate on). */
|
|
79
|
-
hasNavMesh() {
|
|
80
|
-
return this.navMesh !== null;
|
|
81
|
-
}
|
|
82
|
-
/** Find a straight path between two world positions. Returns [] if no path. */
|
|
83
|
-
findPath(start, end) {
|
|
84
|
-
if (!this.query)
|
|
85
|
-
return [];
|
|
86
|
-
const result = this.query.computePath(start, end);
|
|
87
|
-
if (!result.success)
|
|
88
|
-
return [];
|
|
89
|
-
return result.path;
|
|
90
|
-
}
|
|
91
|
-
/** Create a crowd with up to maxAgents agents. */
|
|
92
|
-
createCrowd(maxAgents) {
|
|
93
|
-
if (!this.navMesh)
|
|
94
|
-
throw new Error('Build navmesh first');
|
|
95
|
-
this.crowd = new Crowd(this.navMesh, { maxAgents, maxAgentRadius: 0.6 });
|
|
96
|
-
return this.crowd;
|
|
97
|
-
}
|
|
98
|
-
/** Step the crowd simulation. Call once per frame. */
|
|
99
|
-
updateCrowd(dt) {
|
|
100
|
-
this.crowd?.update(dt);
|
|
101
|
-
}
|
|
102
|
-
/** Get or create the wireframe debug mesh. Add to scene once, call update() after rebuilding. */
|
|
103
|
-
getDebugMesh(scene) {
|
|
104
|
-
if (!this.navMesh)
|
|
105
|
-
return null;
|
|
106
|
-
if (!this.helper) {
|
|
107
|
-
this.helper = new NavMeshHelper(this.navMesh);
|
|
108
|
-
scene.add(this.helper);
|
|
109
|
-
}
|
|
110
|
-
return this.helper;
|
|
111
|
-
}
|
|
112
|
-
/** Serialize the current navmesh to a binary blob. */
|
|
113
|
-
exportData() {
|
|
114
|
-
if (!this.navMesh)
|
|
115
|
-
throw new Error('No navmesh to export');
|
|
116
|
-
return exportNavMesh(this.navMesh);
|
|
117
|
-
}
|
|
118
|
-
/** Load a navmesh from a previously exported binary blob. */
|
|
119
|
-
loadFromData(data) {
|
|
120
|
-
const { navMesh } = importNavMesh(data);
|
|
121
|
-
// Free the previous recast objects before replacing them.
|
|
122
|
-
this.destroyRecast();
|
|
123
|
-
this.navMesh = navMesh;
|
|
124
|
-
this.query = new NavMeshQuery(this.navMesh);
|
|
125
|
-
}
|
|
126
|
-
dispose(scene) {
|
|
127
|
-
// Ensure the helper is removed from the passed scene as well, then destroy
|
|
128
|
-
// every recast handle (crowd/query/navmesh) so nothing leaks on the WASM heap.
|
|
129
|
-
if (this.helper)
|
|
130
|
-
scene.remove(this.helper);
|
|
131
|
-
this.destroyRecast();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Blend-tree shapes shared by the (removed, E5) legacy `AnimGraph` runtime and
|
|
3
|
-
* the current XState -> AnimationMixer binding (`xstate-animation-binding.ts`,
|
|
4
|
-
* E2). Retained deliberately — see `packages/engine/test/removal-inventory.ts`'s
|
|
5
|
-
* `animgraph` family note: `BlendTreeDef`/`BlendChild` are imported directly by
|
|
6
|
-
* `xstate-animation-binding.ts`, so this file survived E5's removal as a
|
|
7
|
-
* partial edit rather than being deleted whole. Every other type this file
|
|
8
|
-
* used to declare (`AnimGraphFile`, `AnimParameter`, `AnimLayer`, `AnimState`,
|
|
9
|
-
* `AnimTransition`, `TransitionCondition` — the state-machine-shaped half of
|
|
10
|
-
* the old `.animgraph.json` format) was deleted with the runtime that read
|
|
11
|
-
* them (`anim-graph.ts`).
|
|
12
|
-
*/
|
|
13
|
-
export interface BlendTreeDef {
|
|
14
|
-
type: '1D' | '2D' | 'direct';
|
|
15
|
-
parameter: string;
|
|
16
|
-
parameterY?: string;
|
|
17
|
-
children: BlendChild[];
|
|
18
|
-
}
|
|
19
|
-
export interface BlendChild {
|
|
20
|
-
clip: string;
|
|
21
|
-
threshold: number;
|
|
22
|
-
thresholdY?: number;
|
|
23
|
-
weight?: number;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=anim-graph-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anim-graph-types.d.ts","sourceRoot":"","sources":["../../src/animation/anim-graph-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { type SystemPhaseName } from '../core/types';
|
|
2
|
-
/**
|
|
3
|
-
* D1 — the canonical `AnimationClock` (spec §10 D1, §3.2, §4).
|
|
4
|
-
*
|
|
5
|
-
* VGAI owns exactly one clock per cinematic/scene context. It is the single
|
|
6
|
-
* source of truth for "what time is it" that Theatre sequences, registered
|
|
7
|
-
* GSAP timelines, and cinematic cue evaluators are seeked against (D2/D5/D7
|
|
8
|
-
* — NOT implemented here, this unit is the clock only). The render seam
|
|
9
|
-
* (I2) drives this clock's `seek(t)`/frame-index API directly, without ever
|
|
10
|
-
* advancing gameplay substeps.
|
|
11
|
-
*
|
|
12
|
-
* Design constraints (from the spec and the D1 review notes):
|
|
13
|
-
*
|
|
14
|
-
* - Time is in SECONDS with no hidden wall-clock read. This class never
|
|
15
|
-
* reads the system clock or a monotonic timer directly — the caller (the
|
|
16
|
-
* fixed-step game loop for live playback, or a render/export harness for
|
|
17
|
-
* offline scrubbing) is the only source of `dt`/target time. That is
|
|
18
|
-
* what makes `seek(t)` and frame-index seeking reproducible offline.
|
|
19
|
-
* - No parallel scheduler. Evaluator registration reuses the engine's own
|
|
20
|
-
* `SystemPhaseName`/`PHASE_ORDER` vocabulary (`core/types.ts`) — the same
|
|
21
|
-
* phase names every `GameComponent`/system in the engine already uses —
|
|
22
|
-
* so a Theatre binding (D2), a GSAP registration (D7), and a cue
|
|
23
|
-
* evaluator (D5) can each declare which phase they conceptually belong
|
|
24
|
-
* to and be invoked in one deterministic, engine-wide order instead of
|
|
25
|
-
* each subsystem inventing its own ordering rule. IMPORTANT: this only
|
|
26
|
-
* orders evaluators relative to each other WITHIN one `emit()` — i.e.
|
|
27
|
-
* within a single `seek()`/`advance()` call. Registering at `'preRender'`
|
|
28
|
-
* does NOT mean an evaluator runs during the live engine's own
|
|
29
|
-
* `system-runner` `preRender` phase inside a running RAF frame — the
|
|
30
|
-
* clock is independent of the live game loop's phase execution (and
|
|
31
|
-
* during offline export/scrub there is no RAF frame at all). The shared
|
|
32
|
-
* vocabulary buys a familiar, documented ordering convention between
|
|
33
|
-
* clock-side evaluators, not a promise of interleaving with unrelated
|
|
34
|
-
* engine systems that happen to run in a same-named phase during a live
|
|
35
|
-
* frame.
|
|
36
|
-
* - Frame-index seeking for export must be EXACT: frame `n` at fps `f`
|
|
37
|
-
* always evaluates `start + n / f`, computed directly from `n` and `f`
|
|
38
|
-
* on every call — never by accumulating `1/f` repeatedly, which would
|
|
39
|
-
* drift. See `seekFrame` below.
|
|
40
|
-
*/
|
|
41
|
-
/** Sign of time evolution while the clock is actually playing. */
|
|
42
|
-
export type ClockDirection = 'forward' | 'reverse';
|
|
43
|
-
/** Coarse playback state. `advance()` is a no-op unless this is `'playing'`. */
|
|
44
|
-
export type ClockPlaybackState = 'playing' | 'paused' | 'stopped';
|
|
45
|
-
/** Loop/range metadata — the valid time domain `[start, end]`. */
|
|
46
|
-
export interface ClockRange {
|
|
47
|
-
readonly start: number;
|
|
48
|
-
readonly end: number;
|
|
49
|
-
readonly loop: boolean;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* One contiguous, monotonic sweep of time within a single `[start, end]`
|
|
53
|
-
* lap. A step that crosses a loop boundary produces MORE THAN ONE interval
|
|
54
|
-
* (one per lap segment) so a cue evaluator can test each segment
|
|
55
|
-
* independently and never conflate "crossed near the end of lap 1" with
|
|
56
|
-
* "crossed near the start of lap 2".
|
|
57
|
-
*
|
|
58
|
-
* ## Cue-crossing detection convention (half-open)
|
|
59
|
-
*
|
|
60
|
-
* A cue/marker at time `t` is considered CROSSED by an interval iff:
|
|
61
|
-
*
|
|
62
|
-
* - forward interval: `t > interval.from && t <= interval.to`
|
|
63
|
-
* - reverse interval: `t < interval.from && t >= interval.to`
|
|
64
|
-
*
|
|
65
|
-
* This is deliberately half-open on the "from" side and closed on the "to"
|
|
66
|
-
* side (i.e. the endpoint the sweep is *arriving at* counts, the endpoint it
|
|
67
|
-
* *departed from* does not). Consumers (D5 cinematic cues) MUST use exactly
|
|
68
|
-
* this convention, never an inclusive-both-ends test: `seek()` is
|
|
69
|
-
* idempotent and re-asserts a zero-length interval `{from: t, to: t}` on a
|
|
70
|
-
* repeated seek to the same `t` (see `AnimationClock.seek`), and an
|
|
71
|
-
* inclusive-both-ends detector would re-match that zero-length interval
|
|
72
|
-
* (`from === to === t`) and double-fire on every repeated seek. The
|
|
73
|
-
* half-open test above never matches a zero-length interval (`t > t` and
|
|
74
|
-
* `t < t` are both always false), so a fire-once cue evaluator built on it
|
|
75
|
-
* gets idempotent re-seeks "for free" with no extra bookkeeping.
|
|
76
|
-
*/
|
|
77
|
-
export interface ClockInterval {
|
|
78
|
-
readonly from: number;
|
|
79
|
-
readonly to: number;
|
|
80
|
-
readonly direction: ClockDirection;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* What a subscribed evaluator receives on every `seek`/`advance` call that
|
|
84
|
-
* changes (or idempotently re-asserts) the clock's position.
|
|
85
|
-
*/
|
|
86
|
-
export interface ClockCrossing {
|
|
87
|
-
readonly previousTime: number;
|
|
88
|
-
readonly currentTime: number;
|
|
89
|
-
/** Direction of this specific crossing (not necessarily `clock.direction`,
|
|
90
|
-
* which reflects live playback intent — a `seek()` while paused still
|
|
91
|
-
* reports the direction it moved, or the last known direction if it was
|
|
92
|
-
* a no-op re-seek to the same time). */
|
|
93
|
-
readonly direction: ClockDirection;
|
|
94
|
-
readonly timeScale: number;
|
|
95
|
-
/** True iff this crossing wrapped a loop boundary (produced 2+ intervals). */
|
|
96
|
-
readonly looped: boolean;
|
|
97
|
-
/**
|
|
98
|
-
* The monotonic sweep segment(s) covered by this crossing, in
|
|
99
|
-
* chronological evaluation order. Normally exactly one interval
|
|
100
|
-
* `[previousTime, currentTime]`; a loop-wrapping step yields one interval
|
|
101
|
-
* per lap segment traversed. A subscriber determines exactly which cue
|
|
102
|
-
* times were crossed (and in which direction) by testing each interval,
|
|
103
|
-
* never by comparing `previousTime`/`currentTime` directly — that alone
|
|
104
|
-
* is ambiguous across a wrap.
|
|
105
|
-
*/
|
|
106
|
-
readonly intervals: readonly ClockInterval[];
|
|
107
|
-
}
|
|
108
|
-
export type ClockEvaluator = (crossing: ClockCrossing) => void;
|
|
109
|
-
export interface ClockEvaluatorHandle {
|
|
110
|
-
dispose(): void;
|
|
111
|
-
}
|
|
112
|
-
export interface AnimationClockOptions {
|
|
113
|
-
/** Range start, in seconds. Default 0. */
|
|
114
|
-
start?: number;
|
|
115
|
-
/** Range end, in seconds. Default `Math.max(start, 1)`. */
|
|
116
|
-
end?: number;
|
|
117
|
-
/** Whether `advance()` wraps at the range boundary instead of clamping. Default false. */
|
|
118
|
-
loop?: boolean;
|
|
119
|
-
/** Playback rate multiplier, must be finite and >= 0. Default 1. */
|
|
120
|
-
timeScale?: number;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* The engine-owned canonical clock. See the module doc comment above for
|
|
124
|
-
* the design constraints this implementation is bound by.
|
|
125
|
-
*/
|
|
126
|
-
export declare class AnimationClock {
|
|
127
|
-
private _previousTime;
|
|
128
|
-
private _currentTime;
|
|
129
|
-
private _range;
|
|
130
|
-
private _timeScale;
|
|
131
|
-
private _playDirection;
|
|
132
|
-
private _lastCrossingDirection;
|
|
133
|
-
private _playbackState;
|
|
134
|
-
private _evaluators;
|
|
135
|
-
private _registrationCounter;
|
|
136
|
-
constructor(options?: AnimationClockOptions);
|
|
137
|
-
/** Current playhead time, in seconds. */
|
|
138
|
-
get time(): number;
|
|
139
|
-
/** Playhead time immediately before the most recent seek/advance. */
|
|
140
|
-
get previousTime(): number;
|
|
141
|
-
/**
|
|
142
|
-
* Playback direction. `'paused'` whenever `playbackState !== 'playing'`
|
|
143
|
-
* (covers both `pause()` and `stop()`) — matches the spec's literal
|
|
144
|
-
* `direction: forward | reverse | paused` acceptance criterion. The
|
|
145
|
-
* underlying intended direction is preserved across pause/resume; see
|
|
146
|
-
* `play()`.
|
|
147
|
-
*/
|
|
148
|
-
get direction(): ClockDirection | 'paused';
|
|
149
|
-
get playbackState(): ClockPlaybackState;
|
|
150
|
-
get timeScale(): number;
|
|
151
|
-
set timeScale(value: number);
|
|
152
|
-
get range(): ClockRange;
|
|
153
|
-
/**
|
|
154
|
-
* Update loop/range metadata. The current playhead is clamped into the
|
|
155
|
-
* new range if necessary (reported as an ordinary crossing — same
|
|
156
|
-
* evaluator path as `seek`/`advance` — so subscribers observe it).
|
|
157
|
-
*/
|
|
158
|
-
setRange(next: Partial<Pick<ClockRange, 'start' | 'end' | 'loop'>>): void;
|
|
159
|
-
/**
|
|
160
|
-
* Begin/resume playback. `direction` sets (or re-asserts) the intended
|
|
161
|
-
* playback direction for subsequent `advance()` calls; omit it to resume
|
|
162
|
-
* in whatever direction was last set (default `'forward'` the first time).
|
|
163
|
-
*/
|
|
164
|
-
play(direction?: ClockDirection): void;
|
|
165
|
-
/** Halt playback at the current position. `advance()` becomes a no-op. */
|
|
166
|
-
pause(): void;
|
|
167
|
-
/**
|
|
168
|
-
* Halt playback at the current position (distinct from `pause()` only in
|
|
169
|
-
* reported `playbackState`; this unit does not prescribe a reset-to-start
|
|
170
|
-
* policy — that is a cinematic-controller/render-seam decision, D5/I2).
|
|
171
|
-
* `advance()` is a no-op in this state, same as `paused`.
|
|
172
|
-
*/
|
|
173
|
-
stop(): void;
|
|
174
|
-
/**
|
|
175
|
-
* Jump directly to `t` (clamped into `range`). Idempotent: calling
|
|
176
|
-
* `seek(t)` twice in a row leaves `time`/`previousTime` identical to
|
|
177
|
-
* calling it once — the second call is a true no-op (no state mutation,
|
|
178
|
-
* though evaluators still fire so a subscriber can rely on `seek` always
|
|
179
|
-
* producing a crossing for e.g. re-asserting visual state).
|
|
180
|
-
*/
|
|
181
|
-
seek(t: number): ClockCrossing;
|
|
182
|
-
/**
|
|
183
|
-
* Frame-index seek for export (D1 AC): seeks to EXACTLY `range.start +
|
|
184
|
-
* n / fps`, computed fresh from `n`/`fps` on every call. This is what
|
|
185
|
-
* keeps a rendered frame sequence drift-free — unlike repeatedly calling
|
|
186
|
-
* `advance(1 / fps)` `n` times (which accumulates float error), this
|
|
187
|
-
* always derives the same exact double for a given `(n, fps)` pair no
|
|
188
|
-
* matter what the clock's prior state was.
|
|
189
|
-
*/
|
|
190
|
-
seekFrame(n: number, fps: number): ClockCrossing;
|
|
191
|
-
/**
|
|
192
|
-
* Fixed-step advance by `dt` seconds (magnitude; sign of movement comes
|
|
193
|
-
* from `direction`/`play()`, not from `dt`'s sign). A no-op whenever
|
|
194
|
-
* `playbackState !== 'playing'` — this is what makes `advance()` do
|
|
195
|
-
* nothing while paused (D1 AC). Returns `null` for that no-op case;
|
|
196
|
-
* otherwise returns the resulting crossing (which may span multiple loop
|
|
197
|
-
* laps if `dt * timeScale` exceeds the range length).
|
|
198
|
-
*/
|
|
199
|
-
advance(dt: number): ClockCrossing | null;
|
|
200
|
-
/**
|
|
201
|
-
* Register an evaluator against a phase from the engine's own
|
|
202
|
-
* `SystemPhaseName` vocabulary (`core/types.ts`). Evaluators fire on
|
|
203
|
-
* every `seek()`/`advance()` (including idempotent no-op seeks and
|
|
204
|
-
* `setRange` clamps) in `PHASE_ORDER` order, then registration order
|
|
205
|
-
* within a phase — the same "deterministic phase order" every other
|
|
206
|
-
* engine system is invoked in, so a Theatre binding, a registered-GSAP
|
|
207
|
-
* seek, and a cue evaluator can each declare their phase and compose
|
|
208
|
-
* without inventing a second ordering rule.
|
|
209
|
-
*/
|
|
210
|
-
subscribe(phase: SystemPhaseName, evaluator: ClockEvaluator): ClockEvaluatorHandle;
|
|
211
|
-
private emit;
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=animation-clock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"animation-clock.d.ts","sourceRoot":"","sources":["../../src/animation/animation-clock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,gFAAgF;AAChF,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElE,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;6CAGyC;IACzC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACnC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0GD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,oBAAoB,CAAK;gBAErB,OAAO,GAAE,qBAA0B;IAgB/C,yCAAyC;IACzC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,qEAAqE;IACrE,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,cAAc,GAAG,QAAQ,CAEzC;IAED,IAAI,aAAa,IAAI,kBAAkB,CAEtC;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAK1B;IAED,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI;IAczE;;;;OAIG;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI;IAKtC,0EAA0E;IAC1E,KAAK,IAAI,IAAI;IAIb;;;;;OAKG;IACH,IAAI,IAAI,IAAI;IAIZ;;;;;;OAMG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa;IAmB9B;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa;IAOhD;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAsBzC;;;;;;;;;OASG;IACH,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,GAAG,oBAAoB;IAgBlF,OAAO,CAAC,IAAI;CA+Bb"}
|