@vgai/engine 0.5.13 → 0.5.14
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/dist/adapter/adapter-module.d.ts +447 -0
- package/dist/adapter/adapter-module.d.ts.map +1 -0
- package/dist/adapter/adapter-module.js +308 -0
- package/dist/adapter/authoring.d.ts +357 -10
- package/dist/adapter/authoring.d.ts.map +1 -1
- package/dist/adapter/authoring.js +87 -1
- package/dist/adapter/constraint.d.ts +9 -3
- package/dist/adapter/constraint.d.ts.map +1 -1
- package/dist/adapter/finders/finder-result.d.ts +28 -0
- package/dist/adapter/finders/finder-result.d.ts.map +1 -0
- package/dist/adapter/finders/finder-result.js +10 -0
- package/dist/adapter/finders/index.d.ts +38 -0
- package/dist/adapter/finders/index.d.ts.map +1 -0
- package/dist/adapter/finders/index.js +41 -0
- package/dist/adapter/finders/prefabs-from-stories.d.ts +64 -0
- package/dist/adapter/finders/prefabs-from-stories.d.ts.map +1 -0
- package/dist/adapter/finders/prefabs-from-stories.js +92 -0
- package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts +67 -0
- package/dist/adapter/finders/scenes-from-entrypoint-selection.d.ts.map +1 -0
- package/dist/adapter/finders/scenes-from-entrypoint-selection.js +226 -0
- package/dist/adapter/first-party-systems.d.ts.map +1 -1
- package/dist/adapter/first-party-systems.js +29 -0
- package/dist/adapter/index.d.ts +7 -3
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/adapter/index.js +5 -2
- package/dist/adapter/ingest/contract-system-adapters.d.ts +24 -1
- package/dist/adapter/ingest/contract-system-adapters.d.ts.map +1 -1
- package/dist/adapter/ingest/contract-system-adapters.js +100 -34
- package/dist/adapter/ingest/game-contract.d.ts +188 -2
- package/dist/adapter/ingest/game-contract.d.ts.map +1 -1
- package/dist/adapter/ingest/game-contract.js +107 -0
- package/dist/adapter/ingest/mount-readiness.d.ts +84 -0
- package/dist/adapter/ingest/mount-readiness.d.ts.map +1 -0
- package/dist/adapter/ingest/mount-readiness.js +81 -0
- package/dist/adapter/ingest/scene-capture.d.ts +91 -2
- package/dist/adapter/ingest/scene-capture.d.ts.map +1 -1
- package/dist/adapter/ingest/scene-capture.js +110 -18
- package/dist/adapter/ingest/structural-ids.d.ts +11 -5
- package/dist/adapter/ingest/structural-ids.d.ts.map +1 -1
- package/dist/adapter/ingest/structural-ids.js +18 -9
- package/dist/adapter/ingest/upstream-pin.d.ts +4 -2
- package/dist/adapter/ingest/upstream-pin.d.ts.map +1 -1
- package/dist/adapter/ingest/upstream-pin.js +4 -2
- package/dist/adapter/ingest/visible-capture-window.d.ts +116 -0
- package/dist/adapter/ingest/visible-capture-window.d.ts.map +1 -0
- package/dist/adapter/ingest/visible-capture-window.js +141 -0
- package/dist/adapter/loop-gate-report.d.ts +3 -4
- package/dist/adapter/loop-gate-report.d.ts.map +1 -1
- package/dist/adapter/loop-gate-report.js +3 -4
- package/dist/adapter/root-adapter.d.ts +22 -2
- package/dist/adapter/root-adapter.d.ts.map +1 -1
- package/dist/adapter/setup-three-root-adapter.d.ts.map +1 -1
- package/dist/adapter/setup-three-root-adapter.js +15 -0
- package/dist/adapter/system-adapter.d.ts +161 -2
- package/dist/adapter/system-adapter.d.ts.map +1 -1
- package/dist/adapter/system-adapter.js +18 -1
- package/dist/animation/camera-ownership.d.ts +4 -2
- package/dist/animation/camera-ownership.d.ts.map +1 -1
- package/dist/animation/camera-ownership.js +58 -1
- package/dist/animation/runtime-inspection.d.ts +70 -0
- package/dist/animation/runtime-inspection.d.ts.map +1 -0
- package/dist/animation/runtime-inspection.js +25 -0
- package/dist/animation/xstate-animation-binding.d.ts +9 -1
- package/dist/animation/xstate-animation-binding.d.ts.map +1 -1
- package/dist/animation/xstate-animation-binding.js +48 -1
- package/dist/asset-formats/material.d.ts +1 -1
- package/dist/asset-formats/mesh.d.ts +1 -1
- package/dist/asset-formats/particles.d.ts +13 -0
- package/dist/asset-formats/particles.d.ts.map +1 -1
- package/dist/asset-formats/particles.js +28 -0
- package/dist/behavior/xstate-inspection.d.ts +24 -0
- package/dist/behavior/xstate-inspection.d.ts.map +1 -0
- package/dist/behavior/xstate-inspection.js +25 -0
- package/dist/core/game-loop.d.ts +7 -5
- package/dist/core/game-loop.d.ts.map +1 -1
- package/dist/core/game-loop.js +39 -18
- package/dist/core/types.d.ts +11 -12
- package/dist/core/types.d.ts.map +1 -1
- package/dist/data/data-asset.js +1 -1
- package/dist/dev/instruments.d.ts.map +1 -1
- package/dist/dev/instruments.js +5 -1
- package/dist/dev/render-debug-adapter.d.ts +19 -2
- package/dist/dev/render-debug-adapter.d.ts.map +1 -1
- package/dist/dev/render-debug-adapter.js +10 -0
- package/dist/ecs/user-data.d.ts +10 -2
- package/dist/ecs/user-data.d.ts.map +1 -1
- package/dist/ecs/user-data.js +6 -2
- package/dist/input/binding-identity.d.ts +10 -0
- package/dist/input/binding-identity.d.ts.map +1 -0
- package/dist/input/binding-identity.js +36 -0
- package/dist/input/input-manager.d.ts +18 -185
- package/dist/input/input-manager.d.ts.map +1 -1
- package/dist/input/input-manager.js +78 -68
- package/dist/manifest/load.d.ts +14 -0
- package/dist/manifest/load.d.ts.map +1 -1
- package/dist/manifest/load.js +6 -1
- package/dist/manifest/schema.d.ts +18 -0
- package/dist/manifest/schema.d.ts.map +1 -1
- package/dist/manifest/schema.js +64 -7
- package/dist/pixi/authoring.d.ts +27 -0
- package/dist/pixi/authoring.d.ts.map +1 -1
- package/dist/pixi/authoring.js +10 -3
- package/dist/pixi/index.d.ts +1 -1
- package/dist/pixi/index.d.ts.map +1 -1
- package/dist/pixi/index.js +1 -1
- package/dist/pixi/ingest.d.ts +8 -0
- package/dist/pixi/ingest.d.ts.map +1 -1
- package/dist/pixi/ingest.js +10 -1
- package/dist/pixi/render-pass-bracket.d.ts +56 -0
- package/dist/pixi/render-pass-bracket.d.ts.map +1 -0
- package/dist/pixi/render-pass-bracket.js +98 -0
- package/dist/pixi/scene-capture.d.ts +32 -1
- package/dist/pixi/scene-capture.d.ts.map +1 -1
- package/dist/pixi/scene-capture.js +21 -9
- package/dist/pixi/system-adapters.d.ts +29 -0
- package/dist/pixi/system-adapters.d.ts.map +1 -1
- package/dist/pixi/system-adapters.js +27 -0
- package/dist/render/particles-factory.d.ts +16 -2
- package/dist/render/particles-factory.d.ts.map +1 -1
- package/dist/render/particles-factory.js +88 -5
- package/dist/render/soft-particle-depth.d.ts +149 -0
- package/dist/render/soft-particle-depth.d.ts.map +1 -0
- package/dist/render/soft-particle-depth.js +305 -0
- package/dist/render/voxel-surface.d.ts +117 -0
- package/dist/render/voxel-surface.d.ts.map +1 -0
- package/dist/render/voxel-surface.js +263 -0
- package/dist/runtime/create-runtime.js +7 -0
- package/dist/runtime/debug-bridge.d.ts +15 -15
- package/dist/runtime/debug-bridge.d.ts.map +1 -1
- package/dist/runtime/debug-bridge.js +27 -26
- package/dist/runtime/game.d.ts.map +1 -1
- package/dist/runtime/game.js +1 -2
- package/dist/setup/setup-particles.d.ts.map +1 -1
- package/dist/setup/setup-particles.js +9 -0
- package/dist/world3d-react/r3f-adapter.d.ts.map +1 -1
- package/dist/world3d-react/r3f-adapter.js +42 -3
- package/dist/world3d-react/rapier-physics-bridge.d.ts.map +1 -1
- package/dist/world3d-react/rapier-physics-bridge.js +201 -11
- package/dist-config/config.js.map +1 -1
- package/package.json +4 -2
- package/schemas/engine-capabilities.json +12 -12
- package/schemas/vgai-project.schema.json +41 -2
- package/src/adapter/adapter-module.ts +607 -0
- package/src/adapter/authoring.ts +440 -10
- package/src/adapter/constraint.ts +10 -3
- package/src/adapter/finders/finder-result.ts +29 -0
- package/src/adapter/finders/index.ts +62 -0
- package/src/adapter/finders/prefabs-from-stories.ts +142 -0
- package/src/adapter/finders/scenes-from-entrypoint-selection.ts +304 -0
- package/src/adapter/first-party-systems.ts +30 -0
- package/src/adapter/index.ts +32 -1
- package/src/adapter/ingest/contract-system-adapters.ts +116 -32
- package/src/adapter/ingest/game-contract.ts +265 -2
- package/src/adapter/ingest/mount-readiness.ts +140 -0
- package/src/adapter/ingest/scene-capture.ts +199 -22
- package/src/adapter/ingest/structural-ids.ts +21 -9
- package/src/adapter/ingest/upstream-pin.ts +4 -2
- package/src/adapter/ingest/visible-capture-window.ts +213 -0
- package/src/adapter/loop-gate-report.ts +3 -4
- package/src/adapter/root-adapter.ts +22 -2
- package/src/adapter/setup-three-root-adapter.ts +16 -0
- package/src/adapter/system-adapter.ts +188 -2
- package/src/animation/camera-ownership.ts +68 -3
- package/src/animation/runtime-inspection.ts +104 -0
- package/src/animation/xstate-animation-binding.ts +53 -1
- package/src/asset-formats/particles.ts +31 -0
- package/src/behavior/xstate-inspection.ts +51 -0
- package/src/core/game-loop.ts +39 -17
- package/src/core/types.ts +11 -12
- package/src/data/data-asset.ts +1 -1
- package/src/dev/instruments.ts +5 -1
- package/src/dev/render-debug-adapter.ts +22 -2
- package/src/ecs/user-data.ts +10 -2
- package/src/input/binding-identity.ts +37 -0
- package/src/input/input-manager.ts +93 -68
- package/src/manifest/load.ts +23 -2
- package/src/manifest/schema.ts +76 -7
- package/src/pixi/authoring.ts +37 -5
- package/src/pixi/index.ts +2 -0
- package/src/pixi/ingest.ts +15 -2
- package/src/pixi/render-pass-bracket.ts +117 -0
- package/src/pixi/scene-capture.ts +63 -13
- package/src/pixi/system-adapters.ts +41 -0
- package/src/render/particles-factory.ts +89 -6
- package/src/render/soft-particle-depth.ts +336 -0
- package/src/render/voxel-surface.ts +358 -0
- package/src/runtime/create-runtime.ts +7 -0
- package/src/runtime/debug-bridge.ts +32 -31
- package/src/runtime/game.ts +1 -2
- package/src/setup/setup-particles.ts +9 -0
- package/src/world3d-react/r3f-adapter.tsx +48 -2
- package/src/world3d-react/rapier-physics-bridge.tsx +249 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/system-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"system-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/system-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,21 @@
|
|
|
10
10
|
* Rapier — it lets the editor ask "who owns this object" and "freeze it while I
|
|
11
11
|
* edit it".
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
/** The carrier a NODE-ID-keyed consumer may call, or `null` — including when
|
|
14
|
+
* the slot holds a display-keyed carrier, which such a consumer must not
|
|
15
|
+
* call and cannot correctly address. */
|
|
16
|
+
export function nodeKeyedPhysics(carrier) {
|
|
17
|
+
if (!carrier)
|
|
18
|
+
return null;
|
|
19
|
+
return isDisplayKeyedPhysics(carrier) ? null : carrier;
|
|
20
|
+
}
|
|
21
|
+
/** The carrier a DISPLAY-keyed consumer may call, or `null`. Mirror of
|
|
22
|
+
* {@link nodeKeyedPhysics}. */
|
|
23
|
+
export function displayKeyedPhysics(carrier) {
|
|
24
|
+
if (!carrier)
|
|
25
|
+
return null;
|
|
26
|
+
return isDisplayKeyedPhysics(carrier) ? carrier : null;
|
|
27
|
+
}
|
|
28
|
+
function isDisplayKeyedPhysics(carrier) {
|
|
29
|
+
return carrier.keyedBy === 'display';
|
|
30
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
+
import type { CameraAdapter } from '../adapter/system-adapter';
|
|
2
3
|
import type { SystemPhaseName } from '../core/types';
|
|
3
4
|
import type { AnimationClock } from './animation-clock';
|
|
4
5
|
import type { CameraOwnershipChangeEvent } from './theatre-director';
|
|
@@ -106,7 +107,8 @@ import type { CameraOwnershipChangeEvent } from './theatre-director';
|
|
|
106
107
|
* ## One unified transition model — cut is just a zero-duration blend
|
|
107
108
|
*
|
|
108
109
|
* Internally, `cut`/`blend`/`applyDirectorEvent` all record exactly one
|
|
109
|
-
* `FrameState` shape: `{ targetKey, fromPose, startTime,
|
|
110
|
+
* `FrameState` shape: `{ targetKey, fromTargetKey, fromPose, startTime,
|
|
111
|
+
* durationSeconds }`
|
|
110
112
|
* (`durationSeconds` is `0` for a cut). On EVERY clock crossing, the applied
|
|
111
113
|
* pose is a PURE function of `clock.time` and this fixed record — nothing is
|
|
112
114
|
* mutated as time passes:
|
|
@@ -222,7 +224,7 @@ export interface CameraOwnershipSystemOptions {
|
|
|
222
224
|
/** `AnimationClock` phase to evaluate tracking/blending in. Default `'render'` — see module doc. */
|
|
223
225
|
phase?: SystemPhaseName;
|
|
224
226
|
}
|
|
225
|
-
export interface CameraOwnershipSystem {
|
|
227
|
+
export interface CameraOwnershipSystem extends CameraAdapter {
|
|
226
228
|
/** Push a new ownership frame for `ownerId`, capturing `liveCamera`'s current pose as its restore point. Throws if `ownerId` is already on the stack. */
|
|
227
229
|
take(ownerId: string, options?: CameraOwnershipTakeOptions): void;
|
|
228
230
|
/** Hard-cut the live camera to `cameraKey`'s current pose. `ownerId` must be the current (top-of-stack) owner. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera-ownership.d.ts","sourceRoot":"","sources":["../../src/animation/camera-ownership.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE
|
|
1
|
+
{"version":3,"file":"camera-ownership.d.ts","sourceRoot":"","sources":["../../src/animation/camera-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,43 @@ export function createCameraOwnershipSystem(options) {
|
|
|
47
47
|
const defaultPolicy = options.defaultPolicy ?? 'restore';
|
|
48
48
|
const phase = options.phase ?? 'render';
|
|
49
49
|
const stack = [];
|
|
50
|
+
const listeners = new Set();
|
|
50
51
|
let disposed = false;
|
|
52
|
+
let transitionWasVisible = false;
|
|
53
|
+
function notify() {
|
|
54
|
+
for (const listener of listeners)
|
|
55
|
+
listener();
|
|
56
|
+
}
|
|
57
|
+
function transitionSnapshot(frame) {
|
|
58
|
+
const state = frame?.state;
|
|
59
|
+
if (!state || state.durationSeconds <= 0)
|
|
60
|
+
return null;
|
|
61
|
+
const elapsedSeconds = Math.max(0, clock.time - state.startTime);
|
|
62
|
+
const progress = Math.min(elapsedSeconds / state.durationSeconds, 1);
|
|
63
|
+
if (progress >= 1)
|
|
64
|
+
return null;
|
|
65
|
+
return {
|
|
66
|
+
fromCameraId: state.fromTargetKey,
|
|
67
|
+
toCameraId: state.targetKey,
|
|
68
|
+
durationSeconds: state.durationSeconds,
|
|
69
|
+
elapsedSeconds,
|
|
70
|
+
progress,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function snapshot() {
|
|
74
|
+
const top = stack[stack.length - 1];
|
|
75
|
+
return {
|
|
76
|
+
cameras: Object.entries(cameras).map(([id, camera]) => ({
|
|
77
|
+
id,
|
|
78
|
+
label: camera.name || id,
|
|
79
|
+
nativeId: camera.uuid,
|
|
80
|
+
})),
|
|
81
|
+
activeCameraId: top?.state?.targetKey ?? null,
|
|
82
|
+
activeControllerId: top?.ownerId ?? null,
|
|
83
|
+
ownershipDepth: stack.length,
|
|
84
|
+
transition: transitionSnapshot(top),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
51
87
|
function requireNotDisposed(action) {
|
|
52
88
|
if (disposed) {
|
|
53
89
|
throw new CameraOwnershipError(`[camera-ownership] ${action}: system has been disposed`, '');
|
|
@@ -90,6 +126,7 @@ export function createCameraOwnershipSystem(options) {
|
|
|
90
126
|
requireSourceCamera(cameraKey, 'cut/blend'); // validate before mutating frame state
|
|
91
127
|
frame.state = {
|
|
92
128
|
targetKey: cameraKey,
|
|
129
|
+
fromTargetKey: frame.state?.targetKey ?? null,
|
|
93
130
|
fromPose: capturePose(liveCamera),
|
|
94
131
|
startTime: clock.time,
|
|
95
132
|
durationSeconds,
|
|
@@ -101,6 +138,8 @@ export function createCameraOwnershipSystem(options) {
|
|
|
101
138
|
// hook's own 'preRender'-phase call site, once more from this module's
|
|
102
139
|
// later 'render'-phase evaluator).
|
|
103
140
|
evaluateFrame(frame);
|
|
141
|
+
transitionWasVisible = transitionSnapshot(frame) !== null;
|
|
142
|
+
notify();
|
|
104
143
|
}
|
|
105
144
|
function releaseFrame(frame, completed) {
|
|
106
145
|
const shouldRetain = frame.policy === 'retain' || (frame.policy === 'retain-if-completed' && completed);
|
|
@@ -110,8 +149,13 @@ export function createCameraOwnershipSystem(options) {
|
|
|
110
149
|
}
|
|
111
150
|
const handle = clock.subscribe(phase, () => {
|
|
112
151
|
const top = stack[stack.length - 1];
|
|
113
|
-
if (top)
|
|
152
|
+
if (top) {
|
|
114
153
|
evaluateFrame(top);
|
|
154
|
+
const transitionIsVisible = transitionSnapshot(top) !== null;
|
|
155
|
+
if (transitionIsVisible || transitionWasVisible)
|
|
156
|
+
notify();
|
|
157
|
+
transitionWasVisible = transitionIsVisible;
|
|
158
|
+
}
|
|
115
159
|
});
|
|
116
160
|
return {
|
|
117
161
|
take(ownerId, takeOptions = {}) {
|
|
@@ -125,6 +169,7 @@ export function createCameraOwnershipSystem(options) {
|
|
|
125
169
|
restorePose: capturePose(liveCamera),
|
|
126
170
|
state: undefined,
|
|
127
171
|
});
|
|
172
|
+
notify();
|
|
128
173
|
},
|
|
129
174
|
cut(ownerId, cameraKey) {
|
|
130
175
|
requireNotDisposed('cut');
|
|
@@ -146,6 +191,8 @@ export function createCameraOwnershipSystem(options) {
|
|
|
146
191
|
const top = requireTopOwner(ownerId, 'release');
|
|
147
192
|
stack.pop();
|
|
148
193
|
releaseFrame(top, releaseOptions.completed ?? false);
|
|
194
|
+
transitionWasVisible = false;
|
|
195
|
+
notify();
|
|
149
196
|
},
|
|
150
197
|
isOwner(ownerId) {
|
|
151
198
|
const top = stack[stack.length - 1];
|
|
@@ -154,6 +201,13 @@ export function createCameraOwnershipSystem(options) {
|
|
|
154
201
|
get depth() {
|
|
155
202
|
return stack.length;
|
|
156
203
|
},
|
|
204
|
+
snapshot,
|
|
205
|
+
subscribe(listener) {
|
|
206
|
+
if (disposed)
|
|
207
|
+
return () => undefined;
|
|
208
|
+
listeners.add(listener);
|
|
209
|
+
return () => listeners.delete(listener);
|
|
210
|
+
},
|
|
157
211
|
dispose() {
|
|
158
212
|
if (disposed)
|
|
159
213
|
return;
|
|
@@ -163,7 +217,10 @@ export function createCameraOwnershipSystem(options) {
|
|
|
163
217
|
if (top)
|
|
164
218
|
releaseFrame(top, false);
|
|
165
219
|
}
|
|
220
|
+
transitionWasVisible = false;
|
|
166
221
|
handle.dispose();
|
|
222
|
+
notify();
|
|
223
|
+
listeners.clear();
|
|
167
224
|
},
|
|
168
225
|
};
|
|
169
226
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Live native animation playback for editor tools. Runtime state is read-only;
|
|
4
|
+
* an edit-time subject may additionally publish transient preview transport.
|
|
5
|
+
* This is instrumentation, not an animation asset or graph format.
|
|
6
|
+
*/
|
|
7
|
+
export interface AnimationRuntimeInspection {
|
|
8
|
+
readonly mixer: THREE.AnimationMixer;
|
|
9
|
+
readonly clips: ReadonlyMap<string, THREE.AnimationClip>;
|
|
10
|
+
readonly getSnapshot: () => AnimationRuntimeSnapshot;
|
|
11
|
+
readonly previewTransport?: AnimationPreviewTransport;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Optional controls for an isolated Asset Lab preview clock. A live gameplay
|
|
15
|
+
* runtime deliberately omits this: the editor may observe live playback, but
|
|
16
|
+
* it must not pause or seek the game through an animation inspector.
|
|
17
|
+
*/
|
|
18
|
+
export interface AnimationPreviewTransport {
|
|
19
|
+
readonly getSnapshot: () => AnimationPreviewTransportSnapshot;
|
|
20
|
+
readonly setPlaying: (playing: boolean) => void;
|
|
21
|
+
readonly setLoop: (loop: boolean) => void;
|
|
22
|
+
readonly setSpeed: (speed: number) => void;
|
|
23
|
+
readonly seek: (time: number) => void;
|
|
24
|
+
/** Select a source clip for isolated preview; `null` resumes controller output. */
|
|
25
|
+
readonly setClip: (name: string | null) => void;
|
|
26
|
+
}
|
|
27
|
+
export interface AnimationPreviewTransportSnapshot {
|
|
28
|
+
readonly clip: string;
|
|
29
|
+
readonly time: number;
|
|
30
|
+
readonly playing: boolean;
|
|
31
|
+
readonly loop: boolean;
|
|
32
|
+
readonly speed: number;
|
|
33
|
+
readonly mode: 'controller' | 'clip';
|
|
34
|
+
}
|
|
35
|
+
export interface AnimationRuntimeSnapshot {
|
|
36
|
+
readonly layers: readonly AnimationRuntimeLayer[];
|
|
37
|
+
}
|
|
38
|
+
export interface AnimationRuntimeLayer {
|
|
39
|
+
readonly id: string;
|
|
40
|
+
readonly state?: string;
|
|
41
|
+
readonly weight: number;
|
|
42
|
+
readonly blendMode: 'override' | 'additive';
|
|
43
|
+
readonly boneMask?: {
|
|
44
|
+
readonly include?: readonly string[] | undefined;
|
|
45
|
+
readonly exclude?: readonly string[] | undefined;
|
|
46
|
+
};
|
|
47
|
+
readonly actions: readonly AnimationRuntimeAction[];
|
|
48
|
+
readonly blendSpace?: AnimationRuntimeBlendSpace;
|
|
49
|
+
}
|
|
50
|
+
export interface AnimationRuntimeAction {
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly clip: THREE.AnimationClip;
|
|
53
|
+
readonly action: THREE.AnimationAction;
|
|
54
|
+
}
|
|
55
|
+
export interface AnimationRuntimeBlendSpace {
|
|
56
|
+
readonly type: '1D' | '2D' | 'direct';
|
|
57
|
+
readonly parameter: string;
|
|
58
|
+
readonly parameterY?: string;
|
|
59
|
+
readonly values: ReadonlyMap<string, number | boolean>;
|
|
60
|
+
readonly samples: readonly {
|
|
61
|
+
readonly clip: string;
|
|
62
|
+
readonly x: number;
|
|
63
|
+
readonly y?: number;
|
|
64
|
+
readonly weight: number;
|
|
65
|
+
}[];
|
|
66
|
+
}
|
|
67
|
+
export declare function subscribeAnimationRuntimeInspections(listener: () => void): () => void;
|
|
68
|
+
export declare function animationRuntimeInspectionsVersion(): number;
|
|
69
|
+
export declare function attachAnimationRuntimeInspection(owner: THREE.Object3D, inspection: AnimationRuntimeInspection): () => void;
|
|
70
|
+
//# sourceMappingURL=runtime-inspection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-inspection.d.ts","sourceRoot":"","sources":["../../src/animation/runtime-inspection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { deleteUserData, getUserData, setUserData } from '../ecs/user-data';
|
|
2
|
+
let version = 0;
|
|
3
|
+
const listeners = new Set();
|
|
4
|
+
function notify() {
|
|
5
|
+
version++;
|
|
6
|
+
for (const listener of listeners)
|
|
7
|
+
listener();
|
|
8
|
+
}
|
|
9
|
+
export function subscribeAnimationRuntimeInspections(listener) {
|
|
10
|
+
listeners.add(listener);
|
|
11
|
+
return () => listeners.delete(listener);
|
|
12
|
+
}
|
|
13
|
+
export function animationRuntimeInspectionsVersion() {
|
|
14
|
+
return version;
|
|
15
|
+
}
|
|
16
|
+
export function attachAnimationRuntimeInspection(owner, inspection) {
|
|
17
|
+
setUserData(owner, '_animationRuntime', inspection);
|
|
18
|
+
notify();
|
|
19
|
+
return () => {
|
|
20
|
+
if (getUserData(owner, '_animationRuntime') !== inspection)
|
|
21
|
+
return;
|
|
22
|
+
deleteUserData(owner, '_animationRuntime');
|
|
23
|
+
notify();
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -96,6 +96,10 @@ export interface XStateAnimationBinding {
|
|
|
96
96
|
/** Advance native actions/mixer. Register this in the engine animation phase. */
|
|
97
97
|
tick: (dt: number) => void;
|
|
98
98
|
readonly actor: XStateAnimationActor;
|
|
99
|
+
/** Live numeric/boolean values after the binding's optional parameter selector.
|
|
100
|
+
* This is the exact parameter surface used by blend evaluation, exposed so
|
|
101
|
+
* editor instrumentation never guesses by reading actor context directly. */
|
|
102
|
+
getParameters: () => ReadonlyMap<string, number | boolean>;
|
|
99
103
|
/** Current native composition, useful to the editor and game diagnostics. */
|
|
100
104
|
getActiveLayers: () => readonly XStateAnimationLayerState[];
|
|
101
105
|
/** Unsubscribe, stop/uncache actions, and remove owner inspection data. Idempotent. */
|
|
@@ -106,7 +110,11 @@ export declare function subscribeXStateAnimationBindings(listener: () => void):
|
|
|
106
110
|
/** Monotonic snapshot changed whenever a binding is attached or disposed. */
|
|
107
111
|
export declare function getXStateAnimationBindingsVersion(): number;
|
|
108
112
|
/**
|
|
109
|
-
*
|
|
113
|
+
* Optional integration that maps a native XState actor to native Three
|
|
114
|
+
* actions. XState remains a behavior primitive; this bridge is useful when a
|
|
115
|
+
* project deliberately chooses to let one behavior statechart emit animation
|
|
116
|
+
* policy, but it is not the engine's animation model. Animation inspection is
|
|
117
|
+
* published separately through `AnimationRuntimeInspection`.
|
|
110
118
|
*
|
|
111
119
|
* One active animated state is allowed per named layer. Parallel XState
|
|
112
120
|
* regions therefore compose lower-body locomotion, upper-body weapon states,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xstate-animation-binding.d.ts","sourceRoot":"","sources":["../../src/animation/xstate-animation-binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"xstate-animation-binding.d.ts","sourceRoot":"","sources":["../../src/animation/xstate-animation-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { deleteUserData, getUserData, setUserData } from '../ecs/user-data';
|
|
3
3
|
import { evaluateBlendTree } from './blend-node';
|
|
4
|
+
import { attachAnimationRuntimeInspection } from './runtime-inspection';
|
|
4
5
|
import { clipNamesOf, collectMachineAnimationMeta, isBlendTreeAnimationMeta, } from './xstate-animation-meta';
|
|
5
6
|
/** A binding-time problem such as a missing clip, bone, or ambiguous layer. */
|
|
6
7
|
export class AnimationBindingError extends Error {
|
|
@@ -99,7 +100,11 @@ function dominantOf(weights) {
|
|
|
99
100
|
return weights.reduce((a, b) => (b.weight > a.weight ? b : a), weights[0]);
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
102
|
-
*
|
|
103
|
+
* Optional integration that maps a native XState actor to native Three
|
|
104
|
+
* actions. XState remains a behavior primitive; this bridge is useful when a
|
|
105
|
+
* project deliberately chooses to let one behavior statechart emit animation
|
|
106
|
+
* policy, but it is not the engine's animation model. Animation inspection is
|
|
107
|
+
* published separately through `AnimationRuntimeInspection`.
|
|
103
108
|
*
|
|
104
109
|
* One active animated state is allowed per named layer. Parallel XState
|
|
105
110
|
* regions therefore compose lower-body locomotion, upper-body weapon states,
|
|
@@ -193,6 +198,7 @@ export function bindXStateAnimation(actor, mixer, clips, options = {}) {
|
|
|
193
198
|
}
|
|
194
199
|
const activeLayers = new Map();
|
|
195
200
|
let disposed = false;
|
|
201
|
+
let detachRuntimeInspection = () => { };
|
|
196
202
|
function silence(weights, except, duration) {
|
|
197
203
|
for (const weighted of weights) {
|
|
198
204
|
if (weighted.actionKey === except)
|
|
@@ -312,6 +318,7 @@ export function bindXStateAnimation(actor, mixer, clips, options = {}) {
|
|
|
312
318
|
const binding = {
|
|
313
319
|
tick,
|
|
314
320
|
actor,
|
|
321
|
+
getParameters: () => readParameters(actor.getSnapshot().context),
|
|
315
322
|
getActiveLayers: () => [...activeLayers.values()].map((active) => ({
|
|
316
323
|
layer: active.layer,
|
|
317
324
|
stateId: active.stateId,
|
|
@@ -328,6 +335,7 @@ export function bindXStateAnimation(actor, mixer, clips, options = {}) {
|
|
|
328
335
|
if (disposed)
|
|
329
336
|
return;
|
|
330
337
|
disposed = true;
|
|
338
|
+
detachRuntimeInspection();
|
|
331
339
|
options.systems?.remove('animation', tick);
|
|
332
340
|
subscription.unsubscribe();
|
|
333
341
|
for (const { action, clip } of actionCache.values()) {
|
|
@@ -342,6 +350,45 @@ export function bindXStateAnimation(actor, mixer, clips, options = {}) {
|
|
|
342
350
|
}
|
|
343
351
|
},
|
|
344
352
|
};
|
|
353
|
+
detachRuntimeInspection = attachAnimationRuntimeInspection(owner, {
|
|
354
|
+
mixer,
|
|
355
|
+
clips,
|
|
356
|
+
getSnapshot: () => ({
|
|
357
|
+
layers: [...activeLayers.values()].map((active) => {
|
|
358
|
+
const parameters = readParameters(actor.getSnapshot().context);
|
|
359
|
+
const blendSpace = isBlendTreeAnimationMeta(active.meta)
|
|
360
|
+
? {
|
|
361
|
+
type: active.meta.blendTree.type,
|
|
362
|
+
parameter: active.meta.blendTree.parameter,
|
|
363
|
+
...(active.meta.blendTree.type === '2D'
|
|
364
|
+
? { parameterY: active.meta.blendTree.parameterY }
|
|
365
|
+
: {}),
|
|
366
|
+
values: parameters,
|
|
367
|
+
samples: active.meta.blendTree.children.map((child) => ({
|
|
368
|
+
clip: child.clip,
|
|
369
|
+
x: child.threshold,
|
|
370
|
+
...(child.thresholdY === undefined ? {} : { y: child.thresholdY }),
|
|
371
|
+
weight: actionCache
|
|
372
|
+
.get(actionKey(active.stateId, active.meta, child.clip))
|
|
373
|
+
?.action.getEffectiveWeight() ?? 0,
|
|
374
|
+
})),
|
|
375
|
+
}
|
|
376
|
+
: undefined;
|
|
377
|
+
return {
|
|
378
|
+
id: active.layer,
|
|
379
|
+
state: active.stateId,
|
|
380
|
+
weight: layerWeightOf(active.meta),
|
|
381
|
+
blendMode: blendModeOf(active.meta),
|
|
382
|
+
...(active.meta.boneMask ? { boneMask: active.meta.boneMask } : {}),
|
|
383
|
+
actions: active.natural.map((weighted) => {
|
|
384
|
+
const cached = actionCache.get(weighted.actionKey);
|
|
385
|
+
return { name: weighted.clip, clip: cached.clip, action: cached.action };
|
|
386
|
+
}),
|
|
387
|
+
...(blendSpace ? { blendSpace } : {}),
|
|
388
|
+
};
|
|
389
|
+
}),
|
|
390
|
+
}),
|
|
391
|
+
});
|
|
345
392
|
setUserData(owner, '_xstateAnimation', binding);
|
|
346
393
|
notifyInspectionLifecycle();
|
|
347
394
|
options.systems?.add('animation', tick);
|
|
@@ -1373,6 +1373,19 @@ export declare const ParticlesDescriptorSchema: z.ZodObject<{
|
|
|
1373
1373
|
}>>;
|
|
1374
1374
|
color: z.ZodOptional<z.ZodString>;
|
|
1375
1375
|
map: z.ZodOptional<z.ZodString>;
|
|
1376
|
+
mapSampler: z.ZodOptional<z.ZodObject<{
|
|
1377
|
+
wrap: z.ZodOptional<z.ZodEnum<{
|
|
1378
|
+
repeat: "repeat";
|
|
1379
|
+
clamp: "clamp";
|
|
1380
|
+
mirror: "mirror";
|
|
1381
|
+
}>>;
|
|
1382
|
+
filter: z.ZodOptional<z.ZodEnum<{
|
|
1383
|
+
linear: "linear";
|
|
1384
|
+
nearest: "nearest";
|
|
1385
|
+
}>>;
|
|
1386
|
+
mipmaps: z.ZodOptional<z.ZodBoolean>;
|
|
1387
|
+
anisotropy: z.ZodOptional<z.ZodNumber>;
|
|
1388
|
+
}, z.core.$strip>>;
|
|
1376
1389
|
blending: z.ZodOptional<z.ZodEnum<{
|
|
1377
1390
|
additive: "additive";
|
|
1378
1391
|
normal: "normal";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"particles.d.ts","sourceRoot":"","sources":["../../src/asset-formats/particles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;2BAEuC,CAAC;AAEzE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAqDtE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAOqD,CAAC;AAEvF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA0DtE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAWM,CAAC;AAEtC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAsFlE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAiB2B,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAI1D,eAAO,MAAM,gBAAgB;;;;;;;EASY,CAAC;
|
|
1
|
+
{"version":3,"file":"particles.d.ts","sourceRoot":"","sources":["../../src/asset-formats/particles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;2BAEuC,CAAC;AAEzE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAqDtE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAOqD,CAAC;AAEvF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA0DtE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAWM,CAAC;AAEtC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAsFlE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAiB2B,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAI1D,eAAO,MAAM,gBAAgB;;;;;;;EASY,CAAC;AAmE1C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoEM,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -234,11 +234,39 @@ export const RenderModeSchema = z
|
|
|
234
234
|
])
|
|
235
235
|
.describe('How particles are rendered');
|
|
236
236
|
// --- Particle Material (our format — asset paths, not Three.js UUIDs) ---
|
|
237
|
+
/**
|
|
238
|
+
* The sprite `map`'s SAMPLER — how the image is addressed outside [0,1], interpolated, and
|
|
239
|
+
* mip-chained. Separate from the URL because two emitters can name one image and want different
|
|
240
|
+
* sampling of it; the factory caches per URL *and* sampler for exactly that reason.
|
|
241
|
+
*
|
|
242
|
+
* An absent field leaves three's own default alone (clamp-to-edge, linear, mipmapped, anisotropy
|
|
243
|
+
* 1) rather than restating it — the same "absent means the loader's default" contract the rest of
|
|
244
|
+
* this descriptor keeps. `map`'s COLOUR SPACE is deliberately not here: a `map` is always a colour
|
|
245
|
+
* texture, so the factory states sRGB unconditionally (see `particles-factory.ts`).
|
|
246
|
+
*/
|
|
247
|
+
const ParticleMapSamplerSchema = z
|
|
248
|
+
.object({
|
|
249
|
+
wrap: z
|
|
250
|
+
.enum(['clamp', 'repeat', 'mirror'])
|
|
251
|
+
.optional()
|
|
252
|
+
.describe('How UVs outside [0,1] address the sprite image (three wrapS/wrapT)'),
|
|
253
|
+
filter: z
|
|
254
|
+
.enum(['linear', 'nearest'])
|
|
255
|
+
.optional()
|
|
256
|
+
.describe('Texel interpolation — nearest keeps a pixel-art sprite crisp'),
|
|
257
|
+
mipmaps: z.boolean().optional().describe('Generate and sample a mip chain'),
|
|
258
|
+
anisotropy: z
|
|
259
|
+
.number()
|
|
260
|
+
.optional()
|
|
261
|
+
.describe('Anisotropic filtering samples, for sprites viewed at grazing angles'),
|
|
262
|
+
})
|
|
263
|
+
.describe('Sprite texture sampler state');
|
|
237
264
|
const ParticleMaterialSchema = z
|
|
238
265
|
.object({
|
|
239
266
|
type: z.enum(['basic', 'standard']).optional().describe('Particle material shading model'),
|
|
240
267
|
color: z.string().optional().describe('Particle color as CSS hex string'),
|
|
241
268
|
map: z.string().optional().describe('Path to particle sprite texture'),
|
|
269
|
+
mapSampler: ParticleMapSamplerSchema.optional().describe('Sampler state applied to the sprite texture named by `map`'),
|
|
242
270
|
blending: z
|
|
243
271
|
.enum(['normal', 'additive'])
|
|
244
272
|
.optional()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type * as THREE from 'three';
|
|
2
|
+
import type { AnyStateMachine } from 'xstate';
|
|
3
|
+
/** Minimal structural actor surface needed by the live behavior debugger. */
|
|
4
|
+
export interface InspectableXStateActor {
|
|
5
|
+
readonly getSnapshot: () => {
|
|
6
|
+
readonly value: unknown;
|
|
7
|
+
readonly context: unknown;
|
|
8
|
+
readonly machine?: AnyStateMachine;
|
|
9
|
+
};
|
|
10
|
+
readonly subscribe: (next: (snapshot: {
|
|
11
|
+
readonly value: unknown;
|
|
12
|
+
}) => void) => {
|
|
13
|
+
unsubscribe: () => void;
|
|
14
|
+
};
|
|
15
|
+
readonly logic?: AnyStateMachine;
|
|
16
|
+
}
|
|
17
|
+
export interface XStateBehaviorInspection {
|
|
18
|
+
readonly actor: InspectableXStateActor;
|
|
19
|
+
readonly machine: AnyStateMachine;
|
|
20
|
+
}
|
|
21
|
+
export declare function subscribeXStateBehaviorInspections(listener: () => void): () => void;
|
|
22
|
+
export declare function xstateBehaviorInspectionsVersion(): number;
|
|
23
|
+
export declare function attachXStateBehaviorInspection(owner: THREE.Object3D, inspection: XStateBehaviorInspection): () => void;
|
|
24
|
+
//# sourceMappingURL=xstate-inspection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xstate-inspection.d.ts","sourceRoot":"","sources":["../../src/behavior/xstate-inspection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAG9C,6EAA6E;AAC7E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM;QAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;KACpC,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,KAAK;QAC7E,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAUD,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAGnF;AAED,wBAAgB,gCAAgC,IAAI,MAAM,CAEzD;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,UAAU,EAAE,wBAAwB,GACnC,MAAM,IAAI,CAQZ"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { deleteUserData, getUserData, setUserData } from '../ecs/user-data';
|
|
2
|
+
let version = 0;
|
|
3
|
+
const listeners = new Set();
|
|
4
|
+
function notify() {
|
|
5
|
+
version++;
|
|
6
|
+
for (const listener of listeners)
|
|
7
|
+
listener();
|
|
8
|
+
}
|
|
9
|
+
export function subscribeXStateBehaviorInspections(listener) {
|
|
10
|
+
listeners.add(listener);
|
|
11
|
+
return () => listeners.delete(listener);
|
|
12
|
+
}
|
|
13
|
+
export function xstateBehaviorInspectionsVersion() {
|
|
14
|
+
return version;
|
|
15
|
+
}
|
|
16
|
+
export function attachXStateBehaviorInspection(owner, inspection) {
|
|
17
|
+
setUserData(owner, '_xstateBehavior', inspection);
|
|
18
|
+
notify();
|
|
19
|
+
return () => {
|
|
20
|
+
if (getUserData(owner, '_xstateBehavior') !== inspection)
|
|
21
|
+
return;
|
|
22
|
+
deleteUserData(owner, '_xstateBehavior');
|
|
23
|
+
notify();
|
|
24
|
+
};
|
|
25
|
+
}
|
package/dist/core/game-loop.d.ts
CHANGED
|
@@ -39,12 +39,14 @@ export declare function createGameLoop(config: GameLoopConfig): {
|
|
|
39
39
|
/**
|
|
40
40
|
* Truthful liveness (issue #175 — see `GameLoopLiveness`'s doc comment
|
|
41
41
|
* in `core/types.ts` for the full contract). Unlike `isRunning` above,
|
|
42
|
-
* this
|
|
43
|
-
* `
|
|
44
|
-
*
|
|
45
|
-
* so
|
|
42
|
+
* this distinguishes a starved rAF loop from an actually-stopped loop.
|
|
43
|
+
* `visibilityPaused` records the deliberate `document.hidden` gate, and
|
|
44
|
+
* every read first reconciles that flag against the CURRENT document bit
|
|
45
|
+
* so a missed visibilitychange cannot wedge it. A visible, armed chain
|
|
46
|
+
* also reports starvation when no real frame callback has arrived within
|
|
47
|
+
* {@link LOOP_STARVATION_MS}; "armed" alone is not evidence of progress. An
|
|
46
48
|
* `externalDrive` loop never installs the visibility listener at all
|
|
47
|
-
* (see `start()` above), so `
|
|
49
|
+
* (see `start()` above), so `visibilityPaused` stays permanently `false` for
|
|
48
50
|
* it — it only ever reports `'running'` or `'stopped'`.
|
|
49
51
|
*/
|
|
50
52
|
readonly liveness: GameLoopLiveness;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-loop.d.ts","sourceRoot":"","sources":["../../src/core/game-loop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"game-loop.d.ts","sourceRoot":"","sources":["../../src/core/game-loop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc;;;;IAuIjD;;;;;;;;;;;;OAYG;uBACa,gBAAgB;eASX,MAAM;IAe3B;;;;;;;OAOG;;EAKN"}
|