@bitmagic/cli 0.1.83-dev.3 → 0.1.83-dev.5
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 +34 -3
- package/assets/metahuman/src/work/metahuman/MetaHumanMaterials.ts +4 -0
- package/assets/metahuman/src/work/metahuman/StudioEnvironment.ts +4 -0
- package/assets/optimizing-assets/SKILL.md +3 -2
- package/assets/optimizing-assets/references/tools.md +1 -1
- package/dist/cli.d.ts +9 -0
- package/dist/commands/upgrade.d.ts +18 -0
- package/dist/commands/upgrade.js +94 -1
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/config/environments.d.ts +1 -1
- package/dist/editor/animation-preview-page.js +20 -0
- package/dist/editor/animation-preview-page.js.map +1 -1
- package/dist/editor/asset-viewer.js +4 -0
- package/dist/editor/asset-viewer.js.map +1 -1
- package/dist/editor/design.d.ts +2 -2
- package/dist/editor/design.js +2 -2
- package/dist/editor/design.js.map +1 -1
- package/dist/editor/hud-replay-page.js +5 -0
- package/dist/editor/hud-replay-page.js.map +1 -1
- package/dist/editor/recording-sink.js +1 -1
- package/dist/editor/reload-bus.js +1 -1
- package/dist/editor/runtime-token.d.ts +61 -0
- package/dist/editor/runtime-token.js +74 -0
- package/dist/editor/runtime-token.js.map +1 -0
- package/dist/editor/save.d.ts +2 -2
- package/dist/editor/server.js +39 -12
- package/dist/editor/server.js.map +1 -1
- package/dist/editor/shell-page.d.ts +13 -9
- package/dist/editor/shell-page.js +70 -11
- package/dist/editor/shell-page.js.map +1 -1
- package/dist/forge/browser-host.d.ts +1 -1
- package/dist/forge/browser-host.js +13 -10
- package/dist/forge/browser-host.js.map +1 -1
- package/dist/generate/model.js +4 -1
- package/dist/generate/model.js.map +1 -1
- package/dist/generate/prop.js +4 -1
- package/dist/generate/prop.js.map +1 -1
- package/dist/http/signed-upload.d.ts +6 -4
- package/dist/http/signed-upload.js +37 -14
- package/dist/http/signed-upload.js.map +1 -1
- package/dist/mobile/rewrite-shim.js +1 -1
- package/dist/poki/publish.d.ts +5 -1
- package/dist/poki/publish.js +24 -7
- package/dist/poki/publish.js.map +1 -1
- package/dist/publish/game-exchange.d.ts +5 -0
- package/dist/publish/game-exchange.js +16 -3
- package/dist/publish/game-exchange.js.map +1 -1
- package/dist/scaffold/aliases.d.ts +16 -1
- package/dist/scaffold/aliases.js +10 -2
- package/dist/scaffold/aliases.js.map +1 -1
- package/dist/scaffold/blender-level-skill-files.js +2 -2
- package/dist/scaffold/engine-capabilities.d.ts +34 -0
- package/dist/scaffold/engine-capabilities.js +39 -0
- package/dist/scaffold/engine-capabilities.js.map +1 -0
- package/dist/scaffold/game-migration.d.ts +88 -0
- package/dist/scaffold/game-migration.js +491 -0
- package/dist/scaffold/game-migration.js.map +1 -0
- package/dist/scaffold/import-codemod.d.ts +51 -0
- package/dist/scaffold/import-codemod.js +118 -0
- package/dist/scaffold/import-codemod.js.map +1 -0
- package/dist/scaffold/legacy-game-baselines.d.ts +14 -0
- package/dist/scaffold/legacy-game-baselines.js +218 -0
- package/dist/scaffold/legacy-game-baselines.js.map +1 -0
- package/dist/scaffold/project-files.d.ts +20 -2
- package/dist/scaffold/project-files.js +64 -58
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/scaffold/project.d.ts +10 -3
- package/dist/scaffold/project.js +22 -23
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/upgrade-project.js +4 -1
- package/dist/scaffold/upgrade-project.js.map +1 -1
- package/dist/smoke/run.js +8 -1
- package/dist/smoke/run.js.map +1 -1
- package/dist/trailer/record-session.d.ts +5 -3
- package/dist/trailer/record-session.js +12 -12
- package/dist/trailer/record-session.js.map +1 -1
- package/dist/trailer/vendored-recorder.d.ts +8 -0
- package/dist/trailer/vendored-recorder.js +26 -0
- package/dist/trailer/vendored-recorder.js.map +1 -0
- package/dist/vendor/hud-theme/engine/hud/resolveWorldTheme.js +7 -0
- package/dist/verify/browser.d.ts +6 -0
- package/dist/verify/browser.js +32 -0
- package/dist/verify/browser.js.map +1 -1
- package/dist/verify/categories.d.ts +1 -1
- package/dist/verify/categories.js +1 -0
- package/dist/verify/categories.js.map +1 -1
- package/dist/verify/classify.d.ts +17 -0
- package/dist/verify/classify.js +11 -0
- package/dist/verify/classify.js.map +1 -1
- package/dist/verify/mobile-parity.d.ts +1 -1
- package/dist/verify/mobile-parity.js +1 -1
- package/dist/verify/model-downloads.d.ts +47 -0
- package/dist/verify/model-downloads.js +127 -0
- package/dist/verify/model-downloads.js.map +1 -0
- package/package.json +8 -5
package/dist/poki/publish.d.ts
CHANGED
|
@@ -17,7 +17,11 @@ export interface PokiPublishDeps {
|
|
|
17
17
|
collect: typeof collectUrls;
|
|
18
18
|
check: (options: PokiCheckOptions) => Promise<PokiCheckResult>;
|
|
19
19
|
}
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Capability metadata lives in the engine tarball, including locally built engines: the engine
|
|
22
|
+
* manifest's `pokiExport` (engine-capabilities.ts), or on engines from before the manifest
|
|
23
|
+
* `engine/engine/poki-capabilities.json`'s `exportVersion`.
|
|
24
|
+
*/
|
|
21
25
|
export declare function requirePokiCapability(root: string): void;
|
|
22
26
|
export declare function pokiOutputPath(root: string, output: string | undefined, cwd: string): string;
|
|
23
27
|
export declare function runPokiPublish(args: PokiPublishArgs, deps?: PokiPublishDeps): Promise<void>;
|
package/dist/poki/publish.js
CHANGED
|
@@ -7,6 +7,7 @@ import { createOutput } from '../output.js';
|
|
|
7
7
|
import { loadProjectContext } from '../project/context.js';
|
|
8
8
|
import { readPlatformDeclaration } from '../project/platform-declaration.js';
|
|
9
9
|
import { computeFingerprint } from '../publish/fingerprint.js';
|
|
10
|
+
import { readEngineCapabilities } from '../scaffold/engine-capabilities.js';
|
|
10
11
|
import { buildBundlePaths, readBuildManifest, runBuild, VITE_PUBLISH_STANDALONE_CONFIG } from '../publish/bundle.js';
|
|
11
12
|
import { checkVerifyGate } from '../publish/meta-block.js';
|
|
12
13
|
import { readVerifyRecord } from '../verify/result.js';
|
|
@@ -25,22 +26,38 @@ function defaultDeps() {
|
|
|
25
26
|
check: async (options) => (await import('./check.js')).runPokiCheck(options),
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Capability metadata lives in the engine tarball, including locally built engines: the engine
|
|
31
|
+
* manifest's `pokiExport` (engine-capabilities.ts), or on engines from before the manifest
|
|
32
|
+
* `engine/engine/poki-capabilities.json`'s `exportVersion`.
|
|
33
|
+
*/
|
|
29
34
|
export function requirePokiCapability(root) {
|
|
30
35
|
if (!fs.existsSync(path.join(root, VITE_PUBLISH_STANDALONE_CONFIG))) {
|
|
31
36
|
throw new CliError(`Missing ${VITE_PUBLISH_STANDALONE_CONFIG}. Run \`bitmagic upgrade\` before Poki export.`, 4);
|
|
32
37
|
}
|
|
33
|
-
const
|
|
38
|
+
const advertised = readEngineCapabilities(path.join(root, 'engine')).pokiExport ?? legacyPokiExportVersion(root);
|
|
39
|
+
if (advertised === undefined) {
|
|
40
|
+
throw new CliError('This engine does not advertise Poki export support. Run `bitmagic upgrade`, then `bitmagic verify`.', 4);
|
|
41
|
+
}
|
|
42
|
+
if (advertised !== 1) {
|
|
43
|
+
throw new CliError('The engine Poki export capability is incompatible. Run `bitmagic self-update` and `bitmagic upgrade`.', 4);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* `exportVersion` from the marker file engines advertised Poki export with before the engine
|
|
48
|
+
* manifest; undefined when the file is missing or unreadable, NaN when it says something else.
|
|
49
|
+
*/
|
|
50
|
+
function legacyPokiExportVersion(root) {
|
|
34
51
|
let capability;
|
|
35
52
|
try {
|
|
36
|
-
capability = JSON.parse(fs.readFileSync(
|
|
53
|
+
capability = JSON.parse(fs.readFileSync(path.join(root, 'engine', 'engine', 'poki-capabilities.json'), 'utf-8'));
|
|
37
54
|
}
|
|
38
55
|
catch {
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
if (typeof capability !== 'object' || capability === null || !('exportVersion' in capability) || capability.exportVersion !== 1) {
|
|
42
|
-
throw new CliError('The engine Poki export capability is incompatible. Run `bitmagic self-update` and `bitmagic upgrade`.', 4);
|
|
56
|
+
return undefined;
|
|
43
57
|
}
|
|
58
|
+
if (typeof capability !== 'object' || capability === null || !('exportVersion' in capability))
|
|
59
|
+
return Number.NaN;
|
|
60
|
+
return typeof capability.exportVersion === 'number' ? capability.exportVersion : Number.NaN;
|
|
44
61
|
}
|
|
45
62
|
/** Project inputs, build outputs and managed artifacts a `--output` path must never land in. */
|
|
46
63
|
const PROTECTED_DIRS = /^(src|engine|node_modules|dist|\.git|\.agents|\.claude|\.kiro)(\/|$)/;
|
package/dist/poki/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/poki/publish.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/poki/publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,11 @@ import { type GameExchangeDeclaration, type PublishGameExchangeRequest, type Pub
|
|
|
2
2
|
/**
|
|
3
3
|
* Whether the engine vendored into this project can show exchange tiles at all. A project's engine
|
|
4
4
|
* only moves on `bitmagic upgrade`, so a current CLI regularly meets an engine without the module.
|
|
5
|
+
*
|
|
6
|
+
* The engine manifest's `gameExchange` capability answers first; engines from before the manifest
|
|
7
|
+
* are recognised by their exchange module instead. The capability is what keeps the answer right
|
|
8
|
+
* once the module leaves the engine for the Bitmagic platform package (engine/bitmagic/), where a
|
|
9
|
+
* file probe would have to chase it.
|
|
5
10
|
*/
|
|
6
11
|
export declare function vendoredEngineSupportsExchange(root: string): boolean;
|
|
7
12
|
export type GameExchangeRead = {
|
|
@@ -21,14 +21,27 @@
|
|
|
21
21
|
import * as fs from 'node:fs';
|
|
22
22
|
import * as path from 'node:path';
|
|
23
23
|
import { parseGameExchangeDeclaration, } from '@bitmagic/asset-core/game-exchange';
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
import { hasEngineCapability, readEngineCapabilities } from '../scaffold/engine-capabilities.js';
|
|
25
|
+
/**
|
|
26
|
+
* The files the engine's exchange module is installed from, current home first; none exists in an
|
|
27
|
+
* engine that predates it. The old path stays: an engine vendored before the module moved has only it.
|
|
28
|
+
*/
|
|
29
|
+
const ENGINE_EXCHANGE_MODULES = [
|
|
30
|
+
['engine', 'engine', 'platform', 'exchange', 'installGameExchange.ts'],
|
|
31
|
+
['engine', 'engine', 'exchange', 'installGameExchange.ts'],
|
|
32
|
+
];
|
|
26
33
|
/**
|
|
27
34
|
* Whether the engine vendored into this project can show exchange tiles at all. A project's engine
|
|
28
35
|
* only moves on `bitmagic upgrade`, so a current CLI regularly meets an engine without the module.
|
|
36
|
+
*
|
|
37
|
+
* The engine manifest's `gameExchange` capability answers first; engines from before the manifest
|
|
38
|
+
* are recognised by their exchange module instead. The capability is what keeps the answer right
|
|
39
|
+
* once the module leaves the engine for the Bitmagic platform package (engine/bitmagic/), where a
|
|
40
|
+
* file probe would have to chase it.
|
|
29
41
|
*/
|
|
30
42
|
export function vendoredEngineSupportsExchange(root) {
|
|
31
|
-
return
|
|
43
|
+
return hasEngineCapability(readEngineCapabilities(path.join(root, 'engine')), 'gameExchange')
|
|
44
|
+
|| ENGINE_EXCHANGE_MODULES.some((parts) => fs.existsSync(path.join(root, ...parts)));
|
|
32
45
|
}
|
|
33
46
|
function readWorkFile(filePath) {
|
|
34
47
|
let parsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-exchange.js","sourceRoot":"","sources":["../../src/publish/game-exchange.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,4BAA4B,GAI7B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"game-exchange.js","sourceRoot":"","sources":["../../src/publish/game-exchange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
+
import { type EngineCapabilities } from './engine-capabilities.js';
|
|
1
2
|
/**
|
|
2
3
|
* The engine resolves every import through a path alias. The same set has to appear in three
|
|
3
4
|
* places — tsconfig paths, the browser import map, and vite's resolve.alias — so it is defined
|
|
4
5
|
* once here and rendered into each form. Hand-maintaining three copies is the most likely way a
|
|
5
6
|
* scaffolded project silently stops compiling.
|
|
7
|
+
*
|
|
8
|
+
* The names follow the engine's own table, game/build/aliases.mjs, plus aliases kept for projects
|
|
9
|
+
* on older engines (`genres`); the directories are this project layout's, not the engine repo's.
|
|
10
|
+
* import-map-contract.test.ts holds the names to the engine's.
|
|
6
11
|
*/
|
|
7
12
|
export interface AliasRoot {
|
|
8
13
|
/** Alias prefix as written in imports, without a trailing slash. */
|
|
9
14
|
name: string;
|
|
10
15
|
/** Directory the alias resolves to in the project, relative to the project root. */
|
|
11
16
|
sourceDir: string;
|
|
17
|
+
/**
|
|
18
|
+
* The engine capability (engine-capabilities.ts) the alias's directory arrives with. The page's
|
|
19
|
+
* import map (`renderIndexHtml`) carries the alias only when the vendored engine advertises it,
|
|
20
|
+
* so a project on an older engine keeps the page it always had. tsconfig paths and the Vite
|
|
21
|
+
* aliases carry it regardless: an alias whose directory does not exist resolves nothing there.
|
|
22
|
+
*/
|
|
23
|
+
capability?: string;
|
|
12
24
|
}
|
|
13
25
|
export declare const ALIASES: AliasRoot[];
|
|
14
26
|
/**
|
|
@@ -22,6 +34,9 @@ export declare function tsconfigPaths(): Record<string, string[]>;
|
|
|
22
34
|
/**
|
|
23
35
|
* Import-map and vite targets. tsc runs with rootDir "." so it mirrors the source tree into
|
|
24
36
|
* dist/, meaning engine/engine/X.ts emits to dist/engine/engine/X.js.
|
|
37
|
+
*
|
|
38
|
+
* With `capabilities`, an alias gated on a capability the engine does not advertise is left out —
|
|
39
|
+
* the form a project's own index.html takes. Without, every alias is in.
|
|
25
40
|
*/
|
|
26
|
-
export declare function importMapEntries(): Record<string, string>;
|
|
41
|
+
export declare function importMapEntries(capabilities?: EngineCapabilities): Record<string, string>;
|
|
27
42
|
export declare function viteAliasEntries(): Record<string, string>;
|
package/dist/scaffold/aliases.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CliError } from '../errors.js';
|
|
2
|
+
import { hasEngineCapability } from './engine-capabilities.js';
|
|
2
3
|
export const ALIASES = [
|
|
3
4
|
{ name: 'engine', sourceDir: 'engine/engine' },
|
|
4
5
|
{ name: 'types', sourceDir: 'engine/types' },
|
|
@@ -25,6 +26,10 @@ export const ALIASES = [
|
|
|
25
26
|
// Moving this directory typechecks clean (tsc never sees a fetch string) but breaks the game
|
|
26
27
|
// at runtime with "world.json not found", so don't "simplify" it back to 'src'.
|
|
27
28
|
{ name: 'work', sourceDir: 'src/work' },
|
|
29
|
+
// The Bitmagic platform package (game/src/bitmagic): the services the engine's platform seam
|
|
30
|
+
// is given on Bitmagic lanes, and the boot module the page loads first so they are registered
|
|
31
|
+
// before any engine code runs. Vendored only by engines that advertise `platformEntry`.
|
|
32
|
+
{ name: 'bitmagic', sourceDir: 'engine/bitmagic', capability: 'platformEntry' },
|
|
28
33
|
];
|
|
29
34
|
/**
|
|
30
35
|
* Where one named alias resolves to in the project. Callers that need a specific alias's
|
|
@@ -45,9 +50,12 @@ export function tsconfigPaths() {
|
|
|
45
50
|
/**
|
|
46
51
|
* Import-map and vite targets. tsc runs with rootDir "." so it mirrors the source tree into
|
|
47
52
|
* dist/, meaning engine/engine/X.ts emits to dist/engine/engine/X.js.
|
|
53
|
+
*
|
|
54
|
+
* With `capabilities`, an alias gated on a capability the engine does not advertise is left out —
|
|
55
|
+
* the form a project's own index.html takes. Without, every alias is in.
|
|
48
56
|
*/
|
|
49
|
-
export function importMapEntries() {
|
|
50
|
-
return Object.fromEntries(ALIASES.map((a) => [`${a.name}/`, `/dist/${a.sourceDir}/`]));
|
|
57
|
+
export function importMapEntries(capabilities) {
|
|
58
|
+
return Object.fromEntries(ALIASES.filter((a) => capabilities === undefined || a.capability === undefined || hasEngineCapability(capabilities, a.capability)).map((a) => [`${a.name}/`, `/dist/${a.sourceDir}/`]));
|
|
51
59
|
}
|
|
52
60
|
export function viteAliasEntries() {
|
|
53
61
|
return importMapEntries();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/scaffold/aliases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/scaffold/aliases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAA2B,MAAM,0BAA0B,CAAC;AA0BxF,MAAM,CAAC,MAAM,OAAO,GAAgB;IAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,wFAAwF;IACxF,8FAA8F;IAC9F,+FAA+F;IAC/F,2FAA2F;IAC3F,4FAA4F;IAC5F,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE;IAC1C,4FAA4F;IAC5F,gGAAgG;IAChG,oDAAoD;IACpD,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE;IAClD,6FAA6F;IAC7F,uBAAuB;IACvB,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,4FAA4F;IAC5F,0FAA0F;IAC1F,6FAA6F;IAC7F,4FAA4F;IAC5F,6FAA6F;IAC7F,gFAAgF;IAChF,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE;IACvC,6FAA6F;IAC7F,8FAA8F;IAC9F,wFAAwF;IACxF,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE;CAChF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,2BAA2B,IAAI,UAAU,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC,SAAS,CAAC;AACzB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAiC;IAChE,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO,CAAC,MAAM,CACZ,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,CACnH,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -250,7 +250,7 @@ under the level. Then, in \`src/work/Game.ts\`, after the player controller exis
|
|
|
250
250
|
|
|
251
251
|
\`\`\`ts
|
|
252
252
|
import { MeshLevel, DEFAULT_MESH_LEVEL_OPTIONS } from 'engine/meshlevel/MeshLevel.js';
|
|
253
|
-
import { DEFAULT_FALL_RESCUE_OPTIONS } from 'engine/FallRescue.js';
|
|
253
|
+
import { DEFAULT_FALL_RESCUE_OPTIONS } from 'engine/player/life/FallRescue.js';
|
|
254
254
|
import levelJson from './<name>.mesh-level.json';
|
|
255
255
|
|
|
256
256
|
const level = new MeshLevel(this.engine, { glb: { assetId: 'level-<name>' }, level: { data: levelJson } }, DEFAULT_MESH_LEVEL_OPTIONS);
|
|
@@ -643,7 +643,7 @@ Run it after EVERY rebuild; a door moved in the script and not synced is a leaf
|
|
|
643
643
|
|
|
644
644
|
\`\`\`ts
|
|
645
645
|
import { MeshLevel, DEFAULT_MESH_LEVEL_OPTIONS } from 'engine/meshlevel/MeshLevel.js';
|
|
646
|
-
import { DEFAULT_FALL_RESCUE_OPTIONS } from 'engine/FallRescue.js';
|
|
646
|
+
import { DEFAULT_FALL_RESCUE_OPTIONS } from 'engine/player/life/FallRescue.js';
|
|
647
647
|
import levelJson from './<name>.mesh-level.json';
|
|
648
648
|
|
|
649
649
|
// After setupPlayerController(), before any NPC spawns.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a vendored engine says it can do, from `engine/engine/engine-manifest.json`
|
|
3
|
+
* (game/src/engine/engine-manifest.json in the engine repo).
|
|
4
|
+
*
|
|
5
|
+
* The CLI ships on npm on its own schedule and meets engines both older and newer than itself, so
|
|
6
|
+
* every lane that depends on an engine feature asks the engine instead of assuming. A capability
|
|
7
|
+
* is an integer version; a missing one, a missing manifest and an unreadable manifest all mean
|
|
8
|
+
* "not supported", which is exactly what an engine from before the manifest existed is.
|
|
9
|
+
*
|
|
10
|
+
* Capabilities the CLI reads today:
|
|
11
|
+
* - `pokiExport`: the Poki export lane (`bitmagic poki`). Older engines advertise it in
|
|
12
|
+
* `poki-capabilities.json` instead; see `requirePokiCapability`.
|
|
13
|
+
* - `platformEntry`: the page boots through `bitmagic/boot.js`, which registers the Bitmagic
|
|
14
|
+
* platform services before the engine runs, and carries `<meta name="bm:platform">`. Without
|
|
15
|
+
* it the page loads `engine/GameTemplate.js` as it always has (`renderIndexHtml`).
|
|
16
|
+
* - `gameExchange`: the engine can show Game Exchange tiles. Older engines are recognised by
|
|
17
|
+
* their exchange module instead; see `vendoredEngineSupportsExchange`.
|
|
18
|
+
*/
|
|
19
|
+
export interface EngineCapabilities {
|
|
20
|
+
readonly [name: string]: number | undefined;
|
|
21
|
+
}
|
|
22
|
+
/** The manifest's path inside a project's (or an extracted tarball's) engine directory. */
|
|
23
|
+
export declare const ENGINE_MANIFEST_RELATIVE: string;
|
|
24
|
+
/** An engine that advertises nothing: every engine released before the manifest. */
|
|
25
|
+
export declare const NO_ENGINE_CAPABILITIES: EngineCapabilities;
|
|
26
|
+
/**
|
|
27
|
+
* Reads the capabilities of the engine at `engineDir`: a project's `engine/`, or the directory a
|
|
28
|
+
* tarball was extracted into (the two share a layout). Never throws: a manifest that is missing
|
|
29
|
+
* or unreadable reads as no capabilities, and a capability whose value is not a positive integer
|
|
30
|
+
* is left out.
|
|
31
|
+
*/
|
|
32
|
+
export declare function readEngineCapabilities(engineDir: string): EngineCapabilities;
|
|
33
|
+
/** Whether the engine advertises `name` at version `version` or later. */
|
|
34
|
+
export declare function hasEngineCapability(capabilities: EngineCapabilities, name: string, version?: number): boolean;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
/** The manifest's path inside a project's (or an extracted tarball's) engine directory. */
|
|
4
|
+
export const ENGINE_MANIFEST_RELATIVE = path.join('engine', 'engine-manifest.json');
|
|
5
|
+
/** An engine that advertises nothing: every engine released before the manifest. */
|
|
6
|
+
export const NO_ENGINE_CAPABILITIES = Object.freeze({});
|
|
7
|
+
/**
|
|
8
|
+
* Reads the capabilities of the engine at `engineDir`: a project's `engine/`, or the directory a
|
|
9
|
+
* tarball was extracted into (the two share a layout). Never throws: a manifest that is missing
|
|
10
|
+
* or unreadable reads as no capabilities, and a capability whose value is not a positive integer
|
|
11
|
+
* is left out.
|
|
12
|
+
*/
|
|
13
|
+
export function readEngineCapabilities(engineDir) {
|
|
14
|
+
let parsed;
|
|
15
|
+
try {
|
|
16
|
+
parsed = JSON.parse(fs.readFileSync(path.join(engineDir, ENGINE_MANIFEST_RELATIVE), 'utf-8'));
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return NO_ENGINE_CAPABILITIES;
|
|
20
|
+
}
|
|
21
|
+
if (typeof parsed !== 'object' || parsed === null || !('capabilities' in parsed)) {
|
|
22
|
+
return NO_ENGINE_CAPABILITIES;
|
|
23
|
+
}
|
|
24
|
+
const raw = parsed.capabilities;
|
|
25
|
+
if (typeof raw !== 'object' || raw === null)
|
|
26
|
+
return NO_ENGINE_CAPABILITIES;
|
|
27
|
+
const capabilities = {};
|
|
28
|
+
for (const [name, value] of Object.entries(raw)) {
|
|
29
|
+
if (typeof value === 'number' && Number.isInteger(value) && value > 0)
|
|
30
|
+
capabilities[name] = value;
|
|
31
|
+
}
|
|
32
|
+
return capabilities;
|
|
33
|
+
}
|
|
34
|
+
/** Whether the engine advertises `name` at version `version` or later. */
|
|
35
|
+
export function hasEngineCapability(capabilities, name, version = 1) {
|
|
36
|
+
const value = capabilities[name];
|
|
37
|
+
return value !== undefined && value >= version;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=engine-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-capabilities.js","sourceRoot":"","sources":["../../src/scaffold/engine-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAwB7B,2FAA2F;AAC3F,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAEpF,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAuB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE,CAAC;QACjF,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,sBAAsB,CAAC;IAC3E,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACpG,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CACjC,YAAgC,EAChC,IAAY,EACZ,OAAO,GAAG,CAAC;IAEX,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,OAAO,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type * as TS from 'typescript';
|
|
2
|
+
import { type LegacyBody } from './legacy-game-baselines.js';
|
|
3
|
+
/**
|
|
4
|
+
* `bitmagic upgrade --migrate-game`: turn a Game.ts written on the old baseline — a whole
|
|
5
|
+
* `class VoxelGame implements GameModule` that built its own Spawner, VehicleManager,
|
|
6
|
+
* VehicleSpawner and PlayerLoader and handed them to the engine with `setX()` — into the small
|
|
7
|
+
* `class VoxelGame extends VoxelGameBase` every game is now, keeping only what the creator changed.
|
|
8
|
+
*
|
|
9
|
+
* It only rewrites what it can prove:
|
|
10
|
+
*
|
|
11
|
+
* - a member identical (token for token, comments and layout ignored) to the same member in any
|
|
12
|
+
* released baseline is the default, and is dropped;
|
|
13
|
+
* - `constructor`, `load`, `update` and `dispose` may additionally carry the creator's own
|
|
14
|
+
* statements, but only inserted at a point a VoxelGameBase hook runs at — after the world
|
|
15
|
+
* (`onWorldLoaded`), after the camera (`onCameraReady`), after the player controller
|
|
16
|
+
* (`onPlayerReady`), at the end of a frame (`updateCamera`), beside the vehicles' disposal
|
|
17
|
+
* (`disposeGameplay`), or at the very start or end of the method — and each default statement
|
|
18
|
+
* must still be there, in order;
|
|
19
|
+
* - a modified `setupCamera` or `setupVoxelLighting` stays as an override (both are hooks now);
|
|
20
|
+
* - anything the creator added (fields, methods, top-level code) is kept as it is, with
|
|
21
|
+
* `this.spawner` / `this.vehicleSpawner` read through `getSpawner()` / `getVehicleSpawner()`.
|
|
22
|
+
*
|
|
23
|
+
* Anything else — a default statement removed or edited, a statement added where no hook runs,
|
|
24
|
+
* a changed member VoxelGameBase also declares — leaves the file unchanged and says why. The
|
|
25
|
+
* result is then type-checked with the project's own compiler and put back if it does not
|
|
26
|
+
* compile, so a migration that runs is one that compiles.
|
|
27
|
+
*/
|
|
28
|
+
export declare const GAME_FILE = "src/work/Game.ts";
|
|
29
|
+
export declare const BASE_FILE = "src/work/VoxelGameBase.ts";
|
|
30
|
+
/** The new baseline, as the engine just vendored it. */
|
|
31
|
+
export declare const VENDORED_BASELINE_DIR = "engine/baseline";
|
|
32
|
+
/** The methods whose bodies may carry insertions, and the gaps they may sit in. */
|
|
33
|
+
export type SegmentedMethod = 'constructor' | 'load' | 'update' | 'dispose';
|
|
34
|
+
export declare const SEGMENTED_METHODS: readonly SegmentedMethod[];
|
|
35
|
+
/** A statement or member compared by its tokens alone, so comments and layout never matter. */
|
|
36
|
+
export declare function fingerprint(ts: typeof TS, node: TS.Node, sf: TS.SourceFile): string;
|
|
37
|
+
/** What one Game.ts version contributes to the known defaults (the generator's half). */
|
|
38
|
+
export interface LegacyGameShape {
|
|
39
|
+
members: Record<string, string>;
|
|
40
|
+
bodies: Partial<Record<SegmentedMethod, LegacyBody>>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The fingerprints of a pre-VoxelGameBase Game.ts — every member, plus the statement list and
|
|
44
|
+
* hook gaps of each segmented method. Null when the file has no such class. Run over every
|
|
45
|
+
* released baseline by `scripts/gen-legacy-game-baselines.mjs` to produce the known defaults.
|
|
46
|
+
*/
|
|
47
|
+
export declare function describeLegacyGame(ts: typeof TS, text: string): LegacyGameShape | null;
|
|
48
|
+
export type GameMigrationOutcome = {
|
|
49
|
+
status: 'migrated';
|
|
50
|
+
kept: string[];
|
|
51
|
+
hooks: string[];
|
|
52
|
+
wroteBase: boolean;
|
|
53
|
+
} | {
|
|
54
|
+
status: 'already-migrated';
|
|
55
|
+
} | {
|
|
56
|
+
status: 'skipped';
|
|
57
|
+
reason: string;
|
|
58
|
+
};
|
|
59
|
+
export interface PlanResult {
|
|
60
|
+
outcome: GameMigrationOutcome;
|
|
61
|
+
/** The new Game.ts, when the outcome is `migrated`. */
|
|
62
|
+
gameText?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Plan the rewrite of one Game.ts against the new baseline: pure, reads nothing but its inputs.
|
|
66
|
+
*
|
|
67
|
+
* `newBaselineGame` is the vendored `engine/baseline/Game.ts` (the file a game with nothing of
|
|
68
|
+
* its own becomes, verbatim), `newBaseText` the vendored `VoxelGameBase.ts`.
|
|
69
|
+
*/
|
|
70
|
+
export declare function planGameMigration(ts: typeof TS, oldText: string, newBaselineGame: string, newBaseText: string): PlanResult;
|
|
71
|
+
export interface TypeCheckResult {
|
|
72
|
+
ok: boolean;
|
|
73
|
+
/** The compiler's output, for the report when it failed. */
|
|
74
|
+
output: string;
|
|
75
|
+
}
|
|
76
|
+
export interface MigrateGameOptions {
|
|
77
|
+
root: string;
|
|
78
|
+
ts: typeof TS;
|
|
79
|
+
/** Runs the project's type-check; the migration is kept only when it passes before and after. */
|
|
80
|
+
typeCheck: () => TypeCheckResult;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Migrate `src/work/Game.ts` onto VoxelGameBase in place: plan it, write the new Game.ts and the
|
|
84
|
+
* vendored `VoxelGameBase.ts` beside it, type-check, and put both files back as they were when the
|
|
85
|
+
* project no longer compiles. A project that did not compile before is not touched at all, since
|
|
86
|
+
* a failure afterwards could not be told apart from one it already had.
|
|
87
|
+
*/
|
|
88
|
+
export declare function migrateGameFile(options: MigrateGameOptions): GameMigrationOutcome;
|