@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
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in instancer definitions. Importing this module for its side effects
|
|
3
|
-
* registers the built-ins into the instancer registry. Both the runtime factory
|
|
4
|
-
* (scene-loader) and the editor factory (entity-factory) import it so instanced
|
|
5
|
-
* meshes resolve on whichever side builds first.
|
|
6
|
-
*/
|
|
7
|
-
import './grid';
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared light + camera factory (T1.13 — DEFAULTS truth).
|
|
3
|
-
*
|
|
4
|
-
* `createLight`/`createCamera` used to be duplicated verbatim between the
|
|
5
|
-
* runtime loader (`scene-loader.ts`) and the editor preview
|
|
6
|
-
* (`entity-factory.ts`) — both hardcoded the same fallback literals (color
|
|
7
|
-
* '#ffffff', fov 60, near 0.1, far 1000, etc.) that happened to agree with
|
|
8
|
-
* `DEFAULTS.light`/`DEFAULTS.camera` by luck rather than by reading them. Any
|
|
9
|
-
* edit to one copy (or to `DEFAULTS`) could silently diverge from the other.
|
|
10
|
-
*
|
|
11
|
-
* This module is now the ONE place that builds a `THREE.Light`/`THREE.Camera`
|
|
12
|
-
* from a `SceneLight`/`SceneCamera` descriptor, reading its fallbacks from
|
|
13
|
-
* `DEFAULTS` (the single source of truth for scene default values — see
|
|
14
|
-
* `scene/defaults.ts`). Both the loader and the editor import it, so they
|
|
15
|
-
* can no longer disagree.
|
|
16
|
-
*/
|
|
17
|
-
import * as THREE from 'three';
|
|
18
|
-
import type { SceneCamera, SceneLight } from './scene-types';
|
|
19
|
-
/** Build a Three.js light from a `SceneLight` descriptor. */
|
|
20
|
-
export declare function createLight(def: SceneLight): THREE.Light;
|
|
21
|
-
/** Build a Three.js camera from a `SceneCamera` descriptor. */
|
|
22
|
-
export declare function createCamera(def: SceneCamera): THREE.Camera;
|
|
23
|
-
//# sourceMappingURL=light-camera-factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"light-camera-factory.d.ts","sourceRoot":"","sources":["../../src/scene/light-camera-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI7D,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,KAAK,CAAC,KAAK,CAsCxD;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,CAoB3D"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared light + camera factory (T1.13 — DEFAULTS truth).
|
|
3
|
-
*
|
|
4
|
-
* `createLight`/`createCamera` used to be duplicated verbatim between the
|
|
5
|
-
* runtime loader (`scene-loader.ts`) and the editor preview
|
|
6
|
-
* (`entity-factory.ts`) — both hardcoded the same fallback literals (color
|
|
7
|
-
* '#ffffff', fov 60, near 0.1, far 1000, etc.) that happened to agree with
|
|
8
|
-
* `DEFAULTS.light`/`DEFAULTS.camera` by luck rather than by reading them. Any
|
|
9
|
-
* edit to one copy (or to `DEFAULTS`) could silently diverge from the other.
|
|
10
|
-
*
|
|
11
|
-
* This module is now the ONE place that builds a `THREE.Light`/`THREE.Camera`
|
|
12
|
-
* from a `SceneLight`/`SceneCamera` descriptor, reading its fallbacks from
|
|
13
|
-
* `DEFAULTS` (the single source of truth for scene default values — see
|
|
14
|
-
* `scene/defaults.ts`). Both the loader and the editor import it, so they
|
|
15
|
-
* can no longer disagree.
|
|
16
|
-
*/
|
|
17
|
-
import * as THREE from 'three';
|
|
18
|
-
// F2 (docs/VSCN-STRUCTURAL-GAPS-DESIGN.md) — area lights. `RectAreaLight`
|
|
19
|
-
// requires its LTC lookup-texture uniforms initialized once before the first
|
|
20
|
-
// instance is constructed; three.js ships that setup as an addon, not part
|
|
21
|
-
// of core. Imported via the `three/addons/*` alias (package.json `exports`:
|
|
22
|
-
// `"./addons/*": "./examples/jsm/*"` — the identical file as
|
|
23
|
-
// `three/examples/jsm/lights/RectAreaLightUniformsLib.js`) because a literal
|
|
24
|
-
// `/examples/` specifier trips `engine-host-no-game-imports.test.ts`'s
|
|
25
|
-
// game/editor-example guard (a same-substring false positive against this
|
|
26
|
-
// repo's OWN `packages/editor/template/src/examples/` convention, unrelated
|
|
27
|
-
// to three.js's addon folder naming).
|
|
28
|
-
import { RectAreaLightUniformsLib } from 'three/addons/lights/RectAreaLightUniformsLib.js';
|
|
29
|
-
import { DEFAULTS } from './defaults';
|
|
30
|
-
let rectAreaLightUniformsInitialized = false;
|
|
31
|
-
/** Build a Three.js light from a `SceneLight` descriptor. */
|
|
32
|
-
export function createLight(def) {
|
|
33
|
-
const d = DEFAULTS.light;
|
|
34
|
-
const color = def.color ?? d.color;
|
|
35
|
-
const intensity = def.intensity ?? d.intensity;
|
|
36
|
-
switch (def.type) {
|
|
37
|
-
case 'directional':
|
|
38
|
-
return new THREE.DirectionalLight(color, intensity);
|
|
39
|
-
case 'point':
|
|
40
|
-
return new THREE.PointLight(color, intensity, def.distance ?? d.distance);
|
|
41
|
-
case 'spot':
|
|
42
|
-
return new THREE.SpotLight(color, intensity, def.distance ?? d.distance, def.angle ?? d.angle, def.penumbra ?? d.penumbra);
|
|
43
|
-
case 'hemisphere':
|
|
44
|
-
return new THREE.HemisphereLight(color, def.groundColor ?? d.groundColor, intensity);
|
|
45
|
-
case 'area': {
|
|
46
|
-
// No shadow map is ever wired for this light (RectAreaLight does not
|
|
47
|
-
// support shadows in three.js — see the honesty note on the schema
|
|
48
|
-
// field's .describe(); degrade loudly, not silently).
|
|
49
|
-
if (!rectAreaLightUniformsInitialized) {
|
|
50
|
-
RectAreaLightUniformsLib.init();
|
|
51
|
-
rectAreaLightUniformsInitialized = true;
|
|
52
|
-
}
|
|
53
|
-
return new THREE.RectAreaLight(color, intensity, def.width ?? d.width, def.height ?? d.height);
|
|
54
|
-
}
|
|
55
|
-
default:
|
|
56
|
-
return new THREE.DirectionalLight(color, intensity);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/** Build a Three.js camera from a `SceneCamera` descriptor. */
|
|
60
|
-
export function createCamera(def) {
|
|
61
|
-
const d = DEFAULTS.camera;
|
|
62
|
-
const aspect = (def.width ?? d.width) / (def.height ?? d.height);
|
|
63
|
-
if (def.type === 'orthographic') {
|
|
64
|
-
const size = def.orthoSize ?? d.orthoSize;
|
|
65
|
-
return new THREE.OrthographicCamera(-size * aspect, size * aspect, size, -size, def.near ?? d.near, def.far ?? d.far);
|
|
66
|
-
}
|
|
67
|
-
return new THREE.PerspectiveCamera(def.fov ?? d.fov, aspect, def.near ?? d.near, def.far ?? d.far);
|
|
68
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import type { SceneMaterial, SceneMesh } from './scene-types';
|
|
3
|
-
/**
|
|
4
|
-
* Single source of truth for turning a `SceneMesh` / `SceneMaterial` descriptor
|
|
5
|
-
* into Three.js geometry/material. Both the runtime scene-loader and the editor's
|
|
6
|
-
* entity-factory import these, so the editor preview renders exactly what the game
|
|
7
|
-
* renders (the WYSIWYG guarantee in ARCHITECTURE.md). Previously these were
|
|
8
|
-
* copy-pasted in two places and had to be hand-synced — any new material feature
|
|
9
|
-
* added to one and not the other silently broke that guarantee.
|
|
10
|
-
*
|
|
11
|
-
* Callers must have imported the side-effect registration modules
|
|
12
|
-
* (`./geometries`, `./materials`, plus any custom defs) so `buildGeneratedGeometry`
|
|
13
|
-
* and `buildCustomMaterial` resolve their registries.
|
|
14
|
-
*/
|
|
15
|
-
export declare function createGeometry(mesh: SceneMesh): THREE.BufferGeometry;
|
|
16
|
-
export declare function createMaterial(mat?: SceneMaterial): THREE.Material;
|
|
17
|
-
//# sourceMappingURL=material-factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-factory.d.ts","sourceRoot":"","sources":["../../src/scene/material-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE9D;;;;;;;;;;;GAWG;AAEH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,cAAc,CAwBpE;AAGD,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,QAAQ,CAmKlE"}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import { loadTexture } from './asset-loaders';
|
|
3
|
-
import { DEFAULTS } from './defaults';
|
|
4
|
-
import { buildGeneratedGeometry } from './geometry-registry';
|
|
5
|
-
import { buildCustomMaterial } from './material-registry';
|
|
6
|
-
/**
|
|
7
|
-
* Single source of truth for turning a `SceneMesh` / `SceneMaterial` descriptor
|
|
8
|
-
* into Three.js geometry/material. Both the runtime scene-loader and the editor's
|
|
9
|
-
* entity-factory import these, so the editor preview renders exactly what the game
|
|
10
|
-
* renders (the WYSIWYG guarantee in ARCHITECTURE.md). Previously these were
|
|
11
|
-
* copy-pasted in two places and had to be hand-synced — any new material feature
|
|
12
|
-
* added to one and not the other silently broke that guarantee.
|
|
13
|
-
*
|
|
14
|
-
* Callers must have imported the side-effect registration modules
|
|
15
|
-
* (`./geometries`, `./materials`, plus any custom defs) so `buildGeneratedGeometry`
|
|
16
|
-
* and `buildCustomMaterial` resolve their registries.
|
|
17
|
-
*/
|
|
18
|
-
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: straightforward type-based switch with fallback args
|
|
19
|
-
export function createGeometry(mesh) {
|
|
20
|
-
if (mesh.generator) {
|
|
21
|
-
return buildGeneratedGeometry(mesh.generator, mesh.generatorParams ?? {});
|
|
22
|
-
}
|
|
23
|
-
const args = mesh.args ?? [];
|
|
24
|
-
switch (mesh.type) {
|
|
25
|
-
case 'box':
|
|
26
|
-
return new THREE.BoxGeometry(args[0] ?? 1, args[1] ?? 1, args[2] ?? 1);
|
|
27
|
-
case 'sphere':
|
|
28
|
-
return new THREE.SphereGeometry(args[0] ?? 0.5, args[1] ?? 32, args[2] ?? 16);
|
|
29
|
-
case 'plane':
|
|
30
|
-
return new THREE.PlaneGeometry(args[0] ?? 1, args[1] ?? 1);
|
|
31
|
-
case 'cylinder':
|
|
32
|
-
return new THREE.CylinderGeometry(args[0] ?? 0.5, args[1] ?? 0.5, args[2] ?? 1, args[3] ?? 32);
|
|
33
|
-
case 'capsule':
|
|
34
|
-
return new THREE.CapsuleGeometry(args[0] ?? 0.5, args[1] ?? 1, args[2] ?? 4, args[3] ?? 16);
|
|
35
|
-
default:
|
|
36
|
-
return new THREE.BoxGeometry(1, 1, 1);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: flat type-based switch building Three materials
|
|
40
|
-
export function createMaterial(mat) {
|
|
41
|
-
if (!mat)
|
|
42
|
-
return new THREE.MeshStandardMaterial({ color: DEFAULTS.material.color });
|
|
43
|
-
// Only include texture props when actually defined (Three.js warns on undefined values)
|
|
44
|
-
const textures = {};
|
|
45
|
-
if (mat.map)
|
|
46
|
-
textures.map = loadTexture(mat.map);
|
|
47
|
-
if (mat.normalMap)
|
|
48
|
-
textures.normalMap = loadTexture(mat.normalMap);
|
|
49
|
-
if (mat.emissiveMap)
|
|
50
|
-
textures.emissiveMap = loadTexture(mat.emissiveMap);
|
|
51
|
-
if (mat.aoMap)
|
|
52
|
-
textures.aoMap = loadTexture(mat.aoMap);
|
|
53
|
-
if (mat.lightMap)
|
|
54
|
-
textures.lightMap = loadTexture(mat.lightMap);
|
|
55
|
-
if (mat.roughnessMap)
|
|
56
|
-
textures.roughnessMap = loadTexture(mat.roughnessMap);
|
|
57
|
-
if (mat.metalnessMap)
|
|
58
|
-
textures.metalnessMap = loadTexture(mat.metalnessMap);
|
|
59
|
-
// R1c — every fallback below reads DEFAULTS.material.* instead of
|
|
60
|
-
// duplicating its value as a bare literal, so DEFAULTS stays the single
|
|
61
|
-
// source of truth for what an omitted field renders as (see
|
|
62
|
-
// defaults-out-of-scope-consistency.test.ts / material-factory.test.ts's
|
|
63
|
-
// "omitted-field" locks, which fail if either copy drifts from the other).
|
|
64
|
-
const dMat = DEFAULTS.material;
|
|
65
|
-
const sideValue = mat.side ?? dMat.side;
|
|
66
|
-
const side = sideValue === 'back'
|
|
67
|
-
? THREE.BackSide
|
|
68
|
-
: sideValue === 'double'
|
|
69
|
-
? THREE.DoubleSide
|
|
70
|
-
: THREE.FrontSide;
|
|
71
|
-
const opacity = mat.opacity ?? dMat.opacity;
|
|
72
|
-
const transparent = mat.transparent ?? dMat.transparent;
|
|
73
|
-
switch (mat.type) {
|
|
74
|
-
case 'basic':
|
|
75
|
-
return new THREE.MeshBasicMaterial({
|
|
76
|
-
color: mat.color ?? dMat.color,
|
|
77
|
-
...textures,
|
|
78
|
-
lightMapIntensity: mat.lightMapIntensity ?? 1,
|
|
79
|
-
opacity,
|
|
80
|
-
transparent,
|
|
81
|
-
side,
|
|
82
|
-
});
|
|
83
|
-
case 'toon':
|
|
84
|
-
return new THREE.MeshToonMaterial({
|
|
85
|
-
color: mat.color ?? dMat.color,
|
|
86
|
-
...textures,
|
|
87
|
-
lightMapIntensity: mat.lightMapIntensity ?? 1,
|
|
88
|
-
emissive: mat.emissive ?? dMat.emissive,
|
|
89
|
-
emissiveIntensity: mat.emissiveIntensity ?? dMat.emissiveIntensity,
|
|
90
|
-
opacity,
|
|
91
|
-
transparent,
|
|
92
|
-
side,
|
|
93
|
-
});
|
|
94
|
-
case 'physical':
|
|
95
|
-
return new THREE.MeshPhysicalMaterial({
|
|
96
|
-
color: mat.color ?? dMat.color,
|
|
97
|
-
metalness: mat.metalness ?? dMat.metalness,
|
|
98
|
-
roughness: mat.roughness ?? dMat.roughness,
|
|
99
|
-
...textures,
|
|
100
|
-
lightMapIntensity: mat.lightMapIntensity ?? 1,
|
|
101
|
-
emissive: mat.emissive ?? dMat.emissive,
|
|
102
|
-
emissiveIntensity: mat.emissiveIntensity ?? dMat.emissiveIntensity,
|
|
103
|
-
opacity,
|
|
104
|
-
transparent,
|
|
105
|
-
side,
|
|
106
|
-
flatShading: mat.flatShading ?? dMat.flatShading,
|
|
107
|
-
// Clearcoat
|
|
108
|
-
...(mat.clearcoat
|
|
109
|
-
? {
|
|
110
|
-
clearcoat: mat.clearcoat.clearcoat,
|
|
111
|
-
clearcoatRoughness: mat.clearcoat.clearcoatRoughness ?? dMat.clearcoat.clearcoatRoughness,
|
|
112
|
-
...(mat.clearcoat.clearcoatMap
|
|
113
|
-
? { clearcoatMap: loadTexture(mat.clearcoat.clearcoatMap) }
|
|
114
|
-
: {}),
|
|
115
|
-
...(mat.clearcoat.clearcoatRoughnessMap
|
|
116
|
-
? { clearcoatRoughnessMap: loadTexture(mat.clearcoat.clearcoatRoughnessMap) }
|
|
117
|
-
: {}),
|
|
118
|
-
}
|
|
119
|
-
: {}),
|
|
120
|
-
// Transmission — `thickness` used to hardcode a literal `0` here,
|
|
121
|
-
// silently diverging from DEFAULTS.material.transmission.thickness
|
|
122
|
-
// (0.5, per the editor's Transmission inspector default). Fixed:
|
|
123
|
-
// read DEFAULTS directly, like every other fallback in this file.
|
|
124
|
-
...(mat.transmission
|
|
125
|
-
? {
|
|
126
|
-
transmission: mat.transmission.transmission,
|
|
127
|
-
ior: mat.transmission.ior ?? dMat.transmission.ior,
|
|
128
|
-
thickness: mat.transmission.thickness ?? dMat.transmission.thickness,
|
|
129
|
-
...(mat.transmission.attenuationColor
|
|
130
|
-
? { attenuationColor: new THREE.Color(mat.transmission.attenuationColor) }
|
|
131
|
-
: {}),
|
|
132
|
-
attenuationDistance: mat.transmission.attenuationDistance ?? Infinity,
|
|
133
|
-
...(mat.transmission.transmissionMap
|
|
134
|
-
? { transmissionMap: loadTexture(mat.transmission.transmissionMap) }
|
|
135
|
-
: {}),
|
|
136
|
-
}
|
|
137
|
-
: {}),
|
|
138
|
-
// Sheen
|
|
139
|
-
...(mat.sheen
|
|
140
|
-
? {
|
|
141
|
-
sheen: mat.sheen.sheen,
|
|
142
|
-
sheenColor: new THREE.Color(mat.sheen.sheenColor ?? dMat.sheen.sheenColor),
|
|
143
|
-
sheenRoughness: mat.sheen.sheenRoughness ?? dMat.sheen.sheenRoughness,
|
|
144
|
-
...(mat.sheen.sheenColorMap
|
|
145
|
-
? { sheenColorMap: loadTexture(mat.sheen.sheenColorMap) }
|
|
146
|
-
: {}),
|
|
147
|
-
...(mat.sheen.sheenRoughnessMap
|
|
148
|
-
? { sheenRoughnessMap: loadTexture(mat.sheen.sheenRoughnessMap) }
|
|
149
|
-
: {}),
|
|
150
|
-
}
|
|
151
|
-
: {}),
|
|
152
|
-
// Iridescence
|
|
153
|
-
...(mat.iridescence
|
|
154
|
-
? {
|
|
155
|
-
iridescence: mat.iridescence.iridescence,
|
|
156
|
-
iridescenceIOR: mat.iridescence.iridescenceIOR ?? dMat.iridescence.iridescenceIOR,
|
|
157
|
-
iridescenceThicknessRange: mat.iridescence.iridescenceThicknessRange ??
|
|
158
|
-
dMat.iridescence.iridescenceThicknessRange,
|
|
159
|
-
...(mat.iridescence.iridescenceMap
|
|
160
|
-
? { iridescenceMap: loadTexture(mat.iridescence.iridescenceMap) }
|
|
161
|
-
: {}),
|
|
162
|
-
...(mat.iridescence.iridescenceThicknessMap
|
|
163
|
-
? {
|
|
164
|
-
iridescenceThicknessMap: loadTexture(mat.iridescence.iridescenceThicknessMap),
|
|
165
|
-
}
|
|
166
|
-
: {}),
|
|
167
|
-
}
|
|
168
|
-
: {}),
|
|
169
|
-
// Displacement
|
|
170
|
-
...(mat.displacementMap ? { displacementMap: loadTexture(mat.displacementMap) } : {}),
|
|
171
|
-
...(mat.displacementScale !== undefined
|
|
172
|
-
? { displacementScale: mat.displacementScale }
|
|
173
|
-
: {}),
|
|
174
|
-
...(mat.displacementBias !== undefined ? { displacementBias: mat.displacementBias } : {}),
|
|
175
|
-
});
|
|
176
|
-
case 'custom': {
|
|
177
|
-
if (!mat.def) {
|
|
178
|
-
throw new Error('Custom material requires a "def" (registered material name)');
|
|
179
|
-
}
|
|
180
|
-
return buildCustomMaterial(mat.def, mat.uniforms ?? {});
|
|
181
|
-
}
|
|
182
|
-
default:
|
|
183
|
-
return new THREE.MeshStandardMaterial({
|
|
184
|
-
color: mat.color ?? dMat.color,
|
|
185
|
-
metalness: mat.metalness ?? dMat.metalness,
|
|
186
|
-
roughness: mat.roughness ?? dMat.roughness,
|
|
187
|
-
...textures,
|
|
188
|
-
lightMapIntensity: mat.lightMapIntensity ?? 1,
|
|
189
|
-
emissive: mat.emissive ?? dMat.emissive,
|
|
190
|
-
emissiveIntensity: mat.emissiveIntensity ?? dMat.emissiveIntensity,
|
|
191
|
-
opacity,
|
|
192
|
-
transparent,
|
|
193
|
-
side,
|
|
194
|
-
flatShading: mat.flatShading ?? dMat.flatShading,
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type * as THREE from 'three';
|
|
2
|
-
/**
|
|
3
|
-
* A custom-material definition. Registered by name and resolved when a scene
|
|
4
|
-
* material declares `{ type: 'custom', def: <name> }`.
|
|
5
|
-
*
|
|
6
|
-
* The GLSL program lives here in code (the "behavior" half); the per-entity
|
|
7
|
-
* authored uniform values arrive as data on the scene material's `uniforms`
|
|
8
|
-
* (the "data" half) and are passed to `build`. A def may optionally tick its
|
|
9
|
-
* own uniforms each frame (e.g. uTime) via `update`.
|
|
10
|
-
*
|
|
11
|
-
* This is the native extension point of the material system — not a wrapper:
|
|
12
|
-
* `build` returns a real THREE.Material (typically a ShaderMaterial, or a stock
|
|
13
|
-
* material patched via onBeforeCompile), and the engine renders it directly.
|
|
14
|
-
*/
|
|
15
|
-
export interface MaterialDef {
|
|
16
|
-
/** Build a real THREE material from authored uniform values. */
|
|
17
|
-
build(uniforms: Record<string, unknown>): THREE.Material;
|
|
18
|
-
/** Optional per-frame uniform update for self-animating materials. */
|
|
19
|
-
update?(dt: number, material: THREE.Material, uniforms: Record<string, unknown>): void;
|
|
20
|
-
/** Representative flat color (CSS hex) for the editor's "unlit" view mode. */
|
|
21
|
-
previewColor?: string;
|
|
22
|
-
}
|
|
23
|
-
/** Register a custom-material definition under `name`. */
|
|
24
|
-
export declare function registerMaterial(name: string, def: MaterialDef): void;
|
|
25
|
-
/** Look up a registered material definition. */
|
|
26
|
-
export declare function getMaterialDef(name: string): MaterialDef | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* Build a custom material by registered def name. Tags the resulting material's
|
|
29
|
-
* `userData` so the per-frame tick and the editor view-mode override can find it.
|
|
30
|
-
* Throws if the def is unknown (fail loud — same posture as the component registry).
|
|
31
|
-
*/
|
|
32
|
-
export declare function buildCustomMaterial(name: string, uniforms: Record<string, unknown>): THREE.Material;
|
|
33
|
-
/**
|
|
34
|
-
* Tick every custom material under `root` (self-animating uniforms). Called from
|
|
35
|
-
* the runtime `preRender` phase and from the editor's edit-mode RAF — one code
|
|
36
|
-
* path, both modes. Walks the scene graph; materials without a `__matDef` tag are
|
|
37
|
-
* skipped.
|
|
38
|
-
*/
|
|
39
|
-
export declare function tickCustomMaterials(root: THREE.Object3D, dt: number): void;
|
|
40
|
-
//# sourceMappingURL=material-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-registry.d.ts","sourceRoot":"","sources":["../../src/scene/material-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACzD,sEAAsE;IACtE,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvF,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAErE;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,KAAK,CAAC,QAAQ,CAShB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAW1E"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
const registry = new Map();
|
|
2
|
-
/** Register a custom-material definition under `name`. */
|
|
3
|
-
export function registerMaterial(name, def) {
|
|
4
|
-
registry.set(name, def);
|
|
5
|
-
}
|
|
6
|
-
/** Look up a registered material definition. */
|
|
7
|
-
export function getMaterialDef(name) {
|
|
8
|
-
return registry.get(name);
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Build a custom material by registered def name. Tags the resulting material's
|
|
12
|
-
* `userData` so the per-frame tick and the editor view-mode override can find it.
|
|
13
|
-
* Throws if the def is unknown (fail loud — same posture as the component registry).
|
|
14
|
-
*/
|
|
15
|
-
export function buildCustomMaterial(name, uniforms) {
|
|
16
|
-
const def = registry.get(name);
|
|
17
|
-
if (!def) {
|
|
18
|
-
throw new Error(`Custom material def "${name}" not found in material registry`);
|
|
19
|
-
}
|
|
20
|
-
const material = def.build(uniforms ?? {});
|
|
21
|
-
material.userData['__matDef'] = name;
|
|
22
|
-
material.userData['__uniforms'] = uniforms ?? {};
|
|
23
|
-
return material;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Tick every custom material under `root` (self-animating uniforms). Called from
|
|
27
|
-
* the runtime `preRender` phase and from the editor's edit-mode RAF — one code
|
|
28
|
-
* path, both modes. Walks the scene graph; materials without a `__matDef` tag are
|
|
29
|
-
* skipped.
|
|
30
|
-
*/
|
|
31
|
-
export function tickCustomMaterials(root, dt) {
|
|
32
|
-
root.traverse((obj) => {
|
|
33
|
-
const material = obj.material;
|
|
34
|
-
if (!material)
|
|
35
|
-
return;
|
|
36
|
-
const list = Array.isArray(material) ? material : [material];
|
|
37
|
-
for (const mat of list) {
|
|
38
|
-
const defName = mat.userData?.['__matDef'];
|
|
39
|
-
if (!defName)
|
|
40
|
-
continue;
|
|
41
|
-
registry.get(defName)?.update?.(dt, mat, mat.userData['__uniforms'] ?? {});
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in custom-material definitions. Importing this module for its side
|
|
3
|
-
* effects registers the built-ins into the material registry. Both the runtime
|
|
4
|
-
* factory (scene-loader) and the editor factory (entity-factory) import it so
|
|
5
|
-
* custom materials resolve on whichever side builds first.
|
|
6
|
-
*/
|
|
7
|
-
import './water';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scene/materials/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,SAAS,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in custom-material definitions. Importing this module for its side
|
|
3
|
-
* effects registers the built-ins into the material registry. Both the runtime
|
|
4
|
-
* factory (scene-loader) and the editor factory (entity-factory) import it so
|
|
5
|
-
* custom materials resolve on whichever side builds first.
|
|
6
|
-
*/
|
|
7
|
-
import './water';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"water.d.ts","sourceRoot":"","sources":["../../../src/scene/materials/water.ts"],"names":[],"mappings":""}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import { registerMaterial } from '../material-registry';
|
|
3
|
-
/**
|
|
4
|
-
* Built-in "Water" custom material — the proof-of-concept for first-class custom
|
|
5
|
-
* shaders (roadmap item #1). Vertex shader displaces a plane with travelling sine
|
|
6
|
-
* waves driven by `uTime`; fragment tints by `uColor` with a little wave-crest
|
|
7
|
-
* lightening. Demonstrates: authored uniforms (color, waveHeight), a real
|
|
8
|
-
* ShaderMaterial built from scene JSON, and a self-animating uniform (uTime).
|
|
9
|
-
*/
|
|
10
|
-
const vertexShader = /* glsl */ `
|
|
11
|
-
uniform float uTime;
|
|
12
|
-
uniform float uWaveHeight;
|
|
13
|
-
varying float vWave;
|
|
14
|
-
void main() {
|
|
15
|
-
vec3 p = position;
|
|
16
|
-
// PlaneGeometry lies in local XY with normal +Z; displace along the normal so
|
|
17
|
-
// a plane rotated flat (XZ) ripples upward in world Y.
|
|
18
|
-
float wave =
|
|
19
|
-
sin(p.x * 1.5 + uTime) * 0.6 +
|
|
20
|
-
cos(p.y * 1.2 + uTime * 0.8) * 0.4;
|
|
21
|
-
p.z += wave * uWaveHeight;
|
|
22
|
-
vWave = wave;
|
|
23
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4(p, 1.0);
|
|
24
|
-
}
|
|
25
|
-
`;
|
|
26
|
-
const fragmentShader = /* glsl */ `
|
|
27
|
-
uniform vec3 uColor;
|
|
28
|
-
varying float vWave;
|
|
29
|
-
void main() {
|
|
30
|
-
vec3 c = uColor + vWave * 0.12;
|
|
31
|
-
gl_FragColor = vec4(c, 1.0);
|
|
32
|
-
}
|
|
33
|
-
`;
|
|
34
|
-
registerMaterial('Water', {
|
|
35
|
-
previewColor: '#0a5fa5',
|
|
36
|
-
build(uniforms) {
|
|
37
|
-
const color = uniforms['color'] ?? '#0a5fa5';
|
|
38
|
-
const waveHeight = uniforms['waveHeight'] ?? 0.4;
|
|
39
|
-
return new THREE.ShaderMaterial({
|
|
40
|
-
uniforms: {
|
|
41
|
-
uTime: { value: 0 },
|
|
42
|
-
uColor: { value: new THREE.Color(color) },
|
|
43
|
-
uWaveHeight: { value: waveHeight },
|
|
44
|
-
},
|
|
45
|
-
vertexShader,
|
|
46
|
-
fragmentShader,
|
|
47
|
-
});
|
|
48
|
-
},
|
|
49
|
-
update(dt, material) {
|
|
50
|
-
const uTime = material.uniforms['uTime'];
|
|
51
|
-
if (uTime)
|
|
52
|
-
uTime.value += dt;
|
|
53
|
-
},
|
|
54
|
-
});
|
package/dist/scene/parse.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { ZodIssue } from 'zod';
|
|
2
|
-
import type { InstancesFile, MaterialFile, PrefabFile, SceneFile } from './schema';
|
|
3
|
-
export declare class SceneParseError extends Error {
|
|
4
|
-
readonly issues: ZodIssue[];
|
|
5
|
-
/** The offending file's path/URL, when the caller knows it (T4.6). */
|
|
6
|
-
readonly filePath?: string | undefined;
|
|
7
|
-
constructor(issues: ZodIssue[], filePath?: string);
|
|
8
|
-
}
|
|
9
|
-
export declare function parseSceneFile(json: unknown, filePath?: string): SceneFile;
|
|
10
|
-
export declare function parsePrefabFile(json: unknown, filePath?: string): PrefabFile;
|
|
11
|
-
/**
|
|
12
|
-
* Parse a `.mat.json` shared material asset (T4.6). Unlike scene/prefab files,
|
|
13
|
-
* there is no version-range gate yet for this format — `MaterialFileSchema`'s
|
|
14
|
-
* `version` field is RESERVED (see `schema-consumption-map.ts`).
|
|
15
|
-
*/
|
|
16
|
-
export declare function parseMaterialFile(json: unknown, filePath?: string): MaterialFile;
|
|
17
|
-
/**
|
|
18
|
-
* Parse a `.instances.json` instance-transform asset (F3,
|
|
19
|
-
* docs/VSCN-STRUCTURAL-GAPS-DESIGN.md). Mirrors `parseMaterialFile` exactly —
|
|
20
|
-
* no version-range gate (the format is a bare tuple array, no `version` field).
|
|
21
|
-
*/
|
|
22
|
-
export declare function parseInstancesFile(json: unknown, filePath?: string): InstancesFile;
|
|
23
|
-
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/scene/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQnF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE3B,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM;CAQlD;AAmID,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAY1E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAS5E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAMhF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAMlF"}
|