@babylonjsmarket/arcade 0.3.6 → 0.3.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/.claude-payload/skills/babylonjsmarket/SKILL.md +4 -4
- package/dist/Components/MeshPrimitive/MeshPrimitive.core.d.ts +13 -0
- package/dist/Components/MeshPrimitive/MeshPrimitive.core.d.ts.map +1 -1
- package/dist/Components/MeshPrimitive/MeshPrimitive.core.js +16 -0
- package/dist/Components/MeshPrimitive/MeshPrimitive.core.js.map +1 -1
- package/dist/cli/index.js +50 -80
- package/dist/cli/index.js.map +1 -1
- package/package.json +2 -1
- package/skills/arcade-scaffold/SKILL.md +15 -10
- package/src/Components/MeshPrimitive/MeshPrimitive.core.ts +29 -0
- package/templates/arcade-room.registry.ts +14 -0
- package/templates/arcade-room.scene.ts +165 -0
- package/templates/main.ts +9 -7
- package/templates/scenes-index.ts +19 -0
- package/templates/empty-3d.registry.ts +0 -12
- package/templates/empty-3d.scene.ts +0 -127
- package/templates/pinball.registry.ts +0 -53
- package/templates/pinball.scene.ts +0 -384
- package/templates/top-down-shooter.registry.ts +0 -37
- package/templates/top-down-shooter.scene.ts +0 -349
|
@@ -344,7 +344,7 @@ The packages are **compiled**; downstream apps import the built `dist` (the pack
|
|
|
344
344
|
- **After changing `packages/<pkg>/src`, run `npm run build` in that package, then reload the page.** A freshly-started Vite dev server watches the linked package's `dist` (symlinked into `node_modules` as a workspace dep) and picks up the rebuild on reload — no full restart needed for ordinary source edits.
|
|
345
345
|
- **When a rebuild doesn't show up, restart the dev server** (a long-running server's dependency-optimizer / module cache went stale). **Config changes (`astro.config.*`) always need a restart** — Vite reads config once at startup.
|
|
346
346
|
- **Do NOT "fix" staleness by aliasing the package to its `src`** — it causes the duplicate-module failure in §10.
|
|
347
|
-
- **
|
|
347
|
+
- **Template sync is dormant:** the scaffold's arcade-room scene is authored directly in `packages/arcade/templates/`, so `PAIRS` in `scripts/sync-templates.js` is empty and there's nothing to re-sync. Only if you add a CLI template that mirrors a live game under `games/src/games/arcade/<game>/` do you add a pair, run `npm run sync-templates`, and use `@sync-skip-begin`/`@sync-skip-end` (or `// @sync-skip`) to keep playground-only panels out of the template (a drift test enforces it).
|
|
348
348
|
- **Tests use `MockRendererAdapter`, not Babylon.** Green unit/contract tests prove *logic*, not that the live game renders. They add systems *before* entities, whereas the live `SceneLoader`/`ArcadeGame` path creates entities first and **backfills** systems via `world.addSystem`. Cover pooling/singleton/marker behavior with a lifecycle-order integration test (entities first, then `addSystem`).
|
|
349
349
|
|
|
350
350
|
**Debugging "the System runs but `this.entities` is empty / never sees its component":** almost always (1) a **duplicate module instance** (an out-of-root `src` alias) so the entity's component class ≠ the query's class (`getEntitiesWithComponent` returns 0 but a by-`constructor.name` scan finds it); or (2) the **host entity was removed** (a destructive system consumed a bare marker — dump `world.getEntities()` and look for the missing singleton).
|
|
@@ -357,11 +357,11 @@ The packages are **compiled**; downstream apps import the built `dist` (the pack
|
|
|
357
357
|
npm create @babylonjsmarket/arcade <dir> # or: npx @babylonjsmarket/arcade init <dir>
|
|
358
358
|
```
|
|
359
359
|
|
|
360
|
-
|
|
360
|
+
There is **no template choice** — every scaffold is a single multigame arcade. After scaffolding: `cd <dir> && npm install && npm run dev`, then open the printed URL.
|
|
361
361
|
|
|
362
|
-
|
|
362
|
+
The scaffold ships one starter scene, the **arcade room** (`src/scenes/arcade-room.ts`), plus the multigame structure: `src/scenes/index.ts` is the scene map (`SCENES` + `DEFAULT_SCENE`) — the seam where you register more scenes; `src/registry.ts` holds shared resolvers; `src/main.ts` is the tiny boot that loads the default scene. Assets (carpet textures, cabinet GLB) stream from `https://babylonjsgames.com/arcade/...`. Scenes are TS modules that declare entities + components **by name**; arcade lazy-imports each named built-in the first time it appears. To fill the arcade, add `src/scenes/<my-game>.ts`, register it in `src/scenes/index.ts`, and load it with `game.loadScene(SCENES['<my-game>'])`. **Custom components** go under `src/components/` and are wired up via `src/registry.ts` (or `ArcadeGame`'s `componentRegistry` option) — each resolver is `() => import('./components/Thing')` returning `{ ThingComponent, ThingSystem }`.
|
|
363
363
|
|
|
364
|
-
**`arcade eject`** copies built-in arcade component source into the project so you own and can edit it (shadcn-style). It writes `src/components/<Name>/` folders, patches `src/registry.ts` so the local copies override the package's built-ins, and drops this skill into `.claude/skills/babylonjsmarket/`. Forms: `arcade eject` (eject what `
|
|
364
|
+
**`arcade eject`** copies built-in arcade component source into the project so you own and can edit it (shadcn-style). It writes `src/components/<Name>/` folders, patches `src/registry.ts` so the local copies override the package's built-ins, and drops this skill into `.claude/skills/babylonjsmarket/`. Forms: `arcade eject` (eject what the scenes + `registry.ts` reference + their deps), `arcade eject <Name>...` (specific components), `arcade eject --all`, and `--dry-run` to preview. Use it when the user wants to customize a built-in component's behavior rather than wrap it.
|
|
365
365
|
|
|
366
366
|
## 13. Discovering & downloading components from the marketplace
|
|
367
367
|
|
|
@@ -58,6 +58,19 @@ export interface MeshPrimitiveInput {
|
|
|
58
58
|
emissiveColor?: [number, number, number];
|
|
59
59
|
ambientColor?: [number, number, number];
|
|
60
60
|
alpha?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Texture-map URLs. Any one of these flips the renderer to a PBR material
|
|
63
|
+
* (e.g. a tiled carpet floor). `uScale`/`vScale` tile the maps across the
|
|
64
|
+
* surface; `metallic`/`roughness` are PBR scalars.
|
|
65
|
+
*/
|
|
66
|
+
albedoTexture?: string;
|
|
67
|
+
normalTexture?: string;
|
|
68
|
+
roughnessTexture?: string;
|
|
69
|
+
ambientTexture?: string;
|
|
70
|
+
metallic?: number;
|
|
71
|
+
roughness?: number;
|
|
72
|
+
uScale?: number;
|
|
73
|
+
vScale?: number;
|
|
61
74
|
};
|
|
62
75
|
visible?: boolean;
|
|
63
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshPrimitive.core.d.ts","sourceRoot":"","sources":["../../../src/Components/MeshPrimitive/MeshPrimitive.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,IAAI,EACL,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAID,+DAA+D;AAC/D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,GAAG,oBAAoB,CAO1F;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,IAAI,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,QAAQ,CAAC,EAAE,IAAI,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gFAAgF;IAChF,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MeshPrimitive.core.d.ts","sourceRoot":"","sources":["../../../src/Components/MeshPrimitive/MeshPrimitive.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,IAAI,EACL,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAID,+DAA+D;AAC/D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,GAAG,oBAAoB,CAO1F;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,IAAI,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,QAAQ,CAAC,EAAE,IAAI,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gFAAgF;IAChF,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;;WAIG;QACH,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAcD,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IAEpB,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,OAAO,EAAE,OAAO,CAAC;IAEjB,4DAA4D;IAC5D,SAAS,UAAS;IAElB;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,UAAU,GAAG,SAAS,CAEnC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAEvC;gBAEW,IAAI,GAAE,kBAAuB;IAoDzC,eAAe,IAAI,aAAa;IAkBhC,SAAS,IAAI,kBAAkB;CAuChC"}
|
|
@@ -92,6 +92,14 @@ export class MeshPrimitiveComponent extends Component {
|
|
|
92
92
|
specular: m.specularColor,
|
|
93
93
|
emissive: m.emissiveColor,
|
|
94
94
|
alpha: m.alpha,
|
|
95
|
+
albedoTexture: m.albedoTexture,
|
|
96
|
+
normalTexture: m.normalTexture,
|
|
97
|
+
roughnessTexture: m.roughnessTexture,
|
|
98
|
+
ambientTexture: m.ambientTexture,
|
|
99
|
+
metallic: m.metallic,
|
|
100
|
+
roughness: m.roughness,
|
|
101
|
+
uScale: m.uScale,
|
|
102
|
+
vScale: m.vScale,
|
|
95
103
|
};
|
|
96
104
|
void m.ambientColor; // legacy key ignored; ambient is driven by scene lights now
|
|
97
105
|
}
|
|
@@ -121,6 +129,14 @@ export class MeshPrimitiveComponent extends Component {
|
|
|
121
129
|
specularColor: this.material.specular,
|
|
122
130
|
emissiveColor: this.material.emissive,
|
|
123
131
|
alpha: this.material.alpha,
|
|
132
|
+
albedoTexture: this.material.albedoTexture,
|
|
133
|
+
normalTexture: this.material.normalTexture,
|
|
134
|
+
roughnessTexture: this.material.roughnessTexture,
|
|
135
|
+
ambientTexture: this.material.ambientTexture,
|
|
136
|
+
metallic: this.material.metallic,
|
|
137
|
+
roughness: this.material.roughness,
|
|
138
|
+
uScale: this.material.uScale,
|
|
139
|
+
vScale: this.material.vScale,
|
|
124
140
|
}
|
|
125
141
|
: undefined;
|
|
126
142
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshPrimitive.core.js","sourceRoot":"","sources":["../../../src/Components/MeshPrimitive/MeshPrimitive.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAsBjD,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAgD,CAAC;AAEvF,+DAA+D;AAC/D,MAAM,UAAU,uBAAuB,CAAC,IAA4B;IAClE,IAAI,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,GAAG,EAAE,CAAC;QACR,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;
|
|
1
|
+
{"version":3,"file":"MeshPrimitive.core.js","sourceRoot":"","sources":["../../../src/Components/MeshPrimitive/MeshPrimitive.core.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -4,8 +4,6 @@ import path from "node:path";
|
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import mri from "mri";
|
|
6
6
|
import * as prompts from "@clack/prompts";
|
|
7
|
-
import colors from "picocolors";
|
|
8
|
-
import SETUP_OPTIONS from "./setup-options.js";
|
|
9
7
|
import { eject } from "./eject.js";
|
|
10
8
|
// Templates live as real .ts files under packages/arcade/templates/. We
|
|
11
9
|
// resolve to them via import.meta.url so the CLI works whether it's run
|
|
@@ -55,44 +53,40 @@ const range = (v) => (v === "latest" ? "latest" : `^${v}`);
|
|
|
55
53
|
const ARCADE_VERSION = JSON.parse(fs.readFileSync(path.resolve(HERE, "..", "..", "package.json"), "utf8")).version;
|
|
56
54
|
const ECS_VERSION = installedVersion("@babylonjsmarket/ecs", "latest");
|
|
57
55
|
const ESLINT_PLUGIN_VERSION = installedVersion("@babylonjsmarket/eslint-plugin", "latest");
|
|
58
|
-
const { cyan } = colors;
|
|
59
56
|
// Allow `arcade init <name>` as well as the npm-create-style bare `arcade <name>`.
|
|
60
57
|
// We strip a leading "init" subcommand here so positional parsing stays simple.
|
|
61
58
|
const rawArgs = process.argv.slice(2);
|
|
62
59
|
const argsAfterSubcommand = rawArgs[0] === "init" ? rawArgs.slice(1) : rawArgs;
|
|
63
60
|
const argv = mri(argsAfterSubcommand, {
|
|
64
|
-
alias: { h: "help"
|
|
61
|
+
alias: { h: "help" },
|
|
65
62
|
boolean: ["help", "overwrite"],
|
|
66
|
-
string: ["template"],
|
|
67
63
|
});
|
|
68
64
|
const cwd = process.cwd();
|
|
69
65
|
const helpMessage = `\
|
|
70
66
|
Usage: arcade init [OPTION]... [DIRECTORY]
|
|
71
67
|
or: npm create @babylonjsmarket/arcade [DIRECTORY]
|
|
72
68
|
|
|
73
|
-
Create a new BabylonJS
|
|
69
|
+
Create a new multigame BabylonJS arcade powered by @babylonjsmarket/ecs and
|
|
70
|
+
@babylonjsmarket/arcade.
|
|
74
71
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
The scaffold ships a single starter "arcade room" scene — a carpeted room with
|
|
73
|
+
a row of cabinets — that you grow into a full arcade. Scenes are TS modules
|
|
74
|
+
under src/scenes/ that declare entities + their components by name; arcade
|
|
75
|
+
lazy-imports each named component the first time it appears. Each cabinet can
|
|
76
|
+
point a player at another scene (a subdirectory game) registered in
|
|
77
|
+
src/scenes/index.ts. Custom components go under src/components/ and are wired
|
|
78
|
+
up via src/registry.ts.
|
|
79
79
|
|
|
80
80
|
With no arguments, start the CLI in interactive mode.
|
|
81
81
|
|
|
82
82
|
Options:
|
|
83
|
-
-t, --template NAME use a specific template (skip the prompt)
|
|
84
83
|
-h, --help print this help message
|
|
85
|
-
--overwrite replace any existing files in the target directory
|
|
86
|
-
|
|
87
|
-
Available templates:
|
|
88
|
-
${SETUP_OPTIONS.map((o) => ` ${cyan(o.name)}${" ".repeat(Math.max(1, 14 - o.name.length))}${o.hint}`).join("\n")}`;
|
|
89
|
-
const TEMPLATES = SETUP_OPTIONS.map((option) => option.name);
|
|
84
|
+
--overwrite replace any existing files in the target directory`;
|
|
90
85
|
const defaultTargetDir = "babylonjs-arcade";
|
|
91
86
|
async function init() {
|
|
92
87
|
const argTargetDir = argv._[0]
|
|
93
88
|
? formatTargetDir(String(argv._[0]))
|
|
94
89
|
: undefined;
|
|
95
|
-
const argTemplate = argv.template;
|
|
96
90
|
const argOverwrite = argv.overwrite;
|
|
97
91
|
const help = argv.help;
|
|
98
92
|
if (help) {
|
|
@@ -156,28 +150,7 @@ async function init() {
|
|
|
156
150
|
return cancel();
|
|
157
151
|
packageName = packageNameResult;
|
|
158
152
|
}
|
|
159
|
-
//
|
|
160
|
-
let template = argTemplate;
|
|
161
|
-
let hasInvalidArgTemplate = false;
|
|
162
|
-
if (argTemplate && !TEMPLATES.includes(argTemplate)) {
|
|
163
|
-
template = undefined;
|
|
164
|
-
hasInvalidArgTemplate = true;
|
|
165
|
-
}
|
|
166
|
-
if (!template) {
|
|
167
|
-
const framework = await prompts.select({
|
|
168
|
-
message: hasInvalidArgTemplate
|
|
169
|
-
? `"${argTemplate}" isn't a valid template. Please choose from below: `
|
|
170
|
-
: "Select a template:",
|
|
171
|
-
options: SETUP_OPTIONS.map((opt) => ({
|
|
172
|
-
label: opt.color(opt.display || opt.name),
|
|
173
|
-
value: opt,
|
|
174
|
-
hint: opt.hint,
|
|
175
|
-
})),
|
|
176
|
-
});
|
|
177
|
-
if (prompts.isCancel(framework))
|
|
178
|
-
return cancel();
|
|
179
|
-
template = framework.name;
|
|
180
|
-
}
|
|
153
|
+
// There is no template choice — every scaffold is the multigame arcade.
|
|
181
154
|
const root = path.isAbsolute(targetDir) ? targetDir : path.join(cwd, targetDir);
|
|
182
155
|
fs.mkdirSync(root, { recursive: true });
|
|
183
156
|
const pkgManager = pkgInfo ? pkgInfo.name : "npm";
|
|
@@ -316,16 +289,16 @@ export default [
|
|
|
316
289
|
</body>
|
|
317
290
|
</html>
|
|
318
291
|
`);
|
|
319
|
-
// Tiny boot
|
|
320
|
-
//
|
|
321
|
-
write("src/main.ts",
|
|
322
|
-
// The
|
|
323
|
-
// Every component name
|
|
324
|
-
// default registry or by src/registry.ts (
|
|
325
|
-
|
|
326
|
-
write("src/
|
|
327
|
-
// HUD
|
|
328
|
-
write("src/registry.ts",
|
|
292
|
+
// Tiny boot — imports the scene map + REGISTRY and starts the game. Users
|
|
293
|
+
// rarely edit this file.
|
|
294
|
+
write("src/main.ts", readTemplate("main.ts"));
|
|
295
|
+
// The scene map (the "multigame" seam) + the starter arcade-room scene. Pure
|
|
296
|
+
// data: entities + components by name. Every component name is resolved
|
|
297
|
+
// either by arcade's default registry or by src/registry.ts (custom comps).
|
|
298
|
+
write("src/scenes/index.ts", readTemplate("scenes-index.ts"));
|
|
299
|
+
write("src/scenes/arcade-room.ts", readTemplate("arcade-room.scene.ts"));
|
|
300
|
+
// Shared component resolver map (HUD panels + any custom components).
|
|
301
|
+
write("src/registry.ts", readTemplate("arcade-room.registry.ts"));
|
|
329
302
|
// .gitignore
|
|
330
303
|
write(".gitignore", `# Logs
|
|
331
304
|
logs
|
|
@@ -354,16 +327,19 @@ dist-ssr
|
|
|
354
327
|
`);
|
|
355
328
|
write("README.md", `# ${packageName}
|
|
356
329
|
|
|
357
|
-
A data-driven BabylonJS
|
|
358
|
-
and the @babylonjsmarket/arcade component library.
|
|
330
|
+
A data-driven, multigame BabylonJS arcade built with the @babylonjsmarket/ecs
|
|
331
|
+
framework and the @babylonjsmarket/arcade component library.
|
|
359
332
|
|
|
360
|
-
|
|
333
|
+
You start with one scene — the **arcade room** (a carpeted room with a row of
|
|
334
|
+
cabinets) — and grow it into a full arcade by adding more scenes and pointing
|
|
335
|
+
cabinets at them.
|
|
361
336
|
|
|
362
337
|
| File | What's in it |
|
|
363
338
|
|---|---|
|
|
364
|
-
| \`src/
|
|
365
|
-
| \`src/
|
|
366
|
-
| \`src/
|
|
339
|
+
| \`src/scenes/arcade-room.ts\` | The starter room — entities + components, as pure data |
|
|
340
|
+
| \`src/scenes/index.ts\` | The scene map: every scene the arcade can load (the multigame seam) |
|
|
341
|
+
| \`src/registry.ts\` | Resolvers for HUD panels and any custom components |
|
|
342
|
+
| \`src/main.ts\` | Boot: BabylonAdapter → ArcadeGame → loadScene → start |
|
|
367
343
|
|
|
368
344
|
## Getting Started
|
|
369
345
|
|
|
@@ -372,16 +348,30 @@ npm install
|
|
|
372
348
|
npm run dev # http://localhost:3000
|
|
373
349
|
\`\`\`
|
|
374
350
|
|
|
351
|
+
The room streams its carpet textures and cabinet model from the public
|
|
352
|
+
BabylonJS Games asset host, so a fresh scaffold runs with no local assets. To
|
|
353
|
+
serve your own, drop optimized copies under \`public/arcade/\` and set
|
|
354
|
+
\`ASSET_BASE = ''\` in \`src/scenes/arcade-room.ts\`.
|
|
355
|
+
|
|
375
356
|
## How it works
|
|
376
357
|
|
|
377
358
|
\`src/main.ts\` boots the renderer, mounts the viz panels (press \`\\\`\` for
|
|
378
359
|
the Entities panel, \`F4\` for the EventBus debugger), then calls
|
|
379
|
-
\`game.loadScene(
|
|
360
|
+
\`game.loadScene(...)\` with the default scene — that's it.
|
|
361
|
+
|
|
362
|
+
Everything else — meshes, lights, cameras, gameplay logic — is declared in the
|
|
363
|
+
scene modules as entities + named components. The arcade package's default
|
|
364
|
+
registry maps every named component to its module; bundlers tree-shake any
|
|
365
|
+
component a scene doesn't use.
|
|
380
366
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
367
|
+
## Filling the arcade
|
|
368
|
+
|
|
369
|
+
Each cabinet is meant to launch its own game. To add one:
|
|
370
|
+
|
|
371
|
+
1. Author a scene under \`src/scenes/<my-game>.ts\` (copy \`arcade-room.ts\`).
|
|
372
|
+
2. Import it in \`src/scenes/index.ts\` and add it under a new key.
|
|
373
|
+
3. Switch to it at runtime: \`game.loadScene(SCENES['<my-game>'])\` — e.g. when
|
|
374
|
+
the player activates the matching cabinet.
|
|
385
375
|
|
|
386
376
|
To add a custom component, drop a file under \`src/components/MyThing.ts\`
|
|
387
377
|
exporting \`MyThingComponent\` (and optionally \`MyThingSystem\`), then add
|
|
@@ -445,26 +435,6 @@ function pkgFromUserAgent(userAgent) {
|
|
|
445
435
|
const pkgSpecArr = pkgSpec.split("/");
|
|
446
436
|
return { name: pkgSpecArr[0], version: pkgSpecArr[1] };
|
|
447
437
|
}
|
|
448
|
-
/**
|
|
449
|
-
* Template generators — read the .ts source for each template's main.ts,
|
|
450
|
-
* scene.ts, and registry.ts from packages/arcade/templates/ and return its
|
|
451
|
-
* contents. `main.ts` is shared across every template; `scene.ts` and
|
|
452
|
-
* `registry.ts` are per-template.
|
|
453
|
-
*
|
|
454
|
-
* The CLI ships these files unchanged into the scaffolded project: no
|
|
455
|
-
* String.raw blobs, no per-template branches in this file. Adding a new
|
|
456
|
-
* template means dropping a `{name}.scene.ts` + `{name}.registry.ts` pair
|
|
457
|
-
* into templates/ and listing the name in setup-options.ts.
|
|
458
|
-
*/
|
|
459
|
-
function generateMainTs() {
|
|
460
|
-
return readTemplate("main.ts");
|
|
461
|
-
}
|
|
462
|
-
function generateSceneTs(template) {
|
|
463
|
-
return readTemplate(`${template}.scene.ts`);
|
|
464
|
-
}
|
|
465
|
-
function generateRegistryTs(template) {
|
|
466
|
-
return readTemplate(`${template}.registry.ts`);
|
|
467
|
-
}
|
|
468
438
|
async function main() {
|
|
469
439
|
if (rawArgs[0] === "eject") {
|
|
470
440
|
await eject(rawArgs.slice(1));
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babylonjsmarket/arcade",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Reusable arcade-style components (mesh, camera, lights, input, physics, scoring, animation) for the @babylonjsmarket/ecs framework",
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
"lint": "eslint src",
|
|
85
85
|
"sync-templates": "node scripts/sync-templates.js",
|
|
86
86
|
"sync-templates:check": "node scripts/sync-templates.js --check",
|
|
87
|
+
"try:scaffold": "node scripts/try-scaffold.mjs",
|
|
87
88
|
"validate:scenes": "tsx scripts/validate-example-scenes.ts",
|
|
88
89
|
"prepublishOnly": "npm run build && npm run test"
|
|
89
90
|
},
|
|
@@ -11,15 +11,15 @@ When the user wants to spin up a new arcade game powered by `@babylonjsmarket/ar
|
|
|
11
11
|
```bash
|
|
12
12
|
npx @babylonjsmarket/arcade init <project-name>
|
|
13
13
|
```
|
|
14
|
-
2.
|
|
14
|
+
2. There is **no template choice** — every scaffold is a single multigame arcade. It ships one starter scene, the **arcade room** (a carpeted room with a row of cabinets, defined in `src/scenes/arcade-room.ts`), plus the multigame structure to grow it:
|
|
15
|
+
- `src/scenes/index.ts` — the scene map (`SCENES` + `DEFAULT_SCENE`); this is the seam where you register more scenes.
|
|
16
|
+
- `src/registry.ts` — shared component resolvers across all scenes.
|
|
17
|
+
- `src/main.ts` — tiny boot that loads the default scene.
|
|
18
|
+
Assets (carpet textures, cabinet GLB) stream from `https://babylonjsgames.com/arcade/...`, so a fresh scaffold runs with no local files.
|
|
15
19
|
3. After scaffolding:
|
|
16
20
|
- `cd <project-name> && npm install && npm run dev`
|
|
17
21
|
- Open the printed URL.
|
|
18
|
-
4. To add a
|
|
19
|
-
```bash
|
|
20
|
-
npx @babylonjsmarket/arcade add <ComponentName>
|
|
21
|
-
```
|
|
22
|
-
Components ship in `@babylonjsmarket/arcade` and resolve by name from the scene. Categories:
|
|
22
|
+
4. To **fill the arcade**, add a scene under `src/scenes/<my-game>.ts` (copy `arcade-room.ts`), register it in `src/scenes/index.ts`, and switch to it at runtime with `game.loadScene(SCENES['<my-game>'])` (e.g. when the player activates a cabinet). Components resolve by name from the scene — every built-in below is auto-registered by `@babylonjsmarket/arcade`; only custom components need an entry in `src/registry.ts`. Categories:
|
|
23
23
|
- **Rendering**: MeshPrimitive, Mesh, ArcCamera, CameraFollow, DirectionalLight, HemisphericLight, Skybox, EnvironmentTexture, Shadow, Animation.
|
|
24
24
|
- **Input/movement**: PlayerInput, KeyboardMover, Movement.
|
|
25
25
|
- **Physics**: Physics.
|
|
@@ -105,11 +105,16 @@ Declare the panel component in scene JSON:
|
|
|
105
105
|
"PinballPanel": { "visible": false, "activationKey": "Digit5", "position": "top-left" }
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
### Game-local panels
|
|
108
|
+
### Game-local panels and template sync
|
|
109
|
+
|
|
110
|
+
The current scaffold (the arcade room) is authored directly in
|
|
111
|
+
`packages/arcade/templates/` — there is no live game it mirrors, so the
|
|
112
|
+
template-sync machinery (`scripts/sync-templates.js`, `PAIRS`) is dormant.
|
|
109
113
|
|
|
110
|
-
If
|
|
111
|
-
|
|
112
|
-
`
|
|
114
|
+
If you later add a CLI template that DOES track a live game under
|
|
115
|
+
`games/src/games/arcade/<game>/{scene,registry}.ts`, add a pair to `PAIRS`
|
|
116
|
+
and use `@sync-skip` markers to keep playground-only panels out of the
|
|
117
|
+
scaffolded template:
|
|
113
118
|
|
|
114
119
|
```ts
|
|
115
120
|
// scene.ts
|
|
@@ -77,6 +77,19 @@ export interface MeshPrimitiveInput {
|
|
|
77
77
|
emissiveColor?: [number, number, number];
|
|
78
78
|
ambientColor?: [number, number, number];
|
|
79
79
|
alpha?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Texture-map URLs. Any one of these flips the renderer to a PBR material
|
|
82
|
+
* (e.g. a tiled carpet floor). `uScale`/`vScale` tile the maps across the
|
|
83
|
+
* surface; `metallic`/`roughness` are PBR scalars.
|
|
84
|
+
*/
|
|
85
|
+
albedoTexture?: string;
|
|
86
|
+
normalTexture?: string;
|
|
87
|
+
roughnessTexture?: string;
|
|
88
|
+
ambientTexture?: string;
|
|
89
|
+
metallic?: number;
|
|
90
|
+
roughness?: number;
|
|
91
|
+
uScale?: number;
|
|
92
|
+
vScale?: number;
|
|
80
93
|
};
|
|
81
94
|
|
|
82
95
|
visible?: boolean;
|
|
@@ -178,6 +191,14 @@ export class MeshPrimitiveComponent extends Component {
|
|
|
178
191
|
specular: m.specularColor,
|
|
179
192
|
emissive: m.emissiveColor,
|
|
180
193
|
alpha: m.alpha,
|
|
194
|
+
albedoTexture: m.albedoTexture,
|
|
195
|
+
normalTexture: m.normalTexture,
|
|
196
|
+
roughnessTexture: m.roughnessTexture,
|
|
197
|
+
ambientTexture: m.ambientTexture,
|
|
198
|
+
metallic: m.metallic,
|
|
199
|
+
roughness: m.roughness,
|
|
200
|
+
uScale: m.uScale,
|
|
201
|
+
vScale: m.vScale,
|
|
181
202
|
};
|
|
182
203
|
void m.ambientColor; // legacy key ignored; ambient is driven by scene lights now
|
|
183
204
|
}
|
|
@@ -210,6 +231,14 @@ export class MeshPrimitiveComponent extends Component {
|
|
|
210
231
|
specularColor: this.material.specular,
|
|
211
232
|
emissiveColor: this.material.emissive,
|
|
212
233
|
alpha: this.material.alpha,
|
|
234
|
+
albedoTexture: this.material.albedoTexture,
|
|
235
|
+
normalTexture: this.material.normalTexture,
|
|
236
|
+
roughnessTexture: this.material.roughnessTexture,
|
|
237
|
+
ambientTexture: this.material.ambientTexture,
|
|
238
|
+
metallic: this.material.metallic,
|
|
239
|
+
roughness: this.material.roughness,
|
|
240
|
+
uScale: this.material.uScale,
|
|
241
|
+
vScale: this.material.vScale,
|
|
213
242
|
}
|
|
214
243
|
: undefined;
|
|
215
244
|
return {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared component resolver map for every scene in the arcade.
|
|
3
|
+
*
|
|
4
|
+
* Every component the arcade room uses (MeshPrimitive, Mesh, DirectionalLight,
|
|
5
|
+
* HemisphericLight, Shadow, ArcCamera, ...) is registered by default in
|
|
6
|
+
* @babylonjsmarket/arcade, so this map starts empty.
|
|
7
|
+
*
|
|
8
|
+
* To add your own component, drop it under `src/components/MyThing.ts`
|
|
9
|
+
* exporting `MyThingComponent` (and optionally `MyThingSystem`), then add an
|
|
10
|
+
* entry below — it is shared across all scenes in `src/scenes/`:
|
|
11
|
+
*
|
|
12
|
+
* MyThing: () => import('./components/MyThing'),
|
|
13
|
+
*/
|
|
14
|
+
export const REGISTRY = {}
|