@aura3d/engine 1.0.5 → 1.0.7
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 +41 -19
- package/dist/animation/AnimationStateGraph.d.ts +2 -0
- package/dist/animation/AnimationStateGraph.d.ts.map +1 -0
- package/dist/animation/AnimationStateGraph.js +2 -0
- package/dist/animation/AnimationStateGraph.js.map +1 -0
- package/dist/animation/AnimationStateMachine.d.ts +16 -0
- package/dist/animation/AnimationStateMachine.d.ts.map +1 -1
- package/dist/animation/AnimationStateMachine.js +69 -7
- package/dist/animation/AnimationStateMachine.js.map +1 -1
- package/dist/animation/index.d.ts +1 -0
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/index.js +1 -0
- package/dist/animation/index.js.map +1 -1
- package/dist/aura3d-cli/cli.js +39 -8
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +9 -0
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +215 -13
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +14 -1
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +101 -15
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/engine/agent-api/FrameLoop.d.ts.map +1 -1
- package/dist/engine/agent-api/FrameLoop.js +8 -2
- package/dist/engine/agent-api/FrameLoop.js.map +1 -1
- package/dist/engine/agent-api/GameAppRuntime.d.ts +62 -0
- package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -0
- package/dist/engine/agent-api/GameAppRuntime.js +189 -0
- package/dist/engine/agent-api/GameAppRuntime.js.map +1 -0
- package/dist/engine/agent-api/index.d.ts +8 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +12 -0
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +63 -0
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -0
- package/dist/engine/production-runtime/TypedGLBActor.js +116 -0
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -0
- package/dist/engine/production-runtime/index.d.ts +4 -3
- package/dist/engine/production-runtime/index.d.ts.map +1 -1
- package/dist/engine/production-runtime/index.js +2 -2
- package/dist/engine/production-runtime/index.js.map +1 -1
- package/dist/physics/HitboxWorld.d.ts +22 -1
- package/dist/physics/HitboxWorld.d.ts.map +1 -1
- package/dist/physics/HitboxWorld.js +142 -11
- package/dist/physics/HitboxWorld.js.map +1 -1
- package/package.json +138 -116
|
@@ -28,7 +28,7 @@ export function createA3DProject(options) {
|
|
|
28
28
|
const packageJson = JSON.parse(readFileSync(packagePath, "utf8"));
|
|
29
29
|
packageJson.dependencies = {
|
|
30
30
|
...(packageJson.dependencies ?? {}),
|
|
31
|
-
"@aura3d/engine": options.packageVersion ?? "1.0.
|
|
31
|
+
"@aura3d/engine": options.packageVersion ?? "1.0.6"
|
|
32
32
|
};
|
|
33
33
|
writeFileSync(packagePath, `${JSON.stringify(packageJson, null, 2)}\n`);
|
|
34
34
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameLoop.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/FrameLoop.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,CAAC;IACrE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;CACrC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAA2B;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAC,CAAiB;gBAEvB,OAAO,GAAE,gBAAqB;
|
|
1
|
+
{"version":3,"file":"FrameLoop.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/FrameLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,11 +23,17 @@ export class FrameLoop {
|
|
|
23
23
|
this.requestFrame =
|
|
24
24
|
options.useRaf === false
|
|
25
25
|
? undefined
|
|
26
|
-
: options.requestFrame ??
|
|
26
|
+
: options.requestFrame ??
|
|
27
|
+
(typeof globalThis.requestAnimationFrame === "undefined"
|
|
28
|
+
? undefined
|
|
29
|
+
: (callback) => globalThis.requestAnimationFrame(callback));
|
|
27
30
|
this.cancelFrame =
|
|
28
31
|
options.useRaf === false
|
|
29
32
|
? undefined
|
|
30
|
-
: options.cancelFrame ??
|
|
33
|
+
: options.cancelFrame ??
|
|
34
|
+
(typeof globalThis.cancelAnimationFrame === "undefined"
|
|
35
|
+
? undefined
|
|
36
|
+
: (handle) => globalThis.cancelAnimationFrame(handle));
|
|
31
37
|
if (options.autoStart)
|
|
32
38
|
this.start();
|
|
33
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameLoop.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/FrameLoop.ts"],"names":[],"mappings":"AAyCA,MAAM,OAAO,SAAS;IACH,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IACzC,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,SAAS,CAAS;IAClB,GAAG,CAAe;IAClB,YAAY,CAAgD;IAC5D,WAAW,CAA4B;IAChD,OAAO,GAAG,KAAK,CAAC;IAChB,MAAM,GAAG,KAAK,CAAC;IACf,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAK,GAAG,CAAC,CAAC;IACV,IAAI,GAAG,CAAC,CAAC;IACT,WAAW,GAAG,CAAC,CAAC;IAChB,OAAO,GAAG,CAAC,CAAC;IACZ,SAAS,GAAG,CAAC,CAAC;IACd,SAAS,CAAkB;IAEnC,YAAY,UAA4B,EAAE;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY;YACf,OAAO,CAAC,MAAM,KAAK,KAAK;gBACtB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"FrameLoop.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/FrameLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { AuraAppFrameCallback, AuraAppHandle, AuraAppScreenshot } from "./AuraAppHandle";
|
|
2
|
+
import type { GameInputController, GameInputOptions } from "./GameRuntime";
|
|
3
|
+
import type { GameRuntimeEvidence, GameRuntimeEvidenceOptions } from "./GameEvidence";
|
|
4
|
+
import { type FrameLoopOptions, type FrameLoopSnapshot } from "./FrameLoop";
|
|
5
|
+
export type GameAppRuntimeStatus = "idle" | "running" | "paused" | "disposed";
|
|
6
|
+
export interface GameAppRuntimeLoopOptions extends Omit<FrameLoopOptions, "autoStart"> {
|
|
7
|
+
}
|
|
8
|
+
export interface GameAppRuntimeResize {
|
|
9
|
+
readonly width: number;
|
|
10
|
+
readonly height: number;
|
|
11
|
+
readonly pixelRatio: number;
|
|
12
|
+
}
|
|
13
|
+
export interface GameAppRuntimeEvidence {
|
|
14
|
+
readonly kind: "aura-game-app-runtime-evidence";
|
|
15
|
+
readonly status: GameAppRuntimeStatus;
|
|
16
|
+
readonly running: boolean;
|
|
17
|
+
readonly paused: boolean;
|
|
18
|
+
readonly disposed: boolean;
|
|
19
|
+
readonly started: boolean;
|
|
20
|
+
readonly frame: number;
|
|
21
|
+
readonly time: number;
|
|
22
|
+
readonly fixedDt: number;
|
|
23
|
+
readonly startCount: number;
|
|
24
|
+
readonly pauseCount: number;
|
|
25
|
+
readonly resumeCount: number;
|
|
26
|
+
readonly stepCount: number;
|
|
27
|
+
readonly resizeCount: number;
|
|
28
|
+
readonly disposeCount: number;
|
|
29
|
+
readonly inputControllers: number;
|
|
30
|
+
readonly activeInputControllers: number;
|
|
31
|
+
readonly lastResize?: GameAppRuntimeResize;
|
|
32
|
+
readonly loop: FrameLoopSnapshot;
|
|
33
|
+
readonly app: GameRuntimeEvidence;
|
|
34
|
+
}
|
|
35
|
+
export interface GameAppRuntimeOptions {
|
|
36
|
+
readonly autoStart?: boolean;
|
|
37
|
+
readonly loop?: GameAppRuntimeLoopOptions;
|
|
38
|
+
readonly input?: GameInputOptions | readonly GameInputOptions[];
|
|
39
|
+
readonly evidence?: GameRuntimeEvidenceOptions;
|
|
40
|
+
}
|
|
41
|
+
export interface GameAppRuntime<TApp extends AuraAppHandle = AuraAppHandle> {
|
|
42
|
+
readonly kind: "aura-game-app-runtime";
|
|
43
|
+
readonly app: TApp;
|
|
44
|
+
readonly input?: GameInputController;
|
|
45
|
+
readonly status: GameAppRuntimeStatus;
|
|
46
|
+
readonly running: boolean;
|
|
47
|
+
readonly paused: boolean;
|
|
48
|
+
readonly disposed: boolean;
|
|
49
|
+
readonly evidence: GameAppRuntimeEvidence;
|
|
50
|
+
start(): GameAppRuntimeEvidence;
|
|
51
|
+
pause(): GameAppRuntimeEvidence;
|
|
52
|
+
resume(): GameAppRuntimeEvidence;
|
|
53
|
+
step(dt?: number): GameAppRuntimeEvidence;
|
|
54
|
+
resize(width: number, height: number, pixelRatio?: number): GameAppRuntimeEvidence;
|
|
55
|
+
onFrame(callback: AuraAppFrameCallback): () => void;
|
|
56
|
+
offFrame(callback: AuraAppFrameCallback): void;
|
|
57
|
+
inputController(options: GameInputOptions): GameInputController;
|
|
58
|
+
screenshot(): AuraAppScreenshot;
|
|
59
|
+
dispose(): GameAppRuntimeEvidence;
|
|
60
|
+
}
|
|
61
|
+
export declare function createGameAppRuntime<TApp extends AuraAppHandle>(app: TApp, options?: GameAppRuntimeOptions): GameAppRuntime<TApp>;
|
|
62
|
+
//# sourceMappingURL=GameAppRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameAppRuntime.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/GameAppRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { createFrameLoop } from "./FrameLoop.js";
|
|
2
|
+
export function createGameAppRuntime(app, options = {}) {
|
|
3
|
+
const loop = createFrameLoop({ ...options.loop, autoStart: false });
|
|
4
|
+
const ownedInputs = new Set();
|
|
5
|
+
const frameCallbacks = new Set();
|
|
6
|
+
let status = "idle";
|
|
7
|
+
let started = false;
|
|
8
|
+
let disposed = false;
|
|
9
|
+
let startCount = 0;
|
|
10
|
+
let pauseCount = 0;
|
|
11
|
+
let resumeCount = 0;
|
|
12
|
+
let stepCount = 0;
|
|
13
|
+
let resizeCount = 0;
|
|
14
|
+
let disposeCount = 0;
|
|
15
|
+
let lastResize;
|
|
16
|
+
const loopFrameUnsubscribe = loop.onFrame((frame) => {
|
|
17
|
+
app.step(frame.dt);
|
|
18
|
+
});
|
|
19
|
+
const internalFrameUnsubscribe = app.onFrame((frame) => {
|
|
20
|
+
const loopSnapshot = loop.snapshot();
|
|
21
|
+
for (const input of ownedInputs)
|
|
22
|
+
input.update(frame.dt);
|
|
23
|
+
const normalizedFrame = {
|
|
24
|
+
...frame,
|
|
25
|
+
fixedDt: loopSnapshot.fixedDt,
|
|
26
|
+
paused: status === "paused" || app.runtime.paused
|
|
27
|
+
};
|
|
28
|
+
for (const callback of [...frameCallbacks]) {
|
|
29
|
+
if (frameCallbacks.has(callback))
|
|
30
|
+
callback(normalizedFrame);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const registerInput = (inputOptions) => {
|
|
34
|
+
const controller = app.input(inputOptions);
|
|
35
|
+
ownedInputs.add(controller);
|
|
36
|
+
return controller;
|
|
37
|
+
};
|
|
38
|
+
const initialInputs = Array.isArray(options.input) ? options.input : options.input ? [options.input] : [];
|
|
39
|
+
const defaultInput = initialInputs.map(registerInput)[0];
|
|
40
|
+
const evidenceOptions = () => options.evidence ?? {};
|
|
41
|
+
const snapshotEvidence = () => {
|
|
42
|
+
const appRuntime = app.runtime;
|
|
43
|
+
const loopSnapshot = loop.snapshot();
|
|
44
|
+
const activeInputControllers = disposed ? 0 : ownedInputs.size;
|
|
45
|
+
return {
|
|
46
|
+
kind: "aura-game-app-runtime-evidence",
|
|
47
|
+
status,
|
|
48
|
+
running: status === "running",
|
|
49
|
+
paused: status === "paused" || appRuntime.paused,
|
|
50
|
+
disposed,
|
|
51
|
+
started,
|
|
52
|
+
frame: appRuntime.frame,
|
|
53
|
+
time: appRuntime.time,
|
|
54
|
+
fixedDt: loopSnapshot.fixedDt,
|
|
55
|
+
startCount,
|
|
56
|
+
pauseCount,
|
|
57
|
+
resumeCount,
|
|
58
|
+
stepCount,
|
|
59
|
+
resizeCount,
|
|
60
|
+
disposeCount,
|
|
61
|
+
inputControllers: ownedInputs.size,
|
|
62
|
+
activeInputControllers,
|
|
63
|
+
...(lastResize ? { lastResize } : {}),
|
|
64
|
+
loop: loopSnapshot,
|
|
65
|
+
app: app.evidence(evidenceOptions())
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const assertAlive = (method) => {
|
|
69
|
+
if (disposed) {
|
|
70
|
+
throw new Error(`GameAppRuntime.${method}() cannot run after dispose(). Create a new game app runtime instead.`);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const runtime = {
|
|
74
|
+
kind: "aura-game-app-runtime",
|
|
75
|
+
app,
|
|
76
|
+
get input() {
|
|
77
|
+
return defaultInput;
|
|
78
|
+
},
|
|
79
|
+
get status() {
|
|
80
|
+
return status;
|
|
81
|
+
},
|
|
82
|
+
get running() {
|
|
83
|
+
return status === "running";
|
|
84
|
+
},
|
|
85
|
+
get paused() {
|
|
86
|
+
return status === "paused" || app.runtime.paused;
|
|
87
|
+
},
|
|
88
|
+
get disposed() {
|
|
89
|
+
return disposed;
|
|
90
|
+
},
|
|
91
|
+
get evidence() {
|
|
92
|
+
return snapshotEvidence();
|
|
93
|
+
},
|
|
94
|
+
start() {
|
|
95
|
+
assertAlive("start");
|
|
96
|
+
if (!started) {
|
|
97
|
+
started = true;
|
|
98
|
+
startCount += 1;
|
|
99
|
+
}
|
|
100
|
+
if (status !== "running") {
|
|
101
|
+
status = "running";
|
|
102
|
+
loop.start();
|
|
103
|
+
app.resume();
|
|
104
|
+
}
|
|
105
|
+
return snapshotEvidence();
|
|
106
|
+
},
|
|
107
|
+
pause() {
|
|
108
|
+
assertAlive("pause");
|
|
109
|
+
if (status !== "paused")
|
|
110
|
+
pauseCount += 1;
|
|
111
|
+
status = "paused";
|
|
112
|
+
loop.pause();
|
|
113
|
+
app.pause();
|
|
114
|
+
return snapshotEvidence();
|
|
115
|
+
},
|
|
116
|
+
resume() {
|
|
117
|
+
assertAlive("resume");
|
|
118
|
+
if (status !== "running")
|
|
119
|
+
resumeCount += 1;
|
|
120
|
+
started = true;
|
|
121
|
+
status = "running";
|
|
122
|
+
loop.resume();
|
|
123
|
+
app.resume();
|
|
124
|
+
return snapshotEvidence();
|
|
125
|
+
},
|
|
126
|
+
step(dt = loop.snapshot().fixedDt) {
|
|
127
|
+
assertAlive("step");
|
|
128
|
+
stepCount += 1;
|
|
129
|
+
loop.step(Math.max(0, dt));
|
|
130
|
+
return snapshotEvidence();
|
|
131
|
+
},
|
|
132
|
+
resize(width, height, pixelRatio = 1) {
|
|
133
|
+
assertAlive("resize");
|
|
134
|
+
const safeWidth = Math.max(1, Math.floor(width));
|
|
135
|
+
const safeHeight = Math.max(1, Math.floor(height));
|
|
136
|
+
const safePixelRatio = Math.max(0.01, pixelRatio);
|
|
137
|
+
resizeCount += 1;
|
|
138
|
+
lastResize = {
|
|
139
|
+
width: safeWidth,
|
|
140
|
+
height: safeHeight,
|
|
141
|
+
pixelRatio: safePixelRatio
|
|
142
|
+
};
|
|
143
|
+
if (app.canvas) {
|
|
144
|
+
app.canvas.width = Math.max(1, Math.floor(safeWidth * safePixelRatio));
|
|
145
|
+
app.canvas.height = Math.max(1, Math.floor(safeHeight * safePixelRatio));
|
|
146
|
+
app.canvas.style.width = `${safeWidth}px`;
|
|
147
|
+
app.canvas.style.height = `${safeHeight}px`;
|
|
148
|
+
}
|
|
149
|
+
return snapshotEvidence();
|
|
150
|
+
},
|
|
151
|
+
onFrame(callback) {
|
|
152
|
+
assertAlive("onFrame");
|
|
153
|
+
frameCallbacks.add(callback);
|
|
154
|
+
return () => {
|
|
155
|
+
frameCallbacks.delete(callback);
|
|
156
|
+
};
|
|
157
|
+
},
|
|
158
|
+
offFrame(callback) {
|
|
159
|
+
frameCallbacks.delete(callback);
|
|
160
|
+
},
|
|
161
|
+
inputController(inputOptions) {
|
|
162
|
+
assertAlive("inputController");
|
|
163
|
+
return registerInput(inputOptions);
|
|
164
|
+
},
|
|
165
|
+
screenshot() {
|
|
166
|
+
assertAlive("screenshot");
|
|
167
|
+
return app.screenshot();
|
|
168
|
+
},
|
|
169
|
+
dispose() {
|
|
170
|
+
if (disposed)
|
|
171
|
+
return snapshotEvidence();
|
|
172
|
+
disposeCount += 1;
|
|
173
|
+
status = "disposed";
|
|
174
|
+
disposed = true;
|
|
175
|
+
loopFrameUnsubscribe();
|
|
176
|
+
internalFrameUnsubscribe();
|
|
177
|
+
frameCallbacks.clear();
|
|
178
|
+
for (const input of ownedInputs)
|
|
179
|
+
input.dispose();
|
|
180
|
+
loop.dispose();
|
|
181
|
+
app.dispose();
|
|
182
|
+
return snapshotEvidence();
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
if (options.autoStart !== false)
|
|
186
|
+
runtime.start();
|
|
187
|
+
return runtime;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=GameAppRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameAppRuntime.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/GameAppRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,10 @@ import { createCartoonDirectorPlan } from "./CartoonDirector";
|
|
|
17
17
|
import { createCartoonPerformance } from "./CartoonPerformance";
|
|
18
18
|
import { createCartoonRenderOutputPackageMetadata, createCartoonRenderQueue } from "./CartoonRenderQueue";
|
|
19
19
|
import { collectPromptAnimationEvidence } from "./PromptAnimationEvidence";
|
|
20
|
+
import { type GameAppRuntime, type GameAppRuntimeOptions } from "./GameAppRuntime";
|
|
20
21
|
export { Engine } from "@aura3d/core";
|
|
21
22
|
export { asAuraAppHandle, isAuraAppHandle, type AuraAppFrame, type AuraAppFrameCallback, type AuraAppHandle, type AuraAppNodeRegistryLike, type AuraAppRuntimeState, type AuraAppScreenshot } from "./AuraAppHandle";
|
|
23
|
+
export { createGameAppRuntime, type GameAppRuntime, type GameAppRuntimeEvidence, type GameAppRuntimeLoopOptions, type GameAppRuntimeOptions, type GameAppRuntimeResize, type GameAppRuntimeStatus } from "./GameAppRuntime";
|
|
22
24
|
export { FrameLoop, createFrameLoop, type FrameLoopCallback, type FrameLoopFrame, type FrameLoopOptions, type FrameLoopSnapshot, type FrameLoopSource } from "./FrameLoop";
|
|
23
25
|
export { createCombatWorld, createGameCameraDirector, createGameEffects, applyGameCombatEventsToRuntime, createGameAccessibilityFocus, createGameAccessibilityLabel, createGameAccessibilityRuntimeSettings, createGameHighContrastSource, createGameHudBindings, createGameHudComboBinding, createGameHudDebugToggleBinding, createGameHudHealthBinding, createGameHudMeterBinding, createGameHudRoundBinding, createGameHudSnapshot, createGameHudTimerBinding, createGameBoxCollider, createGameCapsuleCollider, createGameColliderDebugGeometry, createGameCombatDebugGeometry, createGameDebugOverlayData, createGameDebugSceneNodes, createGameHitboxDebugGeometry, createGameInput, createGameInputReplay, createGameInputReplayDriver, createGameJumpAssist, createGameKinematicBody, createGamePauseControlsSource, createGameRectCollider, createGameReducedFlashSource, createGameReducedMotionSource, createGameSphereCollider, createGameTouchControlLayout, gameColliderAabb, gameColliders, gameInputReplayEventsAt, createGameLoopPlan, type GameAccessibilityFocusOptions, type GameAccessibilityLabelOptions, type GameAccessibilityPauseControlsOptions, type GameAccessibilityPreferenceOptions, type GameAccessibilityRuntimeSettings, type GameAccessibilityRuntimeSettingsOptions, type GameAccessibilitySource, type GameAccessibilitySourceKind, type GameAabb, type GameBounds3, type GameCameraDirector, type GameCameraDirectorOptions, type GameCameraSnapshot, type GameCameraTarget, type GameCollisionBox, type GameCombatActorOptions, type GameCombatActorSnapshot, type GameCombatActiveAttackSnapshot, type GameCombatEvent, type GameCombatEventRuntimeBridgeOptions, type GameCombatEventRuntimeBridgeResult, type GameCombatEventType, type GameCombatMove, type GameCombatWorld, type GameCombatWorldSnapshot, type GameBoxCollider, type GameBoxColliderOptions, type GameCapsuleCollider, type GameCapsuleColliderOptions, type GameCollider, type GameColliderAxis, type GameColliderBase, type GameColliderDimension, type GameColliderFactoryOptions, type GameColliderKind, type GameColliderPlane, type GameDebugGeometryNode, type GameDebugGeometryOptions, type GameDebugGeometryPrimitive, type GameDebugOverlayData, type GameDebugOverlayMetric, type GameDebugOverlayOptions, type GameDebugOverlaySection, type GameDebugSceneNode, type GameDebugSceneNodeOptions, type GameDebugScenePrimitive, type GameEffectInstance, type GameEffectAttachment, type GameEffectKind, type GameEffectOptions, type GameEffectsController, type GameEffectsSnapshot, type GameHudActorBindingOptions, type GameHudBinding, type GameHudBindingKind, type GameHudComboBindingOptions, type GameHudDebugToggleBindingOptions, type GameHudResolvedValue, type GameHudRoundBindingOptions, type GameHudSourceKind, type GameHudSnapshot, type GameHudSnapshotItem, type GameHudSnapshotOptions, type GameHudTimerBindingOptions, type GameHudValueFormat, type GameInputActionState, type GameInputAxisSettings, type GameInputAxisBinding, type GameInputController, type GameInputOptions, type GameInputReplayDriver, type GameInputReplayDriverSnapshot, type GameInputReplayEvent, type GameInputReplayOptions, type GameInputReplayPlan, type GameInputSnapshot, type GameJumpAssistController, type GameJumpAssistOptions, type GameJumpAssistSnapshot, type GameJumpAssistUpdate, type GameKinematicBody, type GameKinematicBodyOptions, type GameKinematicBodySnapshot, type GameLoopPlan, type GamePointerSnapshot, type GameRectCollider, type GameRectColliderOptions, type GameRuntimeSubsystemId, type GameRuntimeSubsystemOwnership, type GameSphereCollider, type GameSphereColliderOptions, type GameSubsystemOwner, type GameTouchControlAnchor, type GameTouchControlKind, type GameTouchControlLayout, type GameTouchControlLayoutOptions, type GameTouchControlRegion, type GameTouchControlRequest, type GameVec3, type GamepadSnapshot } from "./GameRuntime";
|
|
24
26
|
export { collectGameSceneRuntimeNodes, createGameSceneBridge, createRuntimeNodeSpec, type GameSceneBridge, type GameSceneBridgeApp, type GameSceneBridgeBodyLike, type GameSceneBridgeEvidence, type GameSceneBridgeNodeHandle, type GameSceneRuntimeNode } from "./GameSceneBridge";
|
|
@@ -2043,6 +2045,11 @@ export interface AuraCreateAppOptions {
|
|
|
2043
2045
|
readonly autoStart?: boolean;
|
|
2044
2046
|
readonly resize?: boolean;
|
|
2045
2047
|
}
|
|
2048
|
+
export interface AuraCreateGameAppOptions extends AuraCreateAppOptions {
|
|
2049
|
+
readonly loop?: GameAppRuntimeOptions["loop"];
|
|
2050
|
+
readonly input?: GameAppRuntimeOptions["input"];
|
|
2051
|
+
readonly runtimeEvidence?: GameAppRuntimeOptions["evidence"];
|
|
2052
|
+
}
|
|
2046
2053
|
export interface AuraDiagnosticsOptions {
|
|
2047
2054
|
readonly overlay?: boolean;
|
|
2048
2055
|
readonly assetPanel?: boolean;
|
|
@@ -2060,6 +2067,7 @@ export declare class AuraRuntimeError extends Error {
|
|
|
2060
2067
|
constructor(code: AuraRuntimeError["code"], message: string);
|
|
2061
2068
|
}
|
|
2062
2069
|
export declare function createAuraApp(target: AuraAppTarget, options: AuraCreateAppOptions): AuraApp;
|
|
2070
|
+
export declare function createGameApp(target: AuraAppTarget, options: AuraCreateGameAppOptions): GameAppRuntime<AuraApp>;
|
|
2063
2071
|
export declare function createAuraRouteHealthSnapshot(app: AuraApp): {
|
|
2064
2072
|
readonly status: "ready" | "error";
|
|
2065
2073
|
readonly diagnostics: AuraDiagnostics;
|