@vgai/engine 0.5.22 → 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/native-debug-module.d.ts +31 -5
- package/dist/adapter/native-debug-module.d.ts.map +1 -1
- package/dist/adapter/native-debug-module.js +25 -7
- 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 +2 -2
- package/dist/adapter/renderer-config.js +2 -2
- 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/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 +5 -6
- package/dist/core/sim-clock.d.ts.map +1 -1
- package/dist/core/sim-clock.js +4 -5
- 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/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 +18 -5
- package/dist/input/input-manager.d.ts.map +1 -1
- package/dist/input/input-manager.js +33 -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/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 +2 -2
- package/dist/runtime/game-input-seams.d.ts.map +1 -1
- package/dist/runtime/game.d.ts +90 -41
- package/dist/runtime/game.d.ts.map +1 -1
- package/dist/runtime/game.js +80 -54
- 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 +8 -39
- 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 +18 -18
- 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/r3f-root-factory.d.ts +7 -7
- package/dist/world3d-react/r3f-root-factory.js +7 -7
- package/dist/world3d-react/rapier-physics-bridge.d.ts +9 -8
- package/dist/world3d-react/rapier-physics-bridge.d.ts.map +1 -1
- package/dist/world3d-react/rapier-physics-bridge.js +100 -48
- 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/native-debug-module.ts +43 -7
- package/src/adapter/rapier-physics-adapter.ts +76 -20
- package/src/adapter/renderer-config.ts +2 -2
- 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/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 +5 -6
- package/src/core/types.ts +1 -3
- package/src/defaults.ts +6 -14
- 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 +34 -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/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 +2 -2
- package/src/runtime/game.ts +168 -80
- package/src/runtime/mount-game.ts +8 -56
- package/src/runtime/mount-manifest.ts +43 -34
- 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/r3f-root-factory.tsx +7 -7
- package/src/world3d-react/rapier-physics-bridge.tsx +107 -50
- 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/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
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Ownership, stated in one place (the build rule):
|
|
11
11
|
* - OWNER: this function. It resolves the answer; nothing else derives it.
|
|
12
|
-
* - SHARERS: the
|
|
13
|
-
*
|
|
12
|
+
* - SHARERS: the three-root adapter (`world3d-react/r3f-root-factory.tsx`),
|
|
13
|
+
* which seeds live render vitals only
|
|
14
14
|
* under it, and the `static-batch` capability's mutation watch and `Frozen`
|
|
15
15
|
* warning. Any future dev-only instrument calls this too, with its own
|
|
16
16
|
* `override`.
|
|
@@ -32,15 +32,15 @@
|
|
|
32
32
|
* Do not write "the strip clears the input seams" anywhere without changing
|
|
33
33
|
* `strip` to actually do it.
|
|
34
34
|
*/
|
|
35
|
+
import type { HostGameHandle } from '../adapter/host-context';
|
|
35
36
|
import type { DebugRegistry } from './debug-registry';
|
|
36
|
-
import type { GameInternal } from './game';
|
|
37
37
|
/** The conventional input-map location every scaffolded project ships
|
|
38
38
|
* (`public/inputmaps/default.inputmap.json`). */
|
|
39
39
|
export declare const DEFAULT_INPUT_MAP_PATH = "/inputmaps/default.inputmap.json";
|
|
40
40
|
/** The slice of a host context this wiring reads — satisfied structurally by
|
|
41
41
|
* both `ThreeHostContext` and `CanvasHostContext`. */
|
|
42
42
|
export interface GameInputSeamHost {
|
|
43
|
-
readonly game?:
|
|
43
|
+
readonly game?: HostGameHandle | null | undefined;
|
|
44
44
|
readonly headless?: boolean | undefined;
|
|
45
45
|
}
|
|
46
46
|
export declare function wireGameInputSeams(host: GameInputSeamHost, registry: DebugRegistry, options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-input-seams.d.ts","sourceRoot":"","sources":["../../src/runtime/game-input-seams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;
|
|
1
|
+
{"version":3,"file":"game-input-seams.d.ts","sourceRoot":"","sources":["../../src/runtime/game-input-seams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;kDACkD;AAClD,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AAEzE;uDACuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjD,GACA,OAAO,CAAC,IAAI,CAAC,CAiDf"}
|
package/dist/runtime/game.d.ts
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
import type * as PIXI from 'pixi.js';
|
|
8
8
|
import type * as THREE from 'three';
|
|
9
9
|
import type { AdapterSurface as AdapterSurfaceLeaf } from '../adapter/adapter-surface';
|
|
10
|
+
import type { RootBinding } from '../adapter/binding';
|
|
10
11
|
import type { MountedRoot } from '../adapter/root-adapter';
|
|
11
|
-
import type { MountedSetupThreeRoot } from '../adapter/setup-three-root-adapter';
|
|
12
12
|
import type { SystemAdapters } from '../adapter/system-adapter';
|
|
13
13
|
import type { AssetCache } from '../assets';
|
|
14
14
|
import type { createGameLoop } from '../core/game-loop';
|
|
@@ -20,10 +20,10 @@ import type { CollisionSystem } from '../physics/collision-system';
|
|
|
20
20
|
import type { PhysicsRegistry } from '../physics/physics-registry';
|
|
21
21
|
import type { Physics2DRegistry } from '../pixi/physics-registry';
|
|
22
22
|
import { type RunTicksOptions } from './debug-registry';
|
|
23
|
+
import type { PlaytestContext } from './playtest';
|
|
23
24
|
import { type GameStateBridge } from './state-bridge';
|
|
24
|
-
import type { GameContext, PlaytestContext } from './types';
|
|
25
25
|
/** The one loop type — `createGameLoop`'s return shape (fixed-step sim,
|
|
26
|
-
* display-rate presentation
|
|
26
|
+
* display-rate presentation). */
|
|
27
27
|
export type GameLoop = ReturnType<typeof createGameLoop>;
|
|
28
28
|
/**
|
|
29
29
|
* Game-level play-state control surface (D10, T7.6): pause/resume/step as ONE
|
|
@@ -33,10 +33,10 @@ export type GameLoop = ReturnType<typeof createGameLoop>;
|
|
|
33
33
|
* freezes. A paused-and-pausable world's `render` phase still runs (with `dt`
|
|
34
34
|
* forced to `0`, so time-based render effects — e.g. a post-processing pass with
|
|
35
35
|
* its own internal clock — don't silently keep animating under a "frozen" scene)
|
|
36
|
-
* — simulation freezes, the screen does not go black.
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* `runFrame`. `GameLoop.timeScale`
|
|
36
|
+
* — simulation freezes, the screen does not go black. That render runs once per
|
|
37
|
+
* display frame under a host that drives `runRenderFrame`, and once per substep
|
|
38
|
+
* under one that still renders inside
|
|
39
|
+
* `runFrame`. `GameLoop.timeScale` remains the orthogonal
|
|
40
40
|
* "speed up/slow down" axis — pausing never touches it, so the host's
|
|
41
41
|
* accumulator/rAF loop keeps ticking at its normal cadence, which is what makes
|
|
42
42
|
* "paused still renders" possible.
|
|
@@ -83,7 +83,7 @@ export interface PlayState {
|
|
|
83
83
|
* `adapter/root-adapter.ts`'s kind-tagged `MountedRoot` types can name it
|
|
84
84
|
* without an import cycle back to this file. This re-export keeps every
|
|
85
85
|
* existing `import type { AdapterSurface } from '../runtime/game'` call site
|
|
86
|
-
*
|
|
86
|
+
* compiling unchanged.
|
|
87
87
|
*/
|
|
88
88
|
export type AdapterSurface = AdapterSurfaceLeaf;
|
|
89
89
|
/**
|
|
@@ -107,6 +107,23 @@ export interface RootFrameHooks {
|
|
|
107
107
|
/**
|
|
108
108
|
* A single world instance: the unit of adaptation.
|
|
109
109
|
*/
|
|
110
|
+
/**
|
|
111
|
+
* One `SystemAdapters` slot a mounted root's `systems` table answered with
|
|
112
|
+
* `absent(reason)` (`adapter/system-slot.ts`) — a POSITIVE absence.
|
|
113
|
+
*
|
|
114
|
+
* Nothing is installed for it. It exists so a reader can tell "this game has no
|
|
115
|
+
* physics" from "nobody looked", which the adapter bag alone cannot do: an
|
|
116
|
+
* unfilled slot has the same shape for both, and only one of them is a work
|
|
117
|
+
* order.
|
|
118
|
+
*/
|
|
119
|
+
export interface DeclaredSystemAbsence {
|
|
120
|
+
/** The root whose declaration answered — absences are declared per root, and
|
|
121
|
+
* the slot is only truly absent when NO root fills it. */
|
|
122
|
+
readonly rootId: string;
|
|
123
|
+
readonly slot: keyof SystemAdapters;
|
|
124
|
+
/** The game's own words: what was searched, and what was found. */
|
|
125
|
+
readonly reason: string;
|
|
126
|
+
}
|
|
110
127
|
export interface RootInstance {
|
|
111
128
|
/** Manifest root id. */
|
|
112
129
|
readonly id: string;
|
|
@@ -160,6 +177,39 @@ export interface RootInstance {
|
|
|
160
177
|
* instead (unless it `drivesOwnLoop`, in which case it isn't ticked at
|
|
161
178
|
* all — see `runFrame`). */
|
|
162
179
|
readonly frame?: RootFrameHooks | undefined;
|
|
180
|
+
/** True from the moment this world's `mounted.dispose()` runs. There is no
|
|
181
|
+
* `unregisterRoot`, so a disposed world stays in `Game.roots`; `runFrame`
|
|
182
|
+
* reads this to skip it entirely — frame hooks AND the opaque
|
|
183
|
+
* `mounted.update` fallback (see the disposed-world guard in
|
|
184
|
+
* `createRootInstance`). */
|
|
185
|
+
readonly disposed: boolean;
|
|
186
|
+
/**
|
|
187
|
+
* THIS ROOT'S WHOLE DECLARATION, BOUND — `adapter/binding.ts`'s
|
|
188
|
+
* {@link RootBinding}, assembled at registration from this instance's own
|
|
189
|
+
* `adapter`/`mounted`/`pausable` plus the {@link RootDeclaration} the
|
|
190
|
+
* resolver produced. Every member of it is a reference to something already
|
|
191
|
+
* reachable through the fields above; it is the ONE place the five protocol
|
|
192
|
+
* families are addressed by name rather than re-assembled per consumer.
|
|
193
|
+
*
|
|
194
|
+
* `null` in exactly ONE honest case, and never as a degrade: the
|
|
195
|
+
* registration carried NO declaration — a bare
|
|
196
|
+
* `registerThreeRoot(game, adapter, mounted)` from a test harness, or a
|
|
197
|
+
* `mountManifestRoots` caller that supplied an already-constructed adapter
|
|
198
|
+
* with no entry namespace behind it. There is no manifest root, no parsed
|
|
199
|
+
* definition and no entry surface to bind, and fabricating them would be
|
|
200
|
+
* the anti-shim rule broken at the seam that exists to hold it. Every root
|
|
201
|
+
* the editor resolves through `resolveAllRoots`/`resolveAllRootEntries`
|
|
202
|
+
* carries a declaration, so its binding is non-null.
|
|
203
|
+
*
|
|
204
|
+
* A mount that exposes no `authoring` does NOT null this out; it costs that
|
|
205
|
+
* root its `projection` and `truth` members only (see
|
|
206
|
+
* {@link RootBinding.projection}). That distinction is load-bearing: the
|
|
207
|
+
* editor supplies native TSX roots' authoring itself, so treating an
|
|
208
|
+
* absent `mounted.authoring` as an absent BINDING made `binding` null for
|
|
209
|
+
* every first-party root and left four perfectly constructible families
|
|
210
|
+
* unreadable.
|
|
211
|
+
*/
|
|
212
|
+
readonly binding: RootBinding | null;
|
|
163
213
|
}
|
|
164
214
|
/**
|
|
165
215
|
* Minimal identity surface `RootInstance.adapter` needs (T7.5) — see that
|
|
@@ -196,6 +246,9 @@ export interface RootInstanceInit {
|
|
|
196
246
|
readonly physics2d?: Physics2DRegistry | undefined;
|
|
197
247
|
readonly camera?: unknown;
|
|
198
248
|
readonly frame?: RootFrameHooks | undefined;
|
|
249
|
+
/** This root's bound declaration — see {@link RootInstance.binding} for
|
|
250
|
+
* when it is legitimately absent. */
|
|
251
|
+
readonly binding?: RootBinding | null | undefined;
|
|
199
252
|
}
|
|
200
253
|
/**
|
|
201
254
|
* Build a `RootInstance` whose kind-narrowed accessors throw descriptively
|
|
@@ -204,23 +257,9 @@ export interface RootInstanceInit {
|
|
|
204
257
|
* slice or later ones) gets identical throw behavior.
|
|
205
258
|
*/
|
|
206
259
|
export declare function createRootInstance(init: RootInstanceInit): RootInstance;
|
|
207
|
-
/**
|
|
208
|
-
* Type guard for whether a `MountedThreeRoot` is a first-party
|
|
209
|
-
* `SetupThreeRootAdapter` mount (has a live `GameContext` at `.ctx`). Used to
|
|
210
|
-
* decide whether a world's `physics`/`collisions`/`camera` can be populated
|
|
211
|
-
* from it — an external
|
|
212
|
-
* adapter's mount has none of these first-party handles.
|
|
213
|
-
*
|
|
214
|
-
* Checks the `firstParty: true` brand (checklist item 1), NOT `'ctx' in
|
|
215
|
-
* mounted` — a foreign mount may carry an unrelated `ctx` key, so a
|
|
216
|
-
* structural `'ctx' in mounted` check would misfire. The probe is a plain property read, not an
|
|
217
|
-
* `instanceof`/value import of `setup-three-root-adapter.ts` — the
|
|
218
|
-
* `MountedSetupThreeRoot` import above stays type-only.
|
|
219
|
-
*/
|
|
220
|
-
export declare function isFirstPartyMounted(mounted: MountedRoot): mounted is MountedSetupThreeRoot;
|
|
221
260
|
/**
|
|
222
261
|
* One world's half of a debris disposal, as {@link disposeDebrisSubtree} needs
|
|
223
|
-
* it.
|
|
262
|
+
* it.
|
|
224
263
|
*
|
|
225
264
|
* `physics`/`rapierWorld` are OPTIONAL: an owner that builds no first-party
|
|
226
265
|
* Rapier runtime (an R3F world) carries neither, and {@link
|
|
@@ -228,23 +267,22 @@ export declare function isFirstPartyMounted(mounted: MountedRoot): mounted is Mo
|
|
|
228
267
|
* unconditionally.
|
|
229
268
|
*/
|
|
230
269
|
export interface DebrisOwner {
|
|
231
|
-
readonly physics?:
|
|
232
|
-
readonly rapierWorld?:
|
|
270
|
+
readonly physics?: PhysicsRegistry;
|
|
271
|
+
readonly rapierWorld?: import('@dimforge/rapier3d-compat').World;
|
|
233
272
|
}
|
|
234
273
|
/**
|
|
235
274
|
* P3 — what `SimClock.disposeAfter` actually does. `core/sim-clock.ts` knows
|
|
236
275
|
* only *when*; this is the *what*, and it lives here because it is the runtime
|
|
237
276
|
* that knows about Rapier and shared geometry.
|
|
238
277
|
*
|
|
239
|
-
* The order mirrors `adapter/
|
|
278
|
+
* The order mirrors `adapter/world3d-react/r3f-root-factory.tsx`'s world teardown for
|
|
240
279
|
* ONE subtree. Within the physics step,
|
|
241
280
|
* `rapierWorld.removeRigidBody(body)` comes BEFORE `physics.remove(node)`: the
|
|
242
281
|
* registry's `remove()` only drops index entries, so reversing the two leaks
|
|
243
282
|
* the Rapier body.
|
|
244
283
|
*
|
|
245
|
-
* `owners` is every world that could own part of the subtree
|
|
246
|
-
*
|
|
247
|
-
* adapter mount passes its own ctx. `physics.get` is a no-op for a node the
|
|
284
|
+
* `owners` is every world that could own part of the subtree. `physics.get`
|
|
285
|
+
* is a no-op for a node the
|
|
248
286
|
* owner does not own, so offering the subtree to each is safe.
|
|
249
287
|
*
|
|
250
288
|
* Safe on an object already removed or already disposed: `removeFromParent` on
|
|
@@ -269,13 +307,13 @@ export interface Game {
|
|
|
269
307
|
* Within each phase,
|
|
270
308
|
* `GameInternal.runFrame` runs THIS runner's `runPhase` first, before any
|
|
271
309
|
* world's engine systems/component ticks/world-bound game systems (e.g.
|
|
272
|
-
* `ctx.systems.add`, which stays world-bound to the default world
|
|
273
|
-
*
|
|
310
|
+
* `ctx.systems.add`, which stays world-bound to the default world).
|
|
311
|
+
* Empty for every existing game (nothing registers
|
|
274
312
|
* against it), so an empty runner has no frame cost beyond dispatch.
|
|
275
313
|
*/
|
|
276
314
|
readonly systems: SystemRunner;
|
|
277
315
|
/** Declaration-ordered. This is the same array reference `registerRoot`
|
|
278
|
-
* mutates, not a snapshot, so holders
|
|
316
|
+
* mutates, not a snapshot, so holders observe
|
|
279
317
|
* later registrations. */
|
|
280
318
|
readonly roots: ReadonlyArray<RootInstance>;
|
|
281
319
|
world(id: string): RootInstance | null;
|
|
@@ -322,7 +360,18 @@ export interface Game {
|
|
|
322
360
|
* `Game` doubles in tests; `installNativeSystemsBindings` refuses loudly
|
|
323
361
|
* when the hosting Game lacks it.
|
|
324
362
|
*/
|
|
325
|
-
installDeclaredSystemAdapters?(rootId: string, slots: Readonly<Partial<SystemAdapters
|
|
363
|
+
installDeclaredSystemAdapters?(rootId: string, slots: Readonly<Partial<SystemAdapters>>, absent?: readonly DeclaredSystemAbsence[]): void;
|
|
364
|
+
/**
|
|
365
|
+
* Every slot a mounted root's `systems` table answered with `absent(reason)`,
|
|
366
|
+
* across all roots — the game-scoped read of the positive absences.
|
|
367
|
+
*
|
|
368
|
+
* This is what separates "this game has no networking" from "nobody looked",
|
|
369
|
+
* and it is the ONLY source for that distinction on a native mount: the
|
|
370
|
+
* adapter bag ({@link systemAdapters}) can only say a slot is unfilled, which
|
|
371
|
+
* is the same shape for both. Empty means no root declared any absence — NOT
|
|
372
|
+
* that every slot is answered.
|
|
373
|
+
*/
|
|
374
|
+
readonly declaredSystemAbsences?: readonly DeclaredSystemAbsence[];
|
|
326
375
|
/** The one game-owned `InputManager`, shared by every first-party root. */
|
|
327
376
|
readonly input: InputManager;
|
|
328
377
|
/**
|
|
@@ -337,7 +386,7 @@ export interface Game {
|
|
|
337
386
|
/** Game-level play-state control surface (D10, T7.6) — see {@link PlayState}. */
|
|
338
387
|
readonly play: PlayState;
|
|
339
388
|
/**
|
|
340
|
-
*
|
|
389
|
+
* The interpolation alpha the most recent display frame presented
|
|
341
390
|
* at: `accumulator / fixedDt`, in `[0, 1]`. `0` means "exactly on the last
|
|
342
391
|
* completed fixed state", `0.5` means "halfway to the next one".
|
|
343
392
|
*
|
|
@@ -349,7 +398,7 @@ export interface Game {
|
|
|
349
398
|
*/
|
|
350
399
|
readonly renderAlpha: number;
|
|
351
400
|
/**
|
|
352
|
-
*
|
|
401
|
+
* The `RenderStepped`-shaped host: register a callback that runs
|
|
353
402
|
* ONCE PER DISPLAY FRAME, before that frame's `preRender`/`render` phases,
|
|
354
403
|
* with `(alpha, displayDt)`.
|
|
355
404
|
*
|
|
@@ -422,21 +471,21 @@ export interface GameInternal extends Game {
|
|
|
422
471
|
* touches no other world at all — a natural no-op while not paused, since
|
|
423
472
|
* the frozen set is then empty.
|
|
424
473
|
*
|
|
425
|
-
*
|
|
474
|
+
* `opts.skipRenderPhases` omits `preRender`+`render` from
|
|
426
475
|
* the pass — every other phase, and `endFrame`, run exactly as always. A
|
|
427
476
|
* host that drives presentation at DISPLAY rate sets it on every substep
|
|
428
477
|
* and calls {@link runRenderFrame} once per real frame instead
|
|
429
478
|
* (`create-runtime.ts`). A host that does
|
|
430
|
-
* not set it
|
|
479
|
+
* not set it renders inside the substep — which is why
|
|
431
480
|
* `externalDrive` capture (`render-control.ts`'s `simulateSubsteps`, which
|
|
432
|
-
* calls `runFrame(fixedDt)` with no opts) is frame-exact
|
|
481
|
+
* calls `runFrame(fixedDt)` with no opts) is frame-exact.
|
|
433
482
|
* `runTicks` sets it per tick for its `render: 'none' | 'last'` modes.
|
|
434
483
|
*/
|
|
435
484
|
runFrame(dt: number, opts?: {
|
|
436
485
|
skipRenderPhases?: boolean;
|
|
437
486
|
}): void;
|
|
438
487
|
/**
|
|
439
|
-
*
|
|
488
|
+
* Run ONE display frame's presentation pass: the registered
|
|
440
489
|
* `onRenderStep` callbacks, then the `preRender` and `render` phases across
|
|
441
490
|
* game-scoped systems and every host-driven world, in the same
|
|
442
491
|
* game-systems-then-worlds order {@link runFrame} uses.
|
|
@@ -511,8 +560,8 @@ export interface GameInternal extends Game {
|
|
|
511
560
|
runTicks(n: number, opts?: RunTicksOptions): void;
|
|
512
561
|
/**
|
|
513
562
|
* ADAPTER-MOUNT surface, not game-facing: an adapter's `mount()` calls
|
|
514
|
-
* this (via `host.game` — the
|
|
515
|
-
* `createR3FRootContext`
|
|
563
|
+
* this (via `host.game` — the R3F
|
|
564
|
+
* `createR3FRootContext` does) to load the game-owned input map ONCE,
|
|
516
565
|
* even when several roots ask for the same path; competing paths throw
|
|
517
566
|
* (input is game-owned, so roots cannot load competing maps). GAME code
|
|
518
567
|
* never calls this — a project's map loads automatically at mount from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/runtime/game.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,KAAK,IAAI,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/runtime/game.ts"],"names":[],"mappings":"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"}
|