@vgai/engine 0.5.21 → 0.5.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/adapter/adapter-module.d.ts.map +1 -1
- package/dist/adapter/adapter-module.js +2 -4
- package/dist/adapter/adapter-surface.d.ts +1 -1
- package/dist/adapter/adapter-surface.js +1 -1
- package/dist/adapter/authoring.d.ts +19 -21
- package/dist/adapter/authoring.d.ts.map +1 -1
- package/dist/adapter/authoring.js +2 -2
- package/dist/adapter/binding.d.ts +341 -0
- package/dist/adapter/binding.d.ts.map +1 -0
- package/dist/adapter/binding.js +148 -0
- package/dist/adapter/colyseus-networking-adapter.d.ts.map +1 -1
- package/dist/adapter/colyseus-networking-adapter.js +23 -4
- package/dist/adapter/entrypoint-selection-readers.d.ts +24 -0
- package/dist/adapter/entrypoint-selection-readers.d.ts.map +1 -0
- package/dist/adapter/entrypoint-selection-readers.js +63 -0
- package/dist/adapter/entrypoint-selection-source.d.ts.map +1 -1
- package/dist/adapter/entrypoint-selection-source.js +1 -44
- package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts.map +1 -1
- package/dist/adapter/finders/scenes-from-entrypoint-selection.js +1 -52
- package/dist/adapter/host-context.d.ts +46 -15
- package/dist/adapter/host-context.d.ts.map +1 -1
- package/dist/adapter/host-context.js +2 -9
- package/dist/adapter/index.d.ts +11 -12
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/adapter/index.js +9 -10
- package/dist/adapter/ingest/game-contract.d.ts +0 -3
- package/dist/adapter/ingest/game-contract.d.ts.map +1 -1
- package/dist/adapter/ingest/game-contract.js +0 -3
- package/dist/adapter/ingest/scene-capture.d.ts +19 -23
- package/dist/adapter/ingest/scene-capture.d.ts.map +1 -1
- package/dist/adapter/ingest/scene-capture.js +143 -17
- package/dist/adapter/ingest/visible-capture-window.d.ts +34 -0
- package/dist/adapter/ingest/visible-capture-window.d.ts.map +1 -1
- package/dist/adapter/manifest-interpreter.d.ts +59 -0
- package/dist/adapter/manifest-interpreter.d.ts.map +1 -0
- package/dist/adapter/manifest-interpreter.js +50 -0
- package/dist/adapter/native-debug-module.d.ts +71 -3
- package/dist/adapter/native-debug-module.d.ts.map +1 -1
- package/dist/adapter/native-debug-module.js +146 -10
- package/dist/adapter/rapier-physics-adapter.d.ts +31 -1
- package/dist/adapter/rapier-physics-adapter.d.ts.map +1 -1
- package/dist/adapter/rapier-physics-adapter.js +50 -36
- package/dist/adapter/renderer-config.d.ts +3 -3
- package/dist/adapter/renderer-config.js +3 -3
- package/dist/adapter/root-adapter.d.ts +7 -7
- package/dist/adapter/root-adapter.js +4 -4
- package/dist/adapter/system-adapter.d.ts +45 -7
- package/dist/adapter/system-adapter.d.ts.map +1 -1
- package/dist/adapter/system-seam-contract.d.ts +3 -3
- package/dist/adapter/system-seam-contract.js +3 -3
- package/dist/adapter/system-slot.d.ts +168 -0
- package/dist/adapter/system-slot.d.ts.map +1 -0
- package/dist/adapter/system-slot.js +229 -0
- package/dist/adapter/transform.d.ts +11 -1
- package/dist/adapter/transform.d.ts.map +1 -1
- package/dist/ai/navigation.d.ts +17 -1
- package/dist/ai/navigation.d.ts.map +1 -1
- package/dist/ai/navigation.js +26 -5
- package/dist/animation/anim-graph-types.d.ts +11 -3
- package/dist/animation/anim-graph-types.d.ts.map +1 -1
- package/dist/animation/theatre-clock-binding.d.ts +4 -4
- package/dist/animation/theatre-clock-binding.js +4 -4
- package/dist/animation/xstate-animation-binding.d.ts.map +1 -1
- package/dist/animation/xstate-animation-binding.js +2 -2
- package/dist/animation/xstate-animation-meta.d.ts +13 -0
- package/dist/animation/xstate-animation-meta.d.ts.map +1 -1
- package/dist/animation/xstate-animation-meta.js +14 -0
- package/dist/asset-formats/index.d.ts +4 -7
- package/dist/asset-formats/index.d.ts.map +1 -1
- package/dist/asset-formats/index.js +4 -7
- package/dist/asset-formats/render-env.d.ts +5 -8
- package/dist/asset-formats/render-env.d.ts.map +1 -1
- package/dist/asset-formats/render-env.js +3 -6
- package/dist/asset-parse-error.d.ts +2 -5
- package/dist/asset-parse-error.d.ts.map +1 -1
- package/dist/asset-parse-error.js +2 -5
- package/dist/audio/bus-mixer.d.ts +101 -0
- package/dist/audio/bus-mixer.d.ts.map +1 -0
- package/dist/audio/bus-mixer.js +115 -0
- package/dist/canvas-react/index.d.ts +5 -12
- package/dist/canvas-react/index.d.ts.map +1 -1
- package/dist/canvas-react/index.js +5 -12
- package/dist/canvas-react/pixi-react-root-factory.d.ts +34 -21
- package/dist/canvas-react/pixi-react-root-factory.d.ts.map +1 -1
- package/dist/canvas-react/pixi-react-root-factory.js +274 -36
- package/dist/core/countdown-timer.d.ts +118 -0
- package/dist/core/countdown-timer.d.ts.map +1 -0
- package/dist/core/countdown-timer.js +137 -0
- package/dist/core/deferred-commands.d.ts +127 -0
- package/dist/core/deferred-commands.d.ts.map +1 -0
- package/dist/core/deferred-commands.js +132 -0
- package/dist/core/frame-pacing.d.ts +1 -1
- package/dist/core/frame-pacing.js +2 -2
- package/dist/core/game-loop.d.ts +1 -3
- package/dist/core/game-loop.d.ts.map +1 -1
- package/dist/core/game-loop.js +1 -3
- package/dist/core/seeded-random.d.ts +1 -1
- package/dist/core/sim-clock.d.ts +19 -8
- package/dist/core/sim-clock.d.ts.map +1 -1
- package/dist/core/sim-clock.js +18 -7
- package/dist/core/types.d.ts +1 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/defaults.d.ts +6 -14
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +6 -14
- package/dist/dev/instruments.d.ts +38 -11
- package/dist/dev/instruments.d.ts.map +1 -1
- package/dist/dev/instruments.js +81 -11
- package/dist/dev/register-render-vitals.d.ts +1 -4
- package/dist/dev/register-render-vitals.d.ts.map +1 -1
- package/dist/dev/register-render-vitals.js +1 -4
- package/dist/dev/render-debug-adapter.d.ts +2 -3
- package/dist/dev/render-debug-adapter.d.ts.map +1 -1
- package/dist/dev/render-debug-adapter.js +2 -3
- package/dist/dev/render-vitals.d.ts +3 -3
- package/dist/dev/render-vitals.js +3 -3
- package/dist/dev/webgl-frame-capture.d.ts +1 -1
- package/dist/dev/webgl-frame-capture.js +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/input/host-pointer.d.ts +122 -0
- package/dist/input/host-pointer.d.ts.map +1 -0
- package/dist/input/host-pointer.js +160 -0
- package/dist/input/input-manager.d.ts +33 -5
- package/dist/input/input-manager.d.ts.map +1 -1
- package/dist/input/input-manager.js +48 -13
- package/dist/input/rebind-controller.d.ts.map +1 -1
- package/dist/input/rebind-controller.js +6 -8
- package/dist/input/schema.d.ts.map +1 -1
- package/dist/input/schema.js +56 -28
- package/dist/manifest/filename.d.ts.map +1 -1
- package/dist/manifest/filename.js +8 -12
- package/dist/manifest/load.d.ts +10 -10
- package/dist/manifest/load.d.ts.map +1 -1
- package/dist/manifest/load.js +9 -6
- package/dist/manifest/schema.d.ts +17 -21
- package/dist/manifest/schema.d.ts.map +1 -1
- package/dist/manifest/schema.js +45 -35
- package/dist/physics/collider-dimensions.d.ts +8 -12
- package/dist/physics/collider-dimensions.d.ts.map +1 -1
- package/dist/physics/collider-dimensions.js +8 -12
- package/dist/pixi/scene-capture.d.ts +11 -13
- package/dist/pixi/scene-capture.d.ts.map +1 -1
- package/dist/react/world-state.d.ts +1 -1
- package/dist/react/world-state.d.ts.map +1 -1
- package/dist/render/directional-shadow-fit.d.ts +88 -0
- package/dist/render/directional-shadow-fit.d.ts.map +1 -0
- package/dist/render/directional-shadow-fit.js +133 -0
- package/dist/render/environment-capture.d.ts +68 -0
- package/dist/render/environment-capture.d.ts.map +1 -0
- package/dist/render/environment-capture.js +90 -0
- package/dist/render/ibl-override-material.d.ts +97 -0
- package/dist/render/ibl-override-material.d.ts.map +1 -0
- package/dist/render/ibl-override-material.js +114 -0
- package/dist/render/light-camera-factory.d.ts +5 -7
- package/dist/render/light-camera-factory.d.ts.map +1 -1
- package/dist/render/light-camera-factory.js +8 -11
- package/dist/render/material-factory.js +1 -1
- package/dist/render/render-batch-system.d.ts.map +1 -1
- package/dist/render/render-features.d.ts +17 -6
- package/dist/render/render-features.d.ts.map +1 -1
- package/dist/render/render-features.js +0 -28
- package/dist/runtime/create-runtime.d.ts +34 -25
- package/dist/runtime/create-runtime.d.ts.map +1 -1
- package/dist/runtime/create-runtime.js +218 -93
- package/dist/runtime/debug-registry.d.ts +77 -8
- package/dist/runtime/debug-registry.d.ts.map +1 -1
- package/dist/runtime/debug-registry.js +3 -3
- package/dist/runtime/dev-build.d.ts +2 -2
- package/dist/runtime/dev-build.js +2 -2
- package/dist/runtime/game-input-seams.d.ts +51 -0
- package/dist/runtime/game-input-seams.d.ts.map +1 -0
- package/dist/runtime/game-input-seams.js +86 -0
- package/dist/runtime/game.d.ts +104 -40
- package/dist/runtime/game.d.ts.map +1 -1
- package/dist/runtime/game.js +119 -61
- package/dist/runtime/mount-game.d.ts +0 -16
- package/dist/runtime/mount-game.d.ts.map +1 -1
- package/dist/runtime/mount-game.js +26 -41
- package/dist/runtime/mount-manifest.d.ts +22 -14
- package/dist/runtime/mount-manifest.d.ts.map +1 -1
- package/dist/runtime/mount-manifest.js +22 -20
- package/dist/runtime/playtest.d.ts +22 -0
- package/dist/runtime/playtest.d.ts.map +1 -0
- package/dist/runtime/playtest.js +12 -0
- package/dist/runtime/state-bridge.d.ts +2 -3
- package/dist/runtime/state-bridge.d.ts.map +1 -1
- package/dist/runtime/state-bridge.js +1 -0
- package/dist/setup/setup-audio.d.ts +12 -0
- package/dist/setup/setup-audio.d.ts.map +1 -1
- package/dist/setup/setup-audio.js +9 -10
- package/dist/setup/setup-renderer.d.ts +2 -25
- package/dist/setup/setup-renderer.d.ts.map +1 -1
- package/dist/setup/setup-renderer.js +2 -31
- package/dist/world3d-react/index.d.ts +15 -25
- package/dist/world3d-react/index.d.ts.map +1 -1
- package/dist/world3d-react/index.js +15 -25
- package/dist/world3d-react/r3f-root-factory.d.ts +28 -34
- package/dist/world3d-react/r3f-root-factory.d.ts.map +1 -1
- package/dist/world3d-react/r3f-root-factory.js +403 -57
- package/dist/world3d-react/rapier-physics-bridge.d.ts +30 -17
- package/dist/world3d-react/rapier-physics-bridge.d.ts.map +1 -1
- package/dist/world3d-react/rapier-physics-bridge.js +143 -58
- package/package.json +1 -1
- package/schemas/engine-capabilities.json +16 -14
- package/schemas/vgai-project.schema.json +35 -26
- package/src/adapter/adapter-module.ts +2 -4
- package/src/adapter/adapter-surface.ts +1 -1
- package/src/adapter/authoring.ts +19 -21
- package/src/adapter/binding.ts +468 -0
- package/src/adapter/colyseus-networking-adapter.ts +20 -5
- package/src/adapter/entrypoint-selection-readers.ts +66 -0
- package/src/adapter/entrypoint-selection-source.ts +1 -40
- package/src/adapter/finders/scenes-from-entrypoint-selection.ts +1 -48
- package/src/adapter/host-context.ts +45 -15
- package/src/adapter/index.ts +23 -11
- package/src/adapter/ingest/game-contract.ts +0 -3
- package/src/adapter/ingest/scene-capture.ts +190 -39
- package/src/adapter/ingest/visible-capture-window.ts +35 -0
- package/src/adapter/manifest-interpreter.ts +64 -0
- package/src/adapter/native-debug-module.ts +248 -15
- package/src/adapter/rapier-physics-adapter.ts +76 -20
- package/src/adapter/renderer-config.ts +3 -3
- package/src/adapter/root-adapter.ts +7 -7
- package/src/adapter/system-adapter.ts +43 -8
- package/src/adapter/system-seam-contract.ts +3 -3
- package/src/adapter/system-slot.ts +291 -0
- package/src/adapter/transform.ts +18 -1
- package/src/ai/navigation.ts +30 -3
- package/src/animation/anim-graph-types.ts +11 -3
- package/src/animation/theatre-clock-binding.ts +4 -4
- package/src/animation/xstate-animation-binding.ts +2 -2
- package/src/animation/xstate-animation-meta.ts +16 -0
- package/src/asset-formats/index.ts +4 -7
- package/src/asset-formats/render-env.ts +3 -6
- package/src/asset-parse-error.ts +2 -5
- package/src/audio/bus-mixer.ts +161 -0
- package/src/canvas-react/index.ts +5 -21
- package/src/canvas-react/pixi-react-root-factory.tsx +301 -39
- package/src/core/countdown-timer.ts +188 -0
- package/src/core/deferred-commands.ts +174 -0
- package/src/core/frame-pacing.ts +2 -2
- package/src/core/game-loop.ts +1 -3
- package/src/core/seeded-random.ts +1 -1
- package/src/core/sim-clock.ts +19 -8
- package/src/core/types.ts +1 -3
- package/src/defaults.ts +6 -14
- package/src/dev/instruments.ts +108 -11
- package/src/dev/register-render-vitals.ts +1 -4
- package/src/dev/render-debug-adapter.ts +2 -3
- package/src/dev/render-vitals.ts +3 -3
- package/src/dev/webgl-frame-capture.ts +1 -1
- package/src/index.ts +2 -5
- package/src/input/host-pointer.ts +230 -0
- package/src/input/input-manager.ts +49 -13
- package/src/input/input-types.ts +1 -1
- package/src/input/rebind-controller.ts +6 -8
- package/src/input/schema.ts +216 -188
- package/src/manifest/filename.ts +8 -12
- package/src/manifest/load.ts +17 -13
- package/src/manifest/schema.ts +55 -47
- package/src/physics/collider-dimensions.ts +8 -12
- package/src/pixi/scene-capture.ts +12 -15
- package/src/react/world-state.tsx +1 -1
- package/src/render/directional-shadow-fit.ts +156 -0
- package/src/render/environment-capture.ts +102 -0
- package/src/render/ibl-override-material.ts +170 -0
- package/src/render/light-camera-factory.ts +8 -11
- package/src/render/material-factory.ts +1 -1
- package/src/render/render-batch-system.ts +14 -6
- package/src/render/render-features.ts +17 -35
- package/src/runtime/create-runtime.ts +270 -108
- package/src/runtime/debug-registry.ts +84 -8
- package/src/runtime/dev-build.ts +2 -2
- package/src/runtime/game-input-seams.ts +108 -0
- package/src/runtime/game.ts +231 -85
- package/src/runtime/mount-game.ts +31 -57
- package/src/runtime/mount-manifest.ts +47 -36
- package/src/runtime/playtest.ts +22 -0
- package/src/runtime/state-bridge.ts +3 -3
- package/src/setup/setup-audio.ts +21 -11
- package/src/setup/setup-renderer.ts +2 -61
- package/src/world3d-react/index.ts +15 -31
- package/src/world3d-react/r3f-root-factory.tsx +451 -60
- package/src/world3d-react/rapier-physics-bridge.tsx +154 -58
- package/dist/adapter/setup-three-root-adapter.d.ts +0 -86
- package/dist/adapter/setup-three-root-adapter.d.ts.map +0 -1
- package/dist/adapter/setup-three-root-adapter.js +0 -908
- 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 -31
- package/dist/asset-registry.d.ts +0 -38
- package/dist/asset-registry.d.ts.map +0 -1
- package/dist/asset-registry.js +0 -66
- package/dist/canvas-react/engine-bridge.d.ts +0 -45
- package/dist/canvas-react/engine-bridge.d.ts.map +0 -1
- package/dist/canvas-react/engine-bridge.js +0 -45
- package/dist/canvas-react/pixi-react-adapter.d.ts +0 -77
- package/dist/canvas-react/pixi-react-adapter.d.ts.map +0 -1
- package/dist/canvas-react/pixi-react-adapter.js +0 -294
- package/dist/canvas-react/world-context.d.ts +0 -98
- package/dist/canvas-react/world-context.d.ts.map +0 -1
- package/dist/canvas-react/world-context.js +0 -173
- 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/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/lod.d.ts +0 -13
- package/dist/render/lod.d.ts.map +0 -1
- package/dist/render/lod.js +0 -16
- package/dist/runtime/types.d.ts +0 -303
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/runtime/types.js +0 -1
- package/dist/world3d-react/engine-bridge.d.ts +0 -47
- package/dist/world3d-react/engine-bridge.d.ts.map +0 -1
- package/dist/world3d-react/engine-bridge.js +0 -73
- package/dist/world3d-react/r3f-adapter.d.ts +0 -58
- package/dist/world3d-react/r3f-adapter.d.ts.map +0 -1
- package/dist/world3d-react/r3f-adapter.js +0 -634
- package/dist/world3d-react/world-context.d.ts +0 -182
- package/dist/world3d-react/world-context.d.ts.map +0 -1
- package/dist/world3d-react/world-context.js +0 -235
- package/src/adapter/setup-three-root-adapter.ts +0 -1032
- package/src/animation/clip-map.ts +0 -34
- package/src/asset-registry.ts +0 -89
- package/src/canvas-react/engine-bridge.ts +0 -59
- package/src/canvas-react/pixi-react-adapter.tsx +0 -356
- package/src/canvas-react/world-context.ts +0 -253
- package/src/dev/debug-draw.ts +0 -80
- package/src/render/auto-batcher.ts +0 -168
- package/src/render/lod.ts +0 -17
- package/src/runtime/types.ts +0 -328
- package/src/world3d-react/engine-bridge.ts +0 -86
- package/src/world3d-react/r3f-adapter.tsx +0 -717
- package/src/world3d-react/world-context.ts +0 -358
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
// The project manifest's FILENAME. There is exactly ONE.
|
|
2
2
|
//
|
|
3
|
-
// The manifest is `vgai.project.json
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// software, no such constituency exists, and a second way to spell the
|
|
9
|
-
// manifest is the defect — two accepted names meant both kept being written,
|
|
10
|
-
// and copies of the "try both" probe grew in five modules that agreed with the
|
|
11
|
-
// real resolver only by coincidence.
|
|
3
|
+
// The manifest is `vgai.project.json`, and NOTHING reads a second spelling
|
|
4
|
+
// (the legacy-removal doctrine, `docs/ARCHITECTURE-CORE.md` §Vocabulary). Two
|
|
5
|
+
// accepted names is the defect, not the convenience: both get written, and
|
|
6
|
+
// copies of the "try both" probe spread into modules that agree with the real
|
|
7
|
+
// resolver only by coincidence.
|
|
12
8
|
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
9
|
+
// The removed name REJECTS LOUDLY, naming the exact one-line fix — never
|
|
10
|
+
// silently ignored, never redirected. A directory
|
|
15
11
|
// carrying only `vgai.game.json` is an error with a `git mv` in the message,
|
|
16
12
|
// not a project that quietly fails to open.
|
|
17
13
|
//
|
|
@@ -35,7 +31,7 @@ export function isManifestFilename(name) {
|
|
|
35
31
|
*/
|
|
36
32
|
export function removedManifestFilenameMessage(where) {
|
|
37
33
|
return (`${where}: found \`${REMOVED_MANIFEST_FILENAME}\` and no \`${MANIFEST_FILENAME}\`. ` +
|
|
38
|
-
`\`${REMOVED_MANIFEST_FILENAME}\` was REMOVED (
|
|
34
|
+
`\`${REMOVED_MANIFEST_FILENAME}\` was REMOVED (the legacy-removal doctrine, ` +
|
|
39
35
|
'docs/ARCHITECTURE-CORE.md §Vocabulary) — nothing reads it any more, and it is ' +
|
|
40
36
|
'deliberately NOT read as a fallback, because a second accepted name is the defect.\n' +
|
|
41
37
|
`Fix: rename it — \`git mv ${REMOVED_MANIFEST_FILENAME} ${MANIFEST_FILENAME}\`. ` +
|
package/dist/manifest/load.d.ts
CHANGED
|
@@ -31,16 +31,6 @@ export type ResolvedAdapter = {
|
|
|
31
31
|
readonly assets: Record<string, string> | undefined;
|
|
32
32
|
readonly domStubs: string[] | undefined;
|
|
33
33
|
readonly captureTimeoutMs: number | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* The component this root'''s WORLD is, in the game'''s own source (see the
|
|
36
|
-
* field'''s schema description). Present ⇒ Edit mounts THAT component
|
|
37
|
-
* alone as a still design-time document and Play mounts the game
|
|
38
|
-
* through `entry`; absent ⇒ `entry` is what both modes mount.
|
|
39
|
-
*/
|
|
40
|
-
readonly world?: {
|
|
41
|
-
readonly entry: string;
|
|
42
|
-
readonly export?: string | undefined;
|
|
43
|
-
} | undefined;
|
|
44
34
|
};
|
|
45
35
|
export interface ResolvedAdapterRoot {
|
|
46
36
|
readonly id: string;
|
|
@@ -48,6 +38,16 @@ export interface ResolvedAdapterRoot {
|
|
|
48
38
|
readonly description: string | undefined;
|
|
49
39
|
readonly adapter: ResolvedAdapter;
|
|
50
40
|
readonly entry: string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* The component this root's WORLD is, in the game's own source (see the
|
|
43
|
+
* field's schema description). Present ⇒ Edit mounts THAT component alone as
|
|
44
|
+
* its design-time document and Play mounts the game through `entry`;
|
|
45
|
+
* absent ⇒ `entry` is what both modes mount.
|
|
46
|
+
*/
|
|
47
|
+
readonly world?: {
|
|
48
|
+
readonly entry: string;
|
|
49
|
+
readonly export: string | undefined;
|
|
50
|
+
} | undefined;
|
|
51
51
|
readonly zOrder: number;
|
|
52
52
|
readonly pausable: boolean;
|
|
53
53
|
readonly loop: 'gated' | 'self-driven';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/manifest/load.ts"],"names":[],"mappings":"AAeA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,UAAU,CAAC;AAMlB,wCAAwC;AACxC,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC9C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC9C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAGxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/manifest/load.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest/load.js
CHANGED
|
@@ -79,7 +79,6 @@ function resolveAdapter(root) {
|
|
|
79
79
|
assets: ingest.assets,
|
|
80
80
|
domStubs: ingest.domStubs,
|
|
81
81
|
captureTimeoutMs: ingest.captureTimeoutMs,
|
|
82
|
-
world: ingest.world,
|
|
83
82
|
};
|
|
84
83
|
}
|
|
85
84
|
function checkEngineVersionPin(version) {
|
|
@@ -95,11 +94,14 @@ function checkEngineVersionPin(version) {
|
|
|
95
94
|
* `id` drives uniqueness; `adapter` (incl. its surface and
|
|
96
95
|
* `module`/`ingest.*` sub-fields) drives adapter identity
|
|
97
96
|
* resolution; `entry` drives the entry cross-field rule and is
|
|
98
|
-
* carried through; `
|
|
97
|
+
* carried through; `world` is carried through for the ONE reader that mounts a
|
|
98
|
+
* design-time document (the editor's design session) and is deliberately not
|
|
99
|
+
* cross-checked against `entry` — the two name different modules on purpose;
|
|
100
|
+
* `zOrder` drives the final sort; `pausable`/`loop` are
|
|
99
101
|
* carried through as-is (their consumers are the runtime/CLI, T3.2/T3.3);
|
|
100
102
|
* `description` (T3.3
|
|
101
103
|
* slice 3) is carried through as-is — its consumer today is
|
|
102
|
-
* `resolveIngestDescriptor` (packages/editor/src/
|
|
104
|
+
* `resolveIngestDescriptor` (packages/editor/src/ingest/resolve-three.ts), which
|
|
103
105
|
* threads an ingest-three root's description into `IngestGame.description`.
|
|
104
106
|
*/
|
|
105
107
|
function resolveRoot(root) {
|
|
@@ -111,6 +113,7 @@ function resolveRoot(root) {
|
|
|
111
113
|
description: root.description,
|
|
112
114
|
adapter,
|
|
113
115
|
entry: root.entry,
|
|
116
|
+
world: root.world === undefined ? undefined : { entry: root.world.entry, export: root.world.export },
|
|
114
117
|
zOrder: root.zOrder,
|
|
115
118
|
pausable: root.pausable,
|
|
116
119
|
loop: root.loop,
|
|
@@ -126,9 +129,9 @@ function resolveRoot(root) {
|
|
|
126
129
|
* any Zod validation failure or cross-field rule violation.
|
|
127
130
|
*/
|
|
128
131
|
export function loadGameManifest(raw) {
|
|
129
|
-
// Removed-format guard FIRST, on the raw value: a
|
|
130
|
-
// would otherwise fail Zod's `roots` discriminated union with
|
|
131
|
-
// shape error instead of
|
|
132
|
+
// Removed-format guard FIRST, on the raw value: a root declaring a removed
|
|
133
|
+
// content field would otherwise fail Zod's `roots` discriminated union with
|
|
134
|
+
// a confusing shape error instead of the named migration message.
|
|
132
135
|
const parsed = GameManifestSchema.safeParse(raw);
|
|
133
136
|
if (!parsed.success) {
|
|
134
137
|
// D-V6: the `roots` `superRefine`'s composition issues — a duplicate root
|
|
@@ -28,10 +28,6 @@ export declare const RootAdapterSchema: z.ZodPipe<z.ZodTransform<unknown, unknow
|
|
|
28
28
|
moduleAliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
29
29
|
domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
30
30
|
captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
31
|
-
world: z.ZodOptional<z.ZodObject<{
|
|
32
|
-
entry: z.ZodString;
|
|
33
|
-
export: z.ZodOptional<z.ZodString>;
|
|
34
|
-
}, z.core.$strict>>;
|
|
35
31
|
}, z.core.$strict>;
|
|
36
32
|
}, z.core.$strict>]>>;
|
|
37
33
|
export type RootAdapter = z.infer<typeof RootAdapterSchema>;
|
|
@@ -62,14 +58,14 @@ export declare const AdapterRootSchema: z.ZodObject<{
|
|
|
62
58
|
moduleAliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
63
59
|
domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
64
60
|
captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
65
|
-
world: z.ZodOptional<z.ZodObject<{
|
|
66
|
-
entry: z.ZodString;
|
|
67
|
-
export: z.ZodOptional<z.ZodString>;
|
|
68
|
-
}, z.core.$strict>>;
|
|
69
61
|
}, z.core.$strict>;
|
|
70
62
|
}, z.core.$strict>]>>;
|
|
71
63
|
entry: z.ZodOptional<z.ZodString>;
|
|
72
64
|
styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
65
|
+
world: z.ZodOptional<z.ZodObject<{
|
|
66
|
+
entry: z.ZodString;
|
|
67
|
+
export: z.ZodOptional<z.ZodString>;
|
|
68
|
+
}, z.core.$strict>>;
|
|
73
69
|
zOrder: z.ZodDefault<z.ZodNumber>;
|
|
74
70
|
pausable: z.ZodDefault<z.ZodBoolean>;
|
|
75
71
|
loop: z.ZodDefault<z.ZodEnum<{
|
|
@@ -119,7 +115,7 @@ export declare const GameManifestSchema: z.ZodObject<{
|
|
|
119
115
|
version: z.ZodString;
|
|
120
116
|
engine: z.ZodObject<{
|
|
121
117
|
version: z.ZodString;
|
|
122
|
-
}, z.core.$
|
|
118
|
+
}, z.core.$strict>;
|
|
123
119
|
roots: z.ZodArray<z.ZodObject<{
|
|
124
120
|
id: z.ZodString;
|
|
125
121
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -147,14 +143,14 @@ export declare const GameManifestSchema: z.ZodObject<{
|
|
|
147
143
|
moduleAliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
148
144
|
domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
149
145
|
captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
150
|
-
world: z.ZodOptional<z.ZodObject<{
|
|
151
|
-
entry: z.ZodString;
|
|
152
|
-
export: z.ZodOptional<z.ZodString>;
|
|
153
|
-
}, z.core.$strict>>;
|
|
154
146
|
}, z.core.$strict>;
|
|
155
147
|
}, z.core.$strict>]>>;
|
|
156
148
|
entry: z.ZodOptional<z.ZodString>;
|
|
157
149
|
styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
150
|
+
world: z.ZodOptional<z.ZodObject<{
|
|
151
|
+
entry: z.ZodString;
|
|
152
|
+
export: z.ZodOptional<z.ZodString>;
|
|
153
|
+
}, z.core.$strict>>;
|
|
158
154
|
zOrder: z.ZodDefault<z.ZodNumber>;
|
|
159
155
|
pausable: z.ZodDefault<z.ZodBoolean>;
|
|
160
156
|
loop: z.ZodDefault<z.ZodEnum<{
|
|
@@ -169,9 +165,9 @@ export declare const GameManifestSchema: z.ZodObject<{
|
|
|
169
165
|
id: z.ZodString;
|
|
170
166
|
label: z.ZodString;
|
|
171
167
|
roots: z.ZodArray<z.ZodString>;
|
|
172
|
-
}, z.core.$
|
|
173
|
-
}, z.core.$
|
|
174
|
-
}, z.core.$
|
|
168
|
+
}, z.core.$strict>>>;
|
|
169
|
+
}, z.core.$strict>>;
|
|
170
|
+
}, z.core.$strict>>;
|
|
175
171
|
server: z.ZodOptional<z.ZodObject<{
|
|
176
172
|
room: z.ZodString;
|
|
177
173
|
endpoint: z.ZodOptional<z.ZodString>;
|
|
@@ -181,28 +177,28 @@ export declare const GameManifestSchema: z.ZodObject<{
|
|
|
181
177
|
accessToken: z.ZodString;
|
|
182
178
|
expiresAt: z.ZodNumber;
|
|
183
179
|
}, z.core.$strict>>;
|
|
184
|
-
}, z.core.$
|
|
180
|
+
}, z.core.$strict>>;
|
|
185
181
|
resolution: z.ZodOptional<z.ZodObject<{
|
|
186
182
|
width: z.ZodNumber;
|
|
187
183
|
height: z.ZodNumber;
|
|
188
|
-
}, z.core.$
|
|
184
|
+
}, z.core.$strict>>;
|
|
189
185
|
rendering: z.ZodOptional<z.ZodObject<{
|
|
190
186
|
antialias: z.ZodBoolean;
|
|
191
187
|
}, z.core.$strict>>;
|
|
192
188
|
debug: z.ZodOptional<z.ZodObject<{
|
|
193
189
|
allowInProduction: z.ZodBoolean;
|
|
194
|
-
}, z.core.$
|
|
190
|
+
}, z.core.$strict>>;
|
|
195
191
|
determinism: z.ZodOptional<z.ZodObject<{
|
|
196
192
|
seededRandom: z.ZodBoolean;
|
|
197
193
|
defaultSeed: z.ZodOptional<z.ZodNumber>;
|
|
198
|
-
}, z.core.$
|
|
194
|
+
}, z.core.$strict>>;
|
|
199
195
|
budget: z.ZodOptional<z.ZodObject<{
|
|
200
196
|
frameCpuMsP95: z.ZodOptional<z.ZodNumber>;
|
|
201
197
|
physicsMsP95: z.ZodOptional<z.ZodNumber>;
|
|
202
198
|
maxEntities: z.ZodOptional<z.ZodNumber>;
|
|
203
199
|
maxDrawCalls: z.ZodOptional<z.ZodNumber>;
|
|
204
200
|
maxTriangles: z.ZodOptional<z.ZodNumber>;
|
|
205
|
-
}, z.core.$
|
|
201
|
+
}, z.core.$strict>>;
|
|
206
202
|
learn: z.ZodOptional<z.ZodObject<{
|
|
207
203
|
kind: z.ZodEnum<{
|
|
208
204
|
starter: "starter";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAsFhD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;qBA0H3B,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqFnB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAkB5D,eAAO,MAAM,eAAe;;;;;EAMzB,CAAC;AACJ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,qBAAqB;;;;EAEa,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;kBAqC7B,CAAC;AACJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8TyD,CAAC;AAEzF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
package/dist/manifest/schema.js
CHANGED
|
@@ -7,14 +7,9 @@
|
|
|
7
7
|
// has a `.describe()` (repo policy — powers `scripts/generate-schema.ts` and
|
|
8
8
|
// the T4.1 schema-walk coverage test).
|
|
9
9
|
//
|
|
10
|
-
// Naming:
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
// `Schema` suffix; that sketch is explicitly a
|
|
14
|
-
// "Zod sketch" the doc tells implementers to adapt to real code style
|
|
15
|
-
// ("mirror the style in scene/schema/scene-file.ts" per CLAUDE.md), so the
|
|
16
|
-
// schema consts here are suffixed and the bare names are reserved for the
|
|
17
|
-
// inferred types, matching every other schema file in the repo.
|
|
10
|
+
// Naming: `XxxSchema` is the Zod schema, `Xxx` the inferred type. Every schema
|
|
11
|
+
// file in this repo reads that way, so the bare names stay reserved for the
|
|
12
|
+
// types.
|
|
18
13
|
//
|
|
19
14
|
// Adapter surface values mirror `AdapterSurface` in
|
|
20
15
|
// `packages/engine/src/runtime/game.ts` (`'three' | 'canvas' | 'dom'`)
|
|
@@ -53,7 +48,7 @@ export const GAME_MANIFEST_VERSION = 2;
|
|
|
53
48
|
// which is exactly why react is a `dom` root rather than its own kind.
|
|
54
49
|
//
|
|
55
50
|
// The pre-rename spellings `threejs`/`pixijs`/`react` are REMOVED, not
|
|
56
|
-
// normalized (
|
|
51
|
+
// normalized (the legacy-removal doctrine at
|
|
57
52
|
// ARCHITECTURE-CORE §Vocabulary). Normalization was a second way to say the
|
|
58
53
|
// same thing: two spellings both parsed, so both kept being written, and
|
|
59
54
|
// SECOND readers grew (the dev server's surface probe, the hosted-editor
|
|
@@ -75,8 +70,8 @@ const REMOVED_BARE_ADAPTER_SPELLING = {
|
|
|
75
70
|
};
|
|
76
71
|
function removedSpellingMessage(bad, where) {
|
|
77
72
|
const canonical = where === 'adapter' ? REMOVED_BARE_ADAPTER_SPELLING[bad] : REMOVED_SURFACE_SPELLING[bad];
|
|
78
|
-
return (`Game manifest: \`${where}\`: "${bad}" — that spelling was REMOVED
|
|
79
|
-
'ARCHITECTURE-CORE §Vocabulary). The surface vocabulary is ' +
|
|
73
|
+
return (`Game manifest: \`${where}\`: "${bad}" — that spelling was REMOVED ` +
|
|
74
|
+
'(ARCHITECTURE-CORE §Vocabulary). The surface vocabulary is ' +
|
|
80
75
|
"'three' | 'canvas' | 'dom' — what the HOST HANDS the root, never which " +
|
|
81
76
|
`library it uses.\nFix: change \`${where}\` to "${canonical}".`);
|
|
82
77
|
}
|
|
@@ -194,28 +189,6 @@ export const RootAdapterSchema = z
|
|
|
194
189
|
.describe("How long the host waits for this game's first captured frame before the mount " +
|
|
195
190
|
'FAILS by name. A game that needs a long boot (streamed world assets, a menu ' +
|
|
196
191
|
'the player must clear) raises it; the default is 10s.'),
|
|
197
|
-
world: z
|
|
198
|
-
.object({
|
|
199
|
-
entry: z
|
|
200
|
-
.string()
|
|
201
|
-
.describe("Project-relative path to the game's OWN module exporting that component"),
|
|
202
|
-
export: z
|
|
203
|
-
.string()
|
|
204
|
-
.optional()
|
|
205
|
-
.describe('Named export to read from that module; omit when the module default-exports it'),
|
|
206
|
-
})
|
|
207
|
-
.strict()
|
|
208
|
-
.optional()
|
|
209
|
-
.describe("The component this root's WORLD is, in the game's own source — a three root " +
|
|
210
|
-
'whose scene is a React/R3F component tree names it here. Two readers, and ' +
|
|
211
|
-
'they mount different things: the editor mounts THIS component alone as the ' +
|
|
212
|
-
"root's design-time document (a still scene — its frameloop runs ONE bounded " +
|
|
213
|
-
'settle at mount, so physics-owned bodies rest at their authored spawn, and ' +
|
|
214
|
-
'is then frozen forever; nothing moves in Edit), while `entry` ' +
|
|
215
|
-
'above stays what PLAY mounts (the whole game, its own composition, its own ' +
|
|
216
|
-
'HUD and loop). Declaring it is what lets a scene be a scene in Edit rather ' +
|
|
217
|
-
"than the running game's mount surfaces. A game whose world is not a " +
|
|
218
|
-
'component omits it and keeps mounting through `entry` in both modes.'),
|
|
219
192
|
})
|
|
220
193
|
.strict()
|
|
221
194
|
.describe('Ingest adapter configuration for an unmodified game (a repo-vendored game or your ' +
|
|
@@ -257,6 +230,33 @@ export const AdapterRootSchema = z
|
|
|
257
230
|
"mounts the root's DOM in (`@scope`; packages/editor/server/scoped-game-css.ts), so " +
|
|
258
231
|
"the HUD is styled on the UI board's story cards and on the game surface without the " +
|
|
259
232
|
'editor seeing a single one of those rules. The files themselves are never modified.'),
|
|
233
|
+
world: z
|
|
234
|
+
.object({
|
|
235
|
+
entry: z
|
|
236
|
+
.string()
|
|
237
|
+
.describe("Project-relative path to the game's OWN module exporting that component"),
|
|
238
|
+
export: z
|
|
239
|
+
.string()
|
|
240
|
+
.optional()
|
|
241
|
+
.describe('Named export to read from that module; omit when the module default-exports it'),
|
|
242
|
+
})
|
|
243
|
+
.strict()
|
|
244
|
+
.optional()
|
|
245
|
+
.describe("The component this root's WORLD is, in the game's own source. Two readers, and they " +
|
|
246
|
+
"mount different things: the EDITOR mounts THIS component alone as the root's " +
|
|
247
|
+
'design-time document, while `entry` above stays what PLAY mounts (the whole game — ' +
|
|
248
|
+
'its own composition, its own HUD, its own loop). It sits on the ROOT rather than ' +
|
|
249
|
+
'inside any one adapter because the split it names is not about ingest: a game whose ' +
|
|
250
|
+
'runtime entry is a SHELL over the thing an author actually edits has this shape ' +
|
|
251
|
+
'whether the source is vendored or first-party. Two shipped cases, one field: an ' +
|
|
252
|
+
'ingested game whose `entry` mounts game+HUD+loop while the named export is the world ' +
|
|
253
|
+
'alone; and a translated Unity/Godot port, whose `entry` is a scene HOST that mounts ' +
|
|
254
|
+
'the scene the built player starts on (`EditorBuildSettings` index 0 — routinely a ' +
|
|
255
|
+
'menu with no 3D content at all) while the named export opens the scene an author ' +
|
|
256
|
+
"edits. That is Unity's own split: build settings say where the PLAYER starts; the " +
|
|
257
|
+
'Scene view opens a scene, and Unity keeps that fact somewhere else entirely. A game ' +
|
|
258
|
+
'whose world is not a separate component omits this and keeps mounting through ' +
|
|
259
|
+
'`entry` in both modes.'),
|
|
260
260
|
zOrder: z
|
|
261
261
|
.number()
|
|
262
262
|
.int()
|
|
@@ -350,6 +350,7 @@ export const GameManifestSchema = z
|
|
|
350
350
|
.describe('Exact @vgai/engine semver this game was scaffolded/last upgraded against — an ' +
|
|
351
351
|
'identity pin, not a range'),
|
|
352
352
|
})
|
|
353
|
+
.strict()
|
|
353
354
|
.describe('Engine version pin'),
|
|
354
355
|
roots: z
|
|
355
356
|
.array(AdapterRootSchema)
|
|
@@ -422,20 +423,24 @@ export const GameManifestSchema = z
|
|
|
422
423
|
.optional()
|
|
423
424
|
.describe('Optional editor labels keyed by adapter-root id'),
|
|
424
425
|
groups: z
|
|
425
|
-
.array(z
|
|
426
|
+
.array(z
|
|
427
|
+
.object({
|
|
426
428
|
id: z.string().describe('Unique editor-only group id'),
|
|
427
429
|
label: z.string().describe('Editor-only group label'),
|
|
428
430
|
roots: z
|
|
429
431
|
.array(z.string())
|
|
430
432
|
.min(1)
|
|
431
433
|
.describe('Adapter-root ids shown under this editor-only group'),
|
|
432
|
-
})
|
|
434
|
+
})
|
|
435
|
+
.strict())
|
|
433
436
|
.optional()
|
|
434
437
|
.describe('Optional editor-only hierarchy groups'),
|
|
435
438
|
})
|
|
439
|
+
.strict()
|
|
436
440
|
.optional()
|
|
437
441
|
.describe('Editor projection for native adapter roots'),
|
|
438
442
|
})
|
|
443
|
+
.strict()
|
|
439
444
|
.optional()
|
|
440
445
|
.describe('Editor-only authoring metadata; never runtime ownership'),
|
|
441
446
|
server: z
|
|
@@ -469,6 +474,7 @@ export const GameManifestSchema = z
|
|
|
469
474
|
.optional()
|
|
470
475
|
.describe('Deploy-baked managed-relay credentials. NEVER hand-authored in source — written only into the staged manifest by `vgai deploy` and fetched at runtime by the standalone client'),
|
|
471
476
|
})
|
|
477
|
+
.strict()
|
|
472
478
|
.optional()
|
|
473
479
|
.describe('Multiplayer server config (Colyseus), if this game registers a room'),
|
|
474
480
|
resolution: z
|
|
@@ -476,6 +482,7 @@ export const GameManifestSchema = z
|
|
|
476
482
|
width: z.number().describe('Canvas width in pixels'),
|
|
477
483
|
height: z.number().describe('Canvas height in pixels'),
|
|
478
484
|
})
|
|
485
|
+
.strict()
|
|
479
486
|
.optional()
|
|
480
487
|
.describe('Canvas resolution'),
|
|
481
488
|
rendering: z
|
|
@@ -504,6 +511,7 @@ export const GameManifestSchema = z
|
|
|
504
511
|
'production builds. Default false: the bridge only installs in dev builds. The ' +
|
|
505
512
|
'runtime reader is the debug-bridge installer (D18).'),
|
|
506
513
|
})
|
|
514
|
+
.strict()
|
|
507
515
|
.optional()
|
|
508
516
|
.describe('Debug-bridge production gating (D18) — governs whether ?vgai-debug=1 installs ' +
|
|
509
517
|
'window.__vgai outside dev builds.'),
|
|
@@ -530,6 +538,7 @@ export const GameManifestSchema = z
|
|
|
530
538
|
'even higher-precedence explicit config value a host passes directly. Optional — ' +
|
|
531
539
|
"omit to fall back to the runtime's own fixed default seed."),
|
|
532
540
|
})
|
|
541
|
+
.strict()
|
|
533
542
|
.optional()
|
|
534
543
|
.describe('Seeded-RNG determinism contract (D15) — governs ' +
|
|
535
544
|
'whether ctx.random is boot-seeded from a reproducible seed and whether the ' +
|
|
@@ -576,6 +585,7 @@ export const GameManifestSchema = z
|
|
|
576
585
|
"(the profiler's per-frame render.triangles, from renderer.info). Exact and " +
|
|
577
586
|
'deterministic under a seed.'),
|
|
578
587
|
})
|
|
588
|
+
.strict()
|
|
579
589
|
.refine((budget) => Object.values(budget).some((value) => value !== undefined), {
|
|
580
590
|
message: 'Game manifest: `budget` must set at least one metric (frameCpuMsP95, physicsMsP95, ' +
|
|
581
591
|
'maxEntities, maxDrawCalls, maxTriangles) — an empty budget block gates nothing ' +
|
|
@@ -5,17 +5,13 @@
|
|
|
5
5
|
* shape is defined in absolute world units at creation time. Three.js meshes,
|
|
6
6
|
* by contrast, scale visually for free via the normal Object3D hierarchy. To
|
|
7
7
|
* keep the physical collider matching what's on screen, the LOADER must bake
|
|
8
|
-
* the entity's composed WORLD scale (self × every transformed ancestor
|
|
9
|
-
*
|
|
10
|
-
* creation time.
|
|
8
|
+
* the entity's composed WORLD scale (self × every transformed ancestor) into
|
|
9
|
+
* the collider's dimensions at creation time.
|
|
11
10
|
*
|
|
12
|
-
* This is the ONE place that does that math, so
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* Three.js parenting) while the Rapier body ignored scale entirely, so the
|
|
17
|
-
* two silently agreed by coincidence for uniform scale and disagreed for
|
|
18
|
-
* everything else.
|
|
11
|
+
* This is the ONE place that does that math, so every caller — the physics
|
|
12
|
+
* body creation path and the editor's collider gizmo alike — agrees on
|
|
13
|
+
* exactly the same numbers. Two copies silently agree by coincidence for
|
|
14
|
+
* uniform scale and disagree for everything else.
|
|
19
15
|
*
|
|
20
16
|
* Round colliders (ball/capsule) can only represent a uniform radius — Rapier
|
|
21
17
|
* has no ellipsoid/elliptical-capsule shape. A non-uniform world scale on a
|
|
@@ -33,8 +29,8 @@ export interface ColliderWorldDimensions {
|
|
|
33
29
|
}
|
|
34
30
|
/**
|
|
35
31
|
* Compute a collider's WORLD-space dimensions given the entity's composed
|
|
36
|
-
* world scale (self × ancestors, per-axis, in the entity's own local frame
|
|
37
|
-
* X/Y/Z order
|
|
32
|
+
* world scale (self × ancestors, per-axis, in the entity's own local frame,
|
|
33
|
+
* in X/Y/Z order).
|
|
38
34
|
*
|
|
39
35
|
* @param collider - the entity's authored (unscaled) collider definition.
|
|
40
36
|
* @param worldScale - composed world scale `[x, y, z]`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collider-dimensions.d.ts","sourceRoot":"","sources":["../../src/physics/collider-dimensions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"collider-dimensions.d.ts","sourceRoot":"","sources":["../../src/physics/collider-dimensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7C,WAAW,EAAE,MAAM,GAClB,uBAAuB,CA4CzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACrD,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC5C,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAItC"}
|
|
@@ -5,17 +5,13 @@
|
|
|
5
5
|
* shape is defined in absolute world units at creation time. Three.js meshes,
|
|
6
6
|
* by contrast, scale visually for free via the normal Object3D hierarchy. To
|
|
7
7
|
* keep the physical collider matching what's on screen, the LOADER must bake
|
|
8
|
-
* the entity's composed WORLD scale (self × every transformed ancestor
|
|
9
|
-
*
|
|
10
|
-
* creation time.
|
|
8
|
+
* the entity's composed WORLD scale (self × every transformed ancestor) into
|
|
9
|
+
* the collider's dimensions at creation time.
|
|
11
10
|
*
|
|
12
|
-
* This is the ONE place that does that math, so
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* Three.js parenting) while the Rapier body ignored scale entirely, so the
|
|
17
|
-
* two silently agreed by coincidence for uniform scale and disagreed for
|
|
18
|
-
* everything else.
|
|
11
|
+
* This is the ONE place that does that math, so every caller — the physics
|
|
12
|
+
* body creation path and the editor's collider gizmo alike — agrees on
|
|
13
|
+
* exactly the same numbers. Two copies silently agree by coincidence for
|
|
14
|
+
* uniform scale and disagree for everything else.
|
|
19
15
|
*
|
|
20
16
|
* Round colliders (ball/capsule) can only represent a uniform radius — Rapier
|
|
21
17
|
* has no ellipsoid/elliptical-capsule shape. A non-uniform world scale on a
|
|
@@ -27,8 +23,8 @@ import { DEFAULTS } from '../defaults';
|
|
|
27
23
|
const UNIFORM_SCALE_EPSILON = 1e-4;
|
|
28
24
|
/**
|
|
29
25
|
* Compute a collider's WORLD-space dimensions given the entity's composed
|
|
30
|
-
* world scale (self × ancestors, per-axis, in the entity's own local frame
|
|
31
|
-
* X/Y/Z order
|
|
26
|
+
* world scale (self × ancestors, per-axis, in the entity's own local frame,
|
|
27
|
+
* in X/Y/Z order).
|
|
32
28
|
*
|
|
33
29
|
* @param collider - the entity's authored (unscaled) collider definition.
|
|
34
30
|
* @param worldScale - composed world scale `[x, y, z]`.
|
|
@@ -17,20 +17,18 @@
|
|
|
17
17
|
* instance, so it is trapped; a game bundling its own pixi cannot be captured at
|
|
18
18
|
* all, and its mount fails by name.
|
|
19
19
|
*/
|
|
20
|
-
import { type
|
|
20
|
+
import { type CaptureWaitOptions } from '../adapter/ingest/visible-capture-window';
|
|
21
21
|
/**
|
|
22
|
-
* Options for {@link SceneCapture2DHandle.waitForCapture} — the
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* Options for {@link SceneCapture2DHandle.waitForCapture} — the WAIT's options,
|
|
23
|
+
* not this lane's, so they carry no `2D` suffix and are not declared here.
|
|
24
|
+
* They configure `visible-capture-window.ts`'s window, which both surfaces
|
|
25
|
+
* share; this lane used to restate them field-for-field under a `2D` name.
|
|
26
|
+
* The suffix marks what a surface genuinely owns
|
|
27
|
+
* ({@link CapturedRuntime2D} is a Pixi stage/renderer/app, and stays), and a
|
|
28
|
+
* budget of visible milliseconds is not that. Passing a bare number is
|
|
29
|
+
* `{ timeoutMs }`, which is what every existing caller does.
|
|
25
30
|
*/
|
|
26
|
-
export
|
|
27
|
-
/** The capture window, in VISIBLE milliseconds (default 10s). */
|
|
28
|
-
timeoutMs?: number | undefined;
|
|
29
|
-
/** Injected in tests; defaults to the document's own visibility. */
|
|
30
|
-
visibility?: VisibilityClock | undefined;
|
|
31
|
-
/** Live view of the wait while it runs, `null` the moment it ends. */
|
|
32
|
-
onWait?: ((wait: VisibleCaptureWindow | null) => void) | undefined;
|
|
33
|
-
}
|
|
31
|
+
export type { CaptureWaitOptions };
|
|
34
32
|
/** A live Pixi runtime captured from an external PixiJS game. */
|
|
35
33
|
export interface CapturedRuntime2D {
|
|
36
34
|
/** The game's root stage Container. */
|
|
@@ -59,7 +57,7 @@ export interface SceneCapture2DHandle {
|
|
|
59
57
|
* frame the tab draws after it comes forward is trapped exactly as it would
|
|
60
58
|
* have been at boot. Rejects only when the window is spent while VISIBLE.
|
|
61
59
|
*/
|
|
62
|
-
waitForCapture(options?: number |
|
|
60
|
+
waitForCapture(options?: number | CaptureWaitOptions): Promise<CapturedRuntime2D>;
|
|
63
61
|
getDrawCount(): number;
|
|
64
62
|
/** Pause/resume the captured game's own ticker (loop-host gating). */
|
|
65
63
|
setPaused(paused: boolean): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-capture.d.ts","sourceRoot":"","sources":["../../src/pixi/scene-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"scene-capture.d.ts","sourceRoot":"","sources":["../../src/pixi/scene-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,0CAA0C,CAAC;AAElD;;;;;;;;;GASG;AACH,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC,iEAAiE;AACjE,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,kCAAkC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClF,YAAY,IAAI,MAAM,CAAC;IACvB,sEAAsE;IACtE,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,SAAS,IAAI,IAAI,CAAC;CACnB;AAMD,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CAChE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,OAAO,EACtB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAmFtB"}
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
import { type PropsWithChildren } from 'react';
|
|
19
19
|
import type { z } from 'zod';
|
|
20
20
|
import type { RootStateObserver } from '../adapter';
|
|
21
|
+
import type { DebugCommandArgs } from '../runtime/debug-registry';
|
|
21
22
|
import { type Equals, shallow } from '../runtime/frame-selector-cache';
|
|
22
23
|
import type { Game } from '../runtime/game';
|
|
23
|
-
import type { DebugCommandArgs } from '../runtime/types';
|
|
24
24
|
/** Re-exported for convenience — the opt-in equality for selectors that
|
|
25
25
|
* return a fresh object/array/tuple every call (default is `Object.is`). */
|
|
26
26
|
export { shallow };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world-state.d.ts","sourceRoot":"","sources":["../../src/react/world-state.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"world-state.d.ts","sourceRoot":"","sources":["../../src/react/world-state.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAA4B,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;6EAC6E;AAC7E,OAAO,EAAE,OAAO,EAAE,CAAC;AAInB;;;;;;;;;;;;;;oFAcoF;AACpF,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,+BAElF;AAED;;mDAEmD;AACnD,wBAAgB,OAAO,IAAI,IAAI,CAQ9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,IAAI,GAAG,IAAI,CAE7C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,MAAM,GAAE,MAAM,CAAC,CAAC,CAAa,GAAG,CAAC,CAW9F;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAiBlF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,CAAC,EAClC,MAAM,GAAE,MAAM,CAAC,CAAC,CAAa,GAC5B,CAAC,CAoBH;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,EACjB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CAAE,GAC1C,IAAI,CAaN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,SAAS,GAAG,SAAS,EAC1E,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAE,EACrE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC/D,IAAI,CAeN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CASxE"}
|