@babylonjsmarket/arcade 0.3.5 → 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.
Files changed (44) hide show
  1. package/.claude-payload/skills/babylonjsmarket/SKILL.md +4 -4
  2. package/dist/Components/MeshPrimitive/MeshPrimitive.core.d.ts +13 -0
  3. package/dist/Components/MeshPrimitive/MeshPrimitive.core.d.ts.map +1 -1
  4. package/dist/Components/MeshPrimitive/MeshPrimitive.core.js +16 -0
  5. package/dist/Components/MeshPrimitive/MeshPrimitive.core.js.map +1 -1
  6. package/dist/cli/index.js +50 -80
  7. package/dist/cli/index.js.map +1 -1
  8. package/package.json +3 -2
  9. package/skills/arcade-scaffold/SKILL.md +15 -10
  10. package/src/Components/MeshPrimitive/MeshPrimitive.core.ts +29 -0
  11. package/{dist/Components/_shared/inputEvents.js → src/inputEvents.ts} +3 -4
  12. package/templates/arcade-room.registry.ts +14 -0
  13. package/templates/arcade-room.scene.ts +165 -0
  14. package/templates/main.ts +9 -7
  15. package/templates/scenes-index.ts +19 -0
  16. package/dist/Components/_shared/inputEvents.d.ts +0 -11
  17. package/dist/Components/_shared/inputEvents.d.ts.map +0 -1
  18. package/dist/Components/_shared/inputEvents.js.map +0 -1
  19. package/dist/Components/_shared/ui/ColorControl.d.ts +0 -10
  20. package/dist/Components/_shared/ui/ColorControl.d.ts.map +0 -1
  21. package/dist/Components/_shared/ui/ColorControl.jsx +0 -33
  22. package/dist/Components/_shared/ui/ColorControl.jsx.map +0 -1
  23. package/dist/Components/_shared/ui/ResetButton.d.ts +0 -7
  24. package/dist/Components/_shared/ui/ResetButton.d.ts.map +0 -1
  25. package/dist/Components/_shared/ui/ResetButton.jsx +0 -17
  26. package/dist/Components/_shared/ui/ResetButton.jsx.map +0 -1
  27. package/dist/Components/_shared/ui/Section.d.ts +0 -8
  28. package/dist/Components/_shared/ui/Section.d.ts.map +0 -1
  29. package/dist/Components/_shared/ui/Section.jsx +0 -11
  30. package/dist/Components/_shared/ui/Section.jsx.map +0 -1
  31. package/dist/Components/_shared/ui/Slider.d.ts +0 -13
  32. package/dist/Components/_shared/ui/Slider.d.ts.map +0 -1
  33. package/dist/Components/_shared/ui/Slider.jsx +0 -29
  34. package/dist/Components/_shared/ui/Slider.jsx.map +0 -1
  35. package/dist/Components/_shared/ui/index.d.ts +0 -9
  36. package/dist/Components/_shared/ui/index.d.ts.map +0 -1
  37. package/dist/Components/_shared/ui/index.js +0 -5
  38. package/dist/Components/_shared/ui/index.js.map +0 -1
  39. package/templates/empty-3d.registry.ts +0 -12
  40. package/templates/empty-3d.scene.ts +0 -127
  41. package/templates/pinball.registry.ts +0 -53
  42. package/templates/pinball.scene.ts +0 -384
  43. package/templates/top-down-shooter.registry.ts +0 -37
  44. 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
- - **After editing a scene's component set, re-sync templates:** `npm run sync-templates` in `packages/arcade` (a drift test enforces it). Keep playground-only panels out of the scaffolded template with `@sync-skip-begin`/`@sync-skip-end` (or `// @sync-skip` on a single line) in the games-side `scene.ts`/`registry.ts`.
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
- The CLI offers several templates (`-t <name>` to skip the prompt; `arcade init -h` lists them). After scaffolding: `cd <dir> && npm install && npm run dev`, then open the printed URL.
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
- Every template ships the same tiny `src/main.ts` boot. Scenes are TS modules (`src/scene.ts`) that declare entities + components **by name**; arcade lazy-imports each named built-in the first time it appears. **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 }`.
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 `scene.ts`/`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.
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":"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"}
1
+ {"version":3,"file":"MeshPrimitive.core.d.ts","sourceRoot":"","sources":["../../../src/Components/MeshPrimitive/MeshPrimitive.core.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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", t: "template" },
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 game powered by @babylonjsmarket/ecs and @babylonjsmarket/arcade.
69
+ Create a new multigame BabylonJS arcade powered by @babylonjsmarket/ecs and
70
+ @babylonjsmarket/arcade.
74
71
 
75
- Every template ships the SAME tiny src/main.ts boot. Scenes are TS modules
76
- (src/scene.ts) that declare entities + their components by name; arcade
77
- lazy-imports each named component the first time it appears. Custom
78
- components go under src/components/ and are wired up via src/registry.ts.
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
- // 4. Choose a template
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, identical for every template imports SCENE + REGISTRY and
320
- // starts the game. Users rarely edit this file.
321
- write("src/main.ts", generateMainTs());
322
- // The actual game definition. Pure data: entities + components by name.
323
- // Every component name appearing here is resolved either by arcade's
324
- // default registry or by src/registry.ts (HUD panels and any custom
325
- // components the user authors locally).
326
- write("src/scene.ts", generateSceneTs(template));
327
- // HUD-panel resolvers and any user-supplied custom components.
328
- write("src/registry.ts", generateRegistryTs(template));
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 game built with the @babylonjsmarket/ecs framework
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
- The whole game is three small TS files:
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/scene.ts\` | Entities + componentsthe game itself, as pure data |
365
- | \`src/registry.ts\` | HUD panel resolvers (Scoreboard, etc.) and any custom components |
366
- | \`src/main.ts\` | Three-line boot: BabylonAdapter ArcadeGame loadScene start |
339
+ | \`src/scenes/arcade-room.ts\` | The starter roomentities + 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(SCENE)\` — that's it.
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
- Everything else meshes, lights, cameras, gameplay logic — is declared in
382
- \`src/scene.ts\` as entities + named components. The arcade package's
383
- default registry maps every named component to its module; bundlers
384
- tree-shake any component a scene doesn't use.
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));
@@ -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.5",
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",
@@ -65,7 +65,7 @@
65
65
  "src/Components/**/*.viz.tsx",
66
66
  "src/Components/**/*.panel.tsx",
67
67
  "src/Components/**/meta.json",
68
- "src/Components/_shared",
68
+ "src/inputEvents.ts",
69
69
  "templates",
70
70
  ".claude-payload",
71
71
  ".claude-plugin",
@@ -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. The CLI presents four templates (basic, first-person, top-down, side-scroller). Pick the one matching the user's request, or ask if ambiguous.
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 component to an existing arcade project:
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 that don't ship in the CLI template
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 a panel is still a playground prototype, keep it out of the
111
- scaffolded template using `@sync-skip` markers in the games-side
112
- `scene.ts` and `registry.ts`:
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 {
@@ -5,7 +5,6 @@
5
5
  * the strings, so emitter and listener can't drift into silent synonyms.
6
6
  */
7
7
  export const KeyboardInputEvents = {
8
- KEYDOWN: 'keyboard.keydown',
9
- KEYUP: 'keyboard.keyup',
10
- };
11
- //# sourceMappingURL=inputEvents.js.map
8
+ KEYDOWN: 'keyboard.keydown',
9
+ KEYUP: 'keyboard.keyup',
10
+ } as const;
@@ -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 = {}