@bitmagic/world-forger 0.1.24-dev.1 → 0.1.24-dev.10

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 (48) hide show
  1. package/dist/artifact-types.d.ts +6 -0
  2. package/dist/artifact-types.d.ts.map +1 -1
  3. package/dist/generated/game-data-schema.d.ts +11 -1
  4. package/dist/generated/game-data-schema.d.ts.map +1 -1
  5. package/dist/generated/game-data-schema.js +15 -1
  6. package/dist/generated/game-data-schema.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/physics-mode.d.ts +72 -0
  12. package/dist/physics-mode.d.ts.map +1 -0
  13. package/dist/physics-mode.js +80 -0
  14. package/dist/physics-mode.js.map +1 -0
  15. package/dist/pipeline/index.d.ts +4 -0
  16. package/dist/pipeline/index.d.ts.map +1 -1
  17. package/dist/pipeline/index.js +4 -0
  18. package/dist/pipeline/index.js.map +1 -1
  19. package/dist/pipeline/job-types.d.ts +31 -2
  20. package/dist/pipeline/job-types.d.ts.map +1 -1
  21. package/dist/pipeline/persist-sideon.d.ts +83 -0
  22. package/dist/pipeline/persist-sideon.d.ts.map +1 -0
  23. package/dist/pipeline/persist-sideon.js +196 -0
  24. package/dist/pipeline/persist-sideon.js.map +1 -0
  25. package/dist/pipeline/place-and-persist-level.d.ts +14 -1
  26. package/dist/pipeline/place-and-persist-level.d.ts.map +1 -1
  27. package/dist/pipeline/place-and-persist-level.js +59 -5
  28. package/dist/pipeline/place-and-persist-level.js.map +1 -1
  29. package/dist/pipeline/place-and-persist-sideon.d.ts +43 -0
  30. package/dist/pipeline/place-and-persist-sideon.d.ts.map +1 -0
  31. package/dist/pipeline/place-and-persist-sideon.js +352 -0
  32. package/dist/pipeline/place-and-persist-sideon.js.map +1 -0
  33. package/dist/pipeline/progress-types.d.ts +15 -0
  34. package/dist/pipeline/progress-types.d.ts.map +1 -1
  35. package/dist/pipeline/progress-types.js +6 -0
  36. package/dist/pipeline/progress-types.js.map +1 -1
  37. package/dist/pipeline/sideon-layout-map.d.ts +27 -0
  38. package/dist/pipeline/sideon-layout-map.d.ts.map +1 -0
  39. package/dist/pipeline/sideon-layout-map.js +96 -0
  40. package/dist/pipeline/sideon-layout-map.js.map +1 -0
  41. package/dist/pipeline/sideon-types.d.ts +146 -0
  42. package/dist/pipeline/sideon-types.d.ts.map +1 -0
  43. package/dist/pipeline/sideon-types.js +7 -0
  44. package/dist/pipeline/sideon-types.js.map +1 -0
  45. package/dist/pipeline/voxelize-level.d.ts.map +1 -1
  46. package/dist/pipeline/voxelize-level.js +9 -0
  47. package/dist/pipeline/voxelize-level.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,146 @@
1
+ /**
2
+ * The SIDE-ON 2D forge's artifact shapes — what the private design/expand half
3
+ * produces for the published steps (archetype bakes, instance placement and the
4
+ * side-on persist plan) to consume.
5
+ *
6
+ * A side-on level is a side-view strip along X: flat baseline ground at Y=0,
7
+ * placed voxel objects (buildings, rooftop platforms, props) as the walkable
8
+ * surfaces, coins/checkpoints/goal as named or collectible instances — all on
9
+ * the locked gameplay plane at Z≈0. There is no terrain GLB and no vwld bake;
10
+ * the layout IS the data.
11
+ *
12
+ * Like `artifact-types.ts`, these are declarations only. The plan schema that
13
+ * produces them lives in the private package; the published carrier keeps the
14
+ * validated plan as an opaque record.
15
+ */
16
+ import type { ForgeArtifact } from './job-types.js';
17
+ import type { LevelEntry } from './world-json-types.js';
18
+ import type { ResolvedFeature, ResolvedPathFeature } from '../artifact-types.js';
19
+ /** One walkable surface of the route, in world space (a rooftop, a platform top, a ground run). */
20
+ export interface SideonSurface {
21
+ /** The archetype whose instance provides this surface ('' for baseline ground runs). */
22
+ archetype: string;
23
+ x0: number;
24
+ x1: number;
25
+ /** World-space Y of the walkable top. */
26
+ topY: number;
27
+ }
28
+ /** A dangerous span along X the player must not linger in (streets between roofs, pits). */
29
+ export interface SideonHazardSpan {
30
+ kind: 'street' | 'pit';
31
+ x0: number;
32
+ x1: number;
33
+ }
34
+ export interface SideonPointOfInterest {
35
+ id: string;
36
+ x: number;
37
+ y: number;
38
+ }
39
+ export interface SideonCollectibleCandidate {
40
+ id: string;
41
+ /** The plan's collectible type word ("coin", "gem" — whatever was designed). */
42
+ type: string;
43
+ x: number;
44
+ y: number;
45
+ /** Why this position exists ("surface", "arcApex", ...), for later variety re-rolls. */
46
+ intent: string;
47
+ /** True = not part of the placed set this forge chose. */
48
+ optional: boolean;
49
+ }
50
+ /** The movement envelope the layout was reach-verified against. */
51
+ export interface SideonMovementEnvelope {
52
+ runSpeed: number;
53
+ /** Positive magnitude, m/s². */
54
+ gravity: number;
55
+ jumpHeight: number;
56
+ /** Second-jump velocity as a fraction of the first (0 = no double jump). */
57
+ airJumpFactor: number;
58
+ maxJumps: number;
59
+ stepHeight: number;
60
+ coyoteTime: number;
61
+ /** Fraction of the theoretical reach the expander actually uses (safety margin). */
62
+ designTolerance: number;
63
+ /** Max upward rise (m) a full jump chain clears, tolerance applied. */
64
+ maxRiseM: number;
65
+ /** Max flat gap (m) a full jump chain clears, tolerance applied. */
66
+ flatReachM: number;
67
+ }
68
+ /**
69
+ * The compact as-built record of a side-on level — persisted verbatim into
70
+ * `worldProfileData.worldForgerSideon` (regenerability + inspection + the
71
+ * coding-pass handoff) and the source the layout raster is drawn from.
72
+ */
73
+ export interface SideonLayoutView {
74
+ version: 1;
75
+ rooftopMode: boolean;
76
+ /** Strip length along X in meters. */
77
+ lengthM: number;
78
+ groundWorldSizeX: number;
79
+ groundWorldSizeZ: number;
80
+ /** The plan's ground block name, when it chose one (persisted into terrain config). */
81
+ groundBlockType?: string;
82
+ movement: SideonMovementEnvelope;
83
+ /** The walkable route, ordered left→right. */
84
+ surfaces: SideonSurface[];
85
+ hazardSpans: SideonHazardSpan[];
86
+ checkpoints: SideonPointOfInterest[];
87
+ /** Null for a level without a goal (backdrop scenes). */
88
+ goal: SideonPointOfInterest | null;
89
+ /** Every candidate the expander generated; the placed subset is what shipped. */
90
+ collectibleCandidates: SideonCollectibleCandidate[];
91
+ /** How many collectibles the plan budgeted (0 = none designed). */
92
+ collectibleBudget: number;
93
+ }
94
+ /**
95
+ * The side-on `forge` artifact.
96
+ *
97
+ * Structurally a {@link ForgeArtifact} minus the level-bake inputs — the
98
+ * archetype step reads it through the ForgeArtifact view (it touches only
99
+ * `archetypes`, `glbUrl` and `dungeonEmissiveByColor`), so the shared step runs
100
+ * verbatim. `glbUrl` is '' (there is no level GLB) and `voxelizeOptions` /
101
+ * `terrainHeightGrid` are absent (nothing bakes, ground is flat).
102
+ */
103
+ export interface SideonForgeArtifact extends Omit<ForgeArtifact, 'voxelizeOptions' | 'terrainHeightGrid'> {
104
+ /** Discriminator for hosts/tools inspecting a stored artifact. */
105
+ sideon: SideonLayoutView;
106
+ }
107
+ /**
108
+ * What lands in `worldProfileData.worldForgerSideon` — the level's identity,
109
+ * the validated plan (opaque here; its schema is the private designer's), the
110
+ * as-built layout, and the world-resolved feature/marker handoff for the
111
+ * mandatory second coding pass.
112
+ */
113
+ export interface SideonPersistCarrier {
114
+ jobId: string;
115
+ name: string;
116
+ prompt: string;
117
+ originalUserPrompt?: string;
118
+ /** The validated side-on plan, verbatim (schema owned by the private half). */
119
+ spec: Record<string, unknown>;
120
+ layout: SideonLayoutView;
121
+ features: Array<ResolvedFeature | ResolvedPathFeature>;
122
+ markers: Array<{
123
+ name: string;
124
+ x: number;
125
+ y: number;
126
+ z: number;
127
+ }>;
128
+ /**
129
+ * The multi-level registry this side-on forge REPLACED, verbatim — absent
130
+ * when the game had none.
131
+ *
132
+ * A side-on level cannot be a registry entry, so the forge empties the
133
+ * registry (see persist-sideon.ts). The `.vwld` assets survive in `assets[]`,
134
+ * but each entry's `spawnPoints` and atmosphere `overrides` live nowhere
135
+ * else, so they are kept here rather than destroyed: enough to reconstruct
136
+ * the discarded levels, or to tell a creator what a re-forge cost them.
137
+ */
138
+ replacedLevels?: {
139
+ levels: LevelEntry[];
140
+ startLevelId?: string;
141
+ voxelUrl?: string;
142
+ };
143
+ }
144
+ /** Type guard: is a stored `forge` artifact the side-on shape? */
145
+ export declare function isSideonForgeArtifact(artifact: unknown): artifact is SideonForgeArtifact;
146
+ //# sourceMappingURL=sideon-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideon-types.d.ts","sourceRoot":"","sources":["../../src/pipeline/sideon-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Type guard: is a stored `forge` artifact the side-on shape? */
2
+ export function isSideonForgeArtifact(artifact) {
3
+ return typeof artifact === 'object' && artifact !== null
4
+ && typeof artifact.sideon === 'object'
5
+ && artifact.sideon !== null;
6
+ }
7
+ //# sourceMappingURL=sideon-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideon-types.js","sourceRoot":"","sources":["../../src/pipeline/sideon-types.ts"],"names":[],"mappings":"AAmJA,kEAAkE;AAClE,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IACrD,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;WACnD,OAAQ,QAAoC,CAAC,MAAM,KAAK,QAAQ;WAC/D,QAAoC,CAAC,MAAM,KAAK,IAAI,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"voxelize-level.d.ts","sourceRoot":"","sources":["../../src/pipeline/voxelize-level.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAK3C,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAAiB,CAAC;AAIlD;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAsBlD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EACzB,EAAE,EAAE,MAAM,GACT,kBAAkB,GAAG,IAAI,CA2B3B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF1F"}
1
+ {"version":3,"file":"voxelize-level.d.ts","sourceRoot":"","sources":["../../src/pipeline/voxelize-level.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAM3C,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAAiB,CAAC;AAIlD;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAsBlD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EACzB,EAAE,EAAE,MAAM,GACT,kBAAkB,GAAG,IAAI,CA2B3B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmG1F"}
@@ -1,4 +1,5 @@
1
1
  import { requireArtifact } from './artifact-store.js';
2
+ import { isSideonForgeArtifact } from './sideon-types.js';
2
3
  import { ForgeStepError } from './errors.js';
3
4
  import { forgeRequestId } from './request-id.js';
4
5
  import { emitForgeProgress } from './progress-types.js';
@@ -76,6 +77,14 @@ export function bakeProgressEvent(message, state, at) {
76
77
  export async function voxelizeLevel(store, deps) {
77
78
  const input = await requireArtifact(store, 'input');
78
79
  const forge = await requireArtifact(store, 'forge');
80
+ if (isSideonForgeArtifact(forge)) {
81
+ // A side-on `forge` artifact reaching the 3D bake: its glbUrl is '' and its
82
+ // voxelizeOptions absent, so the send below would burn the full bake
83
+ // timeout against nothing. The lane frozen on the job input is checked at
84
+ // every entry point, so this is a host routing bug — fail with the cause.
85
+ throw new Error(`Job ${store.jobId}'s forge artifact is a SIDE-ON level, which has no vwld bake — the game's `
86
+ + 'dimension changed after the job started. Start a fresh forge instead of resuming this job.');
87
+ }
79
88
  const requestId = forgeRequestId();
80
89
  emitForgeProgress(deps, {
81
90
  step: 'voxelize',
@@ -1 +1 @@
1
- {"version":3,"file":"voxelize-level.js","sourceRoot":"","sources":["../../src/pipeline/voxelize-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voxelize-level.js","sourceRoot":"","sources":["../../src/pipeline/voxelize-level.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitmagic/world-forger",
3
- "version": "0.1.24-dev.1",
3
+ "version": "0.1.24-dev.10",
4
4
  "description": "Client half of the Bitmagic world forger: the forged-level artifact schema, the host seams, and the browser pipeline steps that bake archetypes, bake a level and place its instances.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Bitmagic Oy",