@codexo/exojs-tilemap 0.13.0 → 0.15.0

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 (59) hide show
  1. package/dist/esm/ImageLayer.d.ts +81 -0
  2. package/dist/esm/ImageLayer.js +67 -0
  3. package/dist/esm/ImageLayer.js.map +1 -0
  4. package/dist/esm/ObjectLayer.d.ts +277 -0
  5. package/dist/esm/ObjectLayer.js +176 -0
  6. package/dist/esm/ObjectLayer.js.map +1 -0
  7. package/dist/esm/TileAnimator.d.ts +62 -0
  8. package/dist/esm/TileAnimator.js +169 -0
  9. package/dist/esm/TileAnimator.js.map +1 -0
  10. package/dist/esm/TileChunk.js.map +1 -1
  11. package/dist/esm/TileChunkNode.d.ts +1 -1
  12. package/dist/esm/TileChunkNode.js +1 -1
  13. package/dist/esm/TileLayer.d.ts +33 -2
  14. package/dist/esm/TileLayer.js +26 -2
  15. package/dist/esm/TileLayer.js.map +1 -1
  16. package/dist/esm/TileLayerNode.d.ts +10 -3
  17. package/dist/esm/TileLayerNode.js +35 -7
  18. package/dist/esm/TileLayerNode.js.map +1 -1
  19. package/dist/esm/TileMap.d.ts +71 -1
  20. package/dist/esm/TileMap.js +100 -1
  21. package/dist/esm/TileMap.js.map +1 -1
  22. package/dist/esm/TileMapBand.d.ts +6 -3
  23. package/dist/esm/TileMapBand.js +7 -6
  24. package/dist/esm/TileMapBand.js.map +1 -1
  25. package/dist/esm/TileMapNode.d.ts +1 -1
  26. package/dist/esm/TileMapView.d.ts +1 -1
  27. package/dist/esm/TileMapView.js.map +1 -1
  28. package/dist/esm/TileSet.d.ts +12 -0
  29. package/dist/esm/TileSet.js +30 -2
  30. package/dist/esm/TileSet.js.map +1 -1
  31. package/dist/esm/WangSet.d.ts +79 -0
  32. package/dist/esm/WangSet.js +81 -0
  33. package/dist/esm/WangSet.js.map +1 -0
  34. package/dist/esm/autoTile.d.ts +83 -0
  35. package/dist/esm/autoTile.js +214 -0
  36. package/dist/esm/autoTile.js.map +1 -0
  37. package/dist/esm/chunkGeometry.js +4 -3
  38. package/dist/esm/chunkGeometry.js.map +1 -1
  39. package/dist/esm/index.js +6 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/pixelSnap.d.ts +1 -1
  42. package/dist/esm/public.d.ts +11 -2
  43. package/dist/esm/register.js +6 -1
  44. package/dist/esm/register.js.map +1 -1
  45. package/dist/esm/tilemapExtension.d.ts +4 -3
  46. package/dist/esm/tilemapExtension.js +8 -4
  47. package/dist/esm/tilemapExtension.js.map +1 -1
  48. package/dist/esm/tilemapSerializers.d.ts +19 -0
  49. package/dist/esm/tilemapSerializers.js +47 -0
  50. package/dist/esm/tilemapSerializers.js.map +1 -0
  51. package/dist/esm/types.d.ts +86 -4
  52. package/dist/esm/types.js +18 -1
  53. package/dist/esm/types.js.map +1 -1
  54. package/dist/esm/webgl2/WebGl2TileChunkRenderer.d.ts +2 -2
  55. package/dist/esm/webgl2/WebGl2TileChunkRenderer.js +1 -1
  56. package/dist/esm/webgl2/WebGl2TileChunkRenderer.js.map +1 -1
  57. package/dist/esm/webgpu/WebGpuTileChunkRenderer.d.ts +2 -2
  58. package/dist/esm/webgpu/WebGpuTileChunkRenderer.js +1 -1
  59. package/package.json +8 -3
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Drives per-tile animations on one or more {@link TileLayer}s, RPG-Maker style.
3
+ *
4
+ * On construction it scans the given layer(s) once and registers every cell
5
+ * whose tile carries an `animation` (see {@link import('./types').TileDefinition}).
6
+ * Each {@link update} advances a shared clock and rewrites **only** the
7
+ * registered animated cells, and **only** when a cell crosses a frame boundary —
8
+ * static tiles are never touched. Because a tile rewrite goes through
9
+ * `layer.setTileAt`, only the chunks that actually contain animated cells rebuild
10
+ * their geometry, and only on the (infrequent) frames where a boundary is
11
+ * crossed. The large static body of the map never rebuilds.
12
+ *
13
+ * Tick it from your update loop, like `TweenSequencer`:
14
+ *
15
+ * ```ts
16
+ * const animator = new TileAnimator(map.layers);
17
+ * scene.systems.add({ update: (t) => animator.update(t.deltaSeconds) });
18
+ * ```
19
+ *
20
+ * The animator references — but never owns — the layers and their tilesets;
21
+ * {@link destroy} only drops its own cell registry.
22
+ *
23
+ * @advanced
24
+ */
25
+ class TileAnimator {
26
+ _layers;
27
+ _cells = [];
28
+ _elapsedMs = 0;
29
+ /**
30
+ * @param layers One layer, or an array of layers (e.g. `map.layers`), to scan
31
+ * for animated tiles.
32
+ */
33
+ constructor(layers) {
34
+ this._layers = Array.isArray(layers) ? layers : [layers];
35
+ this._scan();
36
+ }
37
+ /** Number of animated cells currently registered across all layers. */
38
+ get animatedCellCount() {
39
+ return this._cells.length;
40
+ }
41
+ /** Total elapsed animation time in milliseconds since construction/reset. */
42
+ get elapsedMs() {
43
+ return this._elapsedMs;
44
+ }
45
+ /**
46
+ * Advance all registered animations by `deltaSeconds` and write the current
47
+ * frame into any cell that crossed a frame boundary. Cells that did not change
48
+ * frame are not touched, so their chunks do not rebuild.
49
+ *
50
+ * @param deltaSeconds Elapsed wall-clock time since the last call, in seconds.
51
+ */
52
+ update(deltaSeconds) {
53
+ if (!Number.isFinite(deltaSeconds) || deltaSeconds <= 0 || this._cells.length === 0) {
54
+ return;
55
+ }
56
+ this._elapsedMs += deltaSeconds * 1000;
57
+ for (const cell of this._cells) {
58
+ const t = this._elapsedMs % cell.totalMs;
59
+ const frameIndex = frameIndexAt(cell.cumulative, t);
60
+ if (frameIndex === cell.currentFrame) {
61
+ continue;
62
+ }
63
+ cell.currentFrame = frameIndex;
64
+ const frame = cell.frames[frameIndex];
65
+ if (frame === undefined) {
66
+ continue;
67
+ }
68
+ cell.layer.setTileAt(cell.tx, cell.ty, {
69
+ tileset: cell.tileset,
70
+ localTileId: frame.localTileId,
71
+ transform: cell.transform,
72
+ });
73
+ }
74
+ }
75
+ /**
76
+ * Restore every animated cell to its first frame and reset the clock.
77
+ * Useful before serialising or pausing.
78
+ */
79
+ reset() {
80
+ this._elapsedMs = 0;
81
+ for (const cell of this._cells) {
82
+ const frame = cell.frames[0];
83
+ if (frame === undefined) {
84
+ continue;
85
+ }
86
+ cell.currentFrame = 0;
87
+ cell.layer.setTileAt(cell.tx, cell.ty, {
88
+ tileset: cell.tileset,
89
+ localTileId: frame.localTileId,
90
+ transform: cell.transform,
91
+ });
92
+ }
93
+ }
94
+ /**
95
+ * Re-scan the layers for animated cells. Call after structural edits that add
96
+ * or remove animated tiles. Resets all currently-tracked cells to frame 0
97
+ * first so the rescan starts from a clean, deterministic state.
98
+ */
99
+ rescan() {
100
+ this.reset();
101
+ this._scan();
102
+ }
103
+ /** Drop the cell registry. Does not modify the layers or tilesets. */
104
+ destroy() {
105
+ this._cells = [];
106
+ this._elapsedMs = 0;
107
+ }
108
+ /** Scan all layers for cells whose tile carries a (multi-frame) animation. */
109
+ _scan() {
110
+ const cells = [];
111
+ for (const layer of this._layers) {
112
+ for (let ty = 0; ty < layer.height; ty++) {
113
+ for (let tx = 0; tx < layer.width; tx++) {
114
+ const tile = layer.getTileAt(tx, ty);
115
+ if (!tile) {
116
+ continue;
117
+ }
118
+ const def = tile.tileset.getTileDefinition(tile.localTileId);
119
+ const frames = def?.animation;
120
+ if (!frames || frames.length < 2) {
121
+ continue;
122
+ }
123
+ // Skip animations referencing out-of-range frames so update() never
124
+ // throws from setTileAt; such data is malformed and silently ignored.
125
+ if (frames.some(f => f.localTileId < 0 || f.localTileId >= tile.tileset.tileCount)) {
126
+ continue;
127
+ }
128
+ const cumulative = [];
129
+ let total = 0;
130
+ for (const frame of frames) {
131
+ total += Math.max(0, frame.duration);
132
+ cumulative.push(total);
133
+ }
134
+ if (total <= 0) {
135
+ continue;
136
+ }
137
+ cells.push({
138
+ layer,
139
+ tx,
140
+ ty,
141
+ tileset: tile.tileset,
142
+ transform: tile.transform,
143
+ frames,
144
+ cumulative,
145
+ totalMs: total,
146
+ currentFrame: -1,
147
+ });
148
+ }
149
+ }
150
+ }
151
+ this._cells = cells;
152
+ }
153
+ }
154
+ /**
155
+ * Find the frame index whose cumulative window contains time `t` (0 ≤ t < total).
156
+ * `cumulative[i]` is the end time of frame `i`; the last entry equals the total.
157
+ */
158
+ function frameIndexAt(cumulative, t) {
159
+ for (let i = 0; i < cumulative.length; i++) {
160
+ const end = cumulative[i];
161
+ if (end !== undefined && t < end) {
162
+ return i;
163
+ }
164
+ }
165
+ return cumulative.length - 1;
166
+ }
167
+
168
+ export { TileAnimator };
169
+ //# sourceMappingURL=TileAnimator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileAnimator.js","sources":["../../../src/TileAnimator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileChunk.js","sources":["../../../src/TileChunk.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileChunk.js","sources":["../../../src/TileChunk.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Rectangle } from '@codexo/exojs';
2
- import { Drawable } from '@codexo/exojs/rendering';
2
+ import { Drawable } from '@codexo/exojs/renderer-sdk';
3
3
  import type { ChunkPage } from './chunkGeometry';
4
4
  import type { ReadonlyTileChunk } from './TileChunk';
5
5
  import type { TileSet } from './TileSet';
@@ -1,4 +1,4 @@
1
- import { Drawable } from '@codexo/exojs/rendering';
1
+ import { Drawable } from '@codexo/exojs/renderer-sdk';
2
2
  import { buildChunkPages } from './chunkGeometry.js';
3
3
 
4
4
  /**
@@ -34,6 +34,23 @@ export interface TileLayerOptions {
34
34
  readonly offsetX?: number;
35
35
  /** Layer pixel offset Y. Default 0. */
36
36
  readonly offsetY?: number;
37
+ /**
38
+ * Parallax scroll factor on the X axis. `1.0` = full camera speed (normal),
39
+ * `0.5` = half speed (farther away), `0.0` = stationary. Default 1.
40
+ */
41
+ readonly parallaxX?: number;
42
+ /**
43
+ * Parallax scroll factor on the Y axis. `1.0` = full camera speed (normal),
44
+ * `0.5` = half speed (farther away), `0.0` = stationary. Default 1.
45
+ */
46
+ readonly parallaxY?: number;
47
+ /** Layer class/type string (Tiled `class`). Defaults to `''`. */
48
+ readonly class?: string;
49
+ /**
50
+ * Multiplicative layer tint as a `0xRRGGBB` integer, or `null` for none
51
+ * (Tiled `tintcolor`). Applied to every chunk's render tint. Default `null`.
52
+ */
53
+ readonly tintColor?: number | null;
37
54
  /** Layer properties (copied and frozen). */
38
55
  readonly properties?: TileProperties;
39
56
  }
@@ -50,8 +67,8 @@ export interface TileLayerOptions {
50
67
  * changes. Direct chunk mutation is not supported — the layer owns chunk
51
68
  * storage and exposes only a {@link ReadonlyTileChunk} view.
52
69
  *
53
- * The layer is NOT a SceneNode — that integration lives in the future
54
- * renderer slice.
70
+ * The layer is NOT a SceneNode — that integration lives in
71
+ * {@link import('./TileLayerNode').TileLayerNode}.
55
72
  *
56
73
  * @advanced
57
74
  */
@@ -84,6 +101,20 @@ export declare class TileLayer {
84
101
  offsetX: number;
85
102
  /** Vertical pixel offset (mutable). */
86
103
  offsetY: number;
104
+ /**
105
+ * Parallax scroll factor on the X axis.
106
+ * `1.0` = full camera speed, `0.5` = half speed, `0.0` = stationary.
107
+ */
108
+ readonly parallaxX: number;
109
+ /**
110
+ * Parallax scroll factor on the Y axis.
111
+ * `1.0` = full camera speed, `0.5` = half speed, `0.0` = stationary.
112
+ */
113
+ readonly parallaxY: number;
114
+ /** Layer class/type string (Tiled `class`; may be empty). */
115
+ readonly class: string;
116
+ /** Multiplicative layer tint as `0xRRGGBB`, or `null` for no tint. */
117
+ readonly tintColor: number | null;
87
118
  /** Immutable layer properties. */
88
119
  readonly properties: TileProperties;
89
120
  /** The tilesets available to this layer (shared array reference). */
@@ -15,8 +15,8 @@ const DEFAULT_CHUNK_SIZE = 32;
15
15
  * changes. Direct chunk mutation is not supported — the layer owns chunk
16
16
  * storage and exposes only a {@link ReadonlyTileChunk} view.
17
17
  *
18
- * The layer is NOT a SceneNode — that integration lives in the future
19
- * renderer slice.
18
+ * The layer is NOT a SceneNode — that integration lives in
19
+ * {@link import('./TileLayerNode').TileLayerNode}.
20
20
  *
21
21
  * @advanced
22
22
  */
@@ -49,6 +49,20 @@ class TileLayer {
49
49
  offsetX;
50
50
  /** Vertical pixel offset (mutable). */
51
51
  offsetY;
52
+ /**
53
+ * Parallax scroll factor on the X axis.
54
+ * `1.0` = full camera speed, `0.5` = half speed, `0.0` = stationary.
55
+ */
56
+ parallaxX;
57
+ /**
58
+ * Parallax scroll factor on the Y axis.
59
+ * `1.0` = full camera speed, `0.5` = half speed, `0.0` = stationary.
60
+ */
61
+ parallaxY;
62
+ /** Layer class/type string (Tiled `class`; may be empty). */
63
+ class;
64
+ /** Multiplicative layer tint as `0xRRGGBB`, or `null` for no tint. */
65
+ tintColor;
52
66
  /** Immutable layer properties. */
53
67
  properties;
54
68
  /** The tilesets available to this layer (shared array reference). */
@@ -66,6 +80,7 @@ class TileLayer {
66
80
  /**
67
81
  * @throws When dimensions, chunk size, or other options are invalid.
68
82
  */
83
+ // eslint-disable-next-line complexity -- straight-line option validation + defaulting
69
84
  constructor(options) {
70
85
  validateNonNegativeInteger(options.id, 'layer.id');
71
86
  if (!options.name || typeof options.name !== 'string') {
@@ -91,6 +106,11 @@ class TileLayer {
91
106
  if (!Number.isFinite(offsetX) || !Number.isFinite(offsetY)) {
92
107
  throw new Error('TileLayer offset must be finite numbers.');
93
108
  }
109
+ const parallaxX = options.parallaxX ?? 1;
110
+ const parallaxY = options.parallaxY ?? 1;
111
+ if (!Number.isFinite(parallaxX) || !Number.isFinite(parallaxY)) {
112
+ throw new Error('TileLayer parallax must be finite numbers.');
113
+ }
94
114
  this.id = options.id;
95
115
  this.name = options.name;
96
116
  this.width = options.width;
@@ -104,6 +124,10 @@ class TileLayer {
104
124
  this.opacity = opacity;
105
125
  this.offsetX = offsetX;
106
126
  this.offsetY = offsetY;
127
+ this.parallaxX = parallaxX;
128
+ this.parallaxY = parallaxY;
129
+ this.class = options.class ?? '';
130
+ this.tintColor = options.tintColor ?? null;
107
131
  this.properties = options.properties
108
132
  ? Object.freeze({ ...options.properties })
109
133
  : Object.freeze({});
@@ -1 +1 @@
1
- {"version":3,"file":"TileLayer.js","sources":["../../../src/TileLayer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileLayer.js","sources":["../../../src/TileLayer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Rectangle } from '@codexo/exojs';
2
2
  import { Container } from '@codexo/exojs';
3
- import type { PixelSnapMode, RenderPlanBuilder } from '@codexo/exojs/rendering';
3
+ import type { PixelSnapMode, RenderPlanBuilder } from '@codexo/exojs/renderer-sdk';
4
4
  import { TileChunkNode } from './TileChunkNode';
5
5
  import type { TileLayer } from './TileLayer';
6
6
  /**
@@ -41,7 +41,10 @@ export declare class TileLayerNode extends Container {
41
41
  private readonly _cullChunks;
42
42
  private readonly _chunkNodes;
43
43
  private _syncedOpacity;
44
+ private _syncedTint;
44
45
  private _pixelSnapMode;
46
+ private readonly _baseOffsetX;
47
+ private readonly _baseOffsetY;
45
48
  constructor(layer: TileLayer, options?: TileLayerNodeOptions);
46
49
  /** The runtime layer this node renders. */
47
50
  get layer(): TileLayer;
@@ -76,6 +79,10 @@ export declare class TileLayerNode extends Container {
76
79
  protected _collectContent(builder: RenderPlanBuilder): void;
77
80
  destroy(): void;
78
81
  private _buildChunkNodes;
79
- /** Propagate the layer's live opacity onto the chunk tints if it changed. */
80
- private _syncOpacity;
82
+ /**
83
+ * Propagate the layer's live opacity and tint colour onto the chunk render
84
+ * tints if either changed. Opacity drives the tint alpha; `tintColor`
85
+ * (`0xRRGGBB`) multiplies the RGB (white = no tint).
86
+ */
87
+ private _syncTint;
81
88
  }
@@ -27,11 +27,16 @@ class TileLayerNode extends Container {
27
27
  _cullChunks;
28
28
  _chunkNodes = [];
29
29
  _syncedOpacity = -1;
30
+ _syncedTint = undefined;
30
31
  _pixelSnapMode = 'none';
32
+ _baseOffsetX;
33
+ _baseOffsetY;
31
34
  constructor(layer, options) {
32
35
  super();
33
36
  this._layer = layer;
34
37
  this._cullChunks = options?.cullable ?? true;
38
+ this._baseOffsetX = layer.offsetX;
39
+ this._baseOffsetY = layer.offsetY;
35
40
  this.setPosition(layer.offsetX, layer.offsetY);
36
41
  this._buildChunkNodes();
37
42
  }
@@ -81,6 +86,7 @@ class TileLayerNode extends Container {
81
86
  child.destroy();
82
87
  }
83
88
  this._syncedOpacity = -1;
89
+ this._syncedTint = undefined;
84
90
  this._buildChunkNodes();
85
91
  return this;
86
92
  }
@@ -98,8 +104,21 @@ class TileLayerNode extends Container {
98
104
  if (!this._layer.visible) {
99
105
  return;
100
106
  }
101
- this._syncOpacity();
102
- super._collectContent(builder);
107
+ this._syncTint();
108
+ const layer = this._layer;
109
+ if (layer.parallaxX !== 1 || layer.parallaxY !== 1) {
110
+ const camCenter = builder.view.center;
111
+ const prevX = this.x;
112
+ const prevY = this.y;
113
+ this.x = this._baseOffsetX + camCenter.x * (1 - layer.parallaxX);
114
+ this.y = this._baseOffsetY + camCenter.y * (1 - layer.parallaxY);
115
+ super._collectContent(builder);
116
+ this.x = prevX;
117
+ this.y = prevY;
118
+ }
119
+ else {
120
+ super._collectContent(builder);
121
+ }
103
122
  }
104
123
  destroy() {
105
124
  const children = [...this._chunkNodes];
@@ -123,18 +142,27 @@ class TileLayerNode extends Container {
123
142
  this._chunkNodes.push(node);
124
143
  this.addChild(node);
125
144
  }
126
- this._syncOpacity();
145
+ this._syncTint();
127
146
  }
128
- /** Propagate the layer's live opacity onto the chunk tints if it changed. */
129
- _syncOpacity() {
147
+ /**
148
+ * Propagate the layer's live opacity and tint colour onto the chunk render
149
+ * tints if either changed. Opacity drives the tint alpha; `tintColor`
150
+ * (`0xRRGGBB`) multiplies the RGB (white = no tint).
151
+ */
152
+ _syncTint() {
130
153
  const opacity = this._layer.opacity;
131
- if (opacity === this._syncedOpacity) {
154
+ const tintColor = this._layer.tintColor;
155
+ if (opacity === this._syncedOpacity && tintColor === this._syncedTint) {
132
156
  return;
133
157
  }
158
+ const r = tintColor === null ? 255 : (tintColor >> 16) & 0xff;
159
+ const g = tintColor === null ? 255 : (tintColor >> 8) & 0xff;
160
+ const b = tintColor === null ? 255 : tintColor & 0xff;
134
161
  for (const child of this._chunkNodes) {
135
- child.tint.a = opacity;
162
+ child.tint.set(r, g, b, opacity);
136
163
  }
137
164
  this._syncedOpacity = opacity;
165
+ this._syncedTint = tintColor;
138
166
  }
139
167
  }
140
168
 
@@ -1 +1 @@
1
- {"version":3,"file":"TileLayerNode.js","sources":["../../../src/TileLayerNode.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAsBA;;;;;;;;;;;;;;;;;;;AAmBG;AACG,MAAO,aAAc,SAAQ,SAAS,CAAA;AACzB,IAAA,MAAM;AACN,IAAA,WAAW;IACX,WAAW,GAAoB,EAAE;IAC1C,cAAc,GAAG,EAAE;IACnB,cAAc,GAAkB,MAAM;IAE9C,WAAA,CAAmB,KAAgB,EAAE,OAA8B,EAAA;AACjE,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI;QAE5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,gBAAgB,EAAE;IACzB;;AAGA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;;;;;;;;;;;;AAeG;AACH,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc;IAC5B;IAEA,IAAW,aAAa,CAAC,IAAmB,EAAA;AAC1C,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE;YAChC;QACF;QAEA,mBAAmB,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAE1B,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,KAAK,CAAC,aAAa,GAAG,IAAI;QAC5B;IACF;AAEA;;;;AAIG;IACI,OAAO,GAAA;QACZ,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAEtC,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;AAE3B,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC5B,KAAK,CAAC,OAAO,EAAE;QACjB;AAEA,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;QACxB,IAAI,CAAC,gBAAgB,EAAE;AAEvB,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;IAEgB,cAAc,GAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAErC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AAEjE,QAAA,OAAO,MAAM;IACf;;AAGmB,IAAA,eAAe,CAAC,OAA0B,EAAA;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACxB;QACF;QAEA,IAAI,CAAC,YAAY,EAAE;AAEnB,QAAA,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;IAChC;IAEgB,OAAO,GAAA;QACrB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;AAEtC,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAE3B,KAAK,CAAC,OAAO,EAAE;AAEf,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC5B,KAAK,CAAC,OAAO,EAAE;QACjB;IACF;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM;QAEzB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE;AACxC,YAAA,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf;YACF;YAEA,MAAM,IAAI,GAAG,IAAI,aAAa,CAC5B,KAAK,EACL,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,WAAW,CAClB;AAED,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW;AAEhC,YAAA,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;AAClC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc;YAC1C;AAEA,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB;QAEA,IAAI,CAAC,YAAY,EAAE;IACrB;;IAGQ,YAAY,GAAA;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;AAEnC,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,cAAc,EAAE;YACnC;QACF;AAEA,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO;QACxB;AAEA,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO;IAC/B;AACD;;;;"}
1
+ {"version":3,"file":"TileLayerNode.js","sources":["../../../src/TileLayerNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type ImageLayer } from './ImageLayer';
2
+ import type { ObjectLayer, ObjectSchema } from './ObjectLayer';
1
3
  import { type TileLayer } from './TileLayer';
2
4
  import type { TileMapViewOptions } from './TileMapView';
3
5
  import { TileMapView } from './TileMapView';
@@ -22,10 +24,24 @@ export interface TileMapOptions {
22
24
  readonly tilesets?: readonly TileSet[];
23
25
  /** Layers (constructed externally and owned by the map after construction). */
24
26
  readonly layers?: readonly TileLayer[];
27
+ /** Object layers (data-only; spawn points, triggers, collision regions). */
28
+ readonly objectLayers?: readonly ObjectLayer[];
29
+ /** Image layers (data-only; background/foreground images from Tiled image layers). */
30
+ readonly imageLayers?: readonly ImageLayer[];
25
31
  /** Chunk width for layers (default 32). */
26
32
  readonly chunkWidth?: number;
27
33
  /** Chunk height for layers (default 32). */
28
34
  readonly chunkHeight?: number;
35
+ /** Map class/type string (Tiled `class`). Defaults to `''`. */
36
+ readonly class?: string;
37
+ /**
38
+ * Map background colour as a `0xRRGGBB` integer, or `null` (Tiled
39
+ * `backgroundcolor`). Informational — the renderer does not auto-clear to it.
40
+ * Default `null`.
41
+ */
42
+ readonly backgroundColor?: number | null;
43
+ /** Tile draw order (Tiled `renderorder`), informational. Default `'right-down'`. */
44
+ readonly renderOrder?: string;
29
45
  /** Map-level properties (copied and frozen). */
30
46
  readonly properties?: TileProperties;
31
47
  }
@@ -36,7 +52,8 @@ export interface TileMapOptions {
36
52
  * Tile data is stored in compact chunked arrays — no per-tile heap objects.
37
53
  *
38
54
  * The map does NOT own tileset textures (those are Loader-owned) and does
39
- * NOT own SceneNode children (the future TileMapNode will own those).
55
+ * NOT own SceneNode children see {@link import('./TileMapNode').TileMapNode},
56
+ * which owns those.
40
57
  *
41
58
  * Multiple tilesets are supported: each cell stores a packed tileset index
42
59
  * and local tile ID, so different tilesets may have different tile dimensions.
@@ -62,11 +79,19 @@ export declare class TileMap {
62
79
  readonly chunkWidth: number;
63
80
  /** Default chunk height for layers. */
64
81
  readonly chunkHeight: number;
82
+ /** Map class/type string (Tiled `class`; may be empty). */
83
+ readonly class: string;
84
+ /** Map background colour as `0xRRGGBB`, or `null`. Informational. */
85
+ readonly backgroundColor: number | null;
86
+ /** Tile draw order (Tiled `renderorder`). Informational. */
87
+ readonly renderOrder: string;
65
88
  /** Map-level properties (immutable). */
66
89
  readonly properties: TileProperties;
67
90
  private readonly _tilesets;
68
91
  private readonly _layers;
69
92
  private readonly _layerById;
93
+ private readonly _objectLayers;
94
+ private readonly _imageLayers;
70
95
  private _revision;
71
96
  private _destroyed;
72
97
  /**
@@ -109,6 +134,51 @@ export declare class TileMap {
109
134
  * @returns true if the layer was found and removed.
110
135
  */
111
136
  removeLayer(id: number): boolean;
137
+ /** Immutable snapshot of object layers (insertion order). */
138
+ get objectLayers(): readonly ObjectLayer[];
139
+ /**
140
+ * Add an object layer after construction.
141
+ * @throws If the map is destroyed.
142
+ */
143
+ addObjectLayer(layer: ObjectLayer): void;
144
+ /**
145
+ * Get an object layer by name (first match in insertion order), or undefined.
146
+ *
147
+ * Supply an {@link ObjectSchema} type argument `S` to obtain a typed view of
148
+ * the layer — `getObjectLayer<LevelObjects>('Entities')` returns an
149
+ * `ObjectLayer<LevelObjects>` whose {@link ObjectLayer.byType} / {@link
150
+ * ObjectLayer.where} accessors narrow `properties`. The schema is a static
151
+ * developer promise only; no runtime validation is performed and the call
152
+ * remains fully back-compatible when omitted.
153
+ */
154
+ getObjectLayer<S extends ObjectSchema = ObjectSchema>(name: string): ObjectLayer<S> | undefined;
155
+ /**
156
+ * Get an object layer by ID.
157
+ *
158
+ * Supply an {@link ObjectSchema} type argument `S` to obtain a typed view of
159
+ * the layer, as with {@link getObjectLayer}.
160
+ */
161
+ getObjectLayerById<S extends ObjectSchema = ObjectSchema>(id: number): ObjectLayer<S> | undefined;
162
+ /**
163
+ * Remove an object layer by ID.
164
+ * @returns true if the layer was found and removed.
165
+ */
166
+ removeObjectLayer(id: number): boolean;
167
+ /** Immutable snapshot of image layers (insertion order). */
168
+ get imageLayers(): readonly ImageLayer[];
169
+ /**
170
+ * Get an image layer by name (first match in insertion order), or undefined.
171
+ */
172
+ getImageLayer(name: string): ImageLayer | undefined;
173
+ /**
174
+ * Get an image layer by ID.
175
+ */
176
+ getImageLayerById(id: number): ImageLayer | undefined;
177
+ /**
178
+ * Remove an image layer by ID.
179
+ * @returns true if the layer was found and removed.
180
+ */
181
+ removeImageLayer(id: number): boolean;
112
182
  /**
113
183
  * Create a new {@link TileMapView} that groups this map's layers into
114
184
  * independently placeable band / layer scene nodes for interleaving