@codexo/exojs-tilemap 0.15.3 → 0.16.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 (151) hide show
  1. package/README.md +33 -26
  2. package/dist/esm/ChunkSource.d.ts +33 -0
  3. package/dist/esm/ChunkSource.d.ts.map +1 -0
  4. package/dist/esm/ChunkStreamer.d.ts +98 -0
  5. package/dist/esm/ChunkStreamer.d.ts.map +1 -0
  6. package/dist/esm/ChunkStreamer.js +201 -0
  7. package/dist/esm/ChunkStreamer.js.map +1 -0
  8. package/dist/esm/ImageLayer.d.ts +11 -3
  9. package/dist/esm/ImageLayer.d.ts.map +1 -0
  10. package/dist/esm/ImageLayer.js +71 -64
  11. package/dist/esm/ImageLayer.js.map +1 -1
  12. package/dist/esm/ImageLayerNode.d.ts +89 -0
  13. package/dist/esm/ImageLayerNode.d.ts.map +1 -0
  14. package/dist/esm/ImageLayerNode.js +205 -0
  15. package/dist/esm/ImageLayerNode.js.map +1 -0
  16. package/dist/esm/MapObject.d.ts +70 -0
  17. package/dist/esm/MapObject.d.ts.map +1 -0
  18. package/dist/esm/MapObject.js +34 -0
  19. package/dist/esm/MapObject.js.map +1 -0
  20. package/dist/esm/MapObjectSpawner.d.ts +133 -0
  21. package/dist/esm/MapObjectSpawner.d.ts.map +1 -0
  22. package/dist/esm/MapObjectSpawner.js +147 -0
  23. package/dist/esm/MapObjectSpawner.js.map +1 -0
  24. package/dist/esm/MapSpawnSession.d.ts +53 -0
  25. package/dist/esm/MapSpawnSession.d.ts.map +1 -0
  26. package/dist/esm/MapSpawnSession.js +88 -0
  27. package/dist/esm/MapSpawnSession.js.map +1 -0
  28. package/dist/esm/MapWorld.d.ts +134 -0
  29. package/dist/esm/MapWorld.d.ts.map +1 -0
  30. package/dist/esm/MapWorld.js +150 -0
  31. package/dist/esm/MapWorld.js.map +1 -0
  32. package/dist/esm/MapWorldRuntime.d.ts +182 -0
  33. package/dist/esm/MapWorldRuntime.d.ts.map +1 -0
  34. package/dist/esm/MapWorldRuntime.js +261 -0
  35. package/dist/esm/MapWorldRuntime.js.map +1 -0
  36. package/dist/esm/ObjectLayer.d.ts +93 -7
  37. package/dist/esm/ObjectLayer.d.ts.map +1 -0
  38. package/dist/esm/ObjectLayer.js +184 -167
  39. package/dist/esm/ObjectLayer.js.map +1 -1
  40. package/dist/esm/SampledChunkSource.d.ts +43 -0
  41. package/dist/esm/SampledChunkSource.d.ts.map +1 -0
  42. package/dist/esm/SampledChunkSource.js +48 -0
  43. package/dist/esm/SampledChunkSource.js.map +1 -0
  44. package/dist/esm/TileAnimator.d.ts +12 -2
  45. package/dist/esm/TileAnimator.d.ts.map +1 -0
  46. package/dist/esm/TileAnimator.js +154 -165
  47. package/dist/esm/TileAnimator.js.map +1 -1
  48. package/dist/esm/TileChunk.d.ts +30 -5
  49. package/dist/esm/TileChunk.d.ts.map +1 -0
  50. package/dist/esm/TileChunk.js +190 -188
  51. package/dist/esm/TileChunk.js.map +1 -1
  52. package/dist/esm/TileChunkNode.d.ts +18 -3
  53. package/dist/esm/TileChunkNode.d.ts.map +1 -0
  54. package/dist/esm/TileChunkNode.js +104 -85
  55. package/dist/esm/TileChunkNode.js.map +1 -1
  56. package/dist/esm/TileLayer.d.ts +104 -24
  57. package/dist/esm/TileLayer.d.ts.map +1 -0
  58. package/dist/esm/TileLayer.js +511 -469
  59. package/dist/esm/TileLayer.js.map +1 -1
  60. package/dist/esm/TileLayerNode.d.ts +52 -11
  61. package/dist/esm/TileLayerNode.d.ts.map +1 -0
  62. package/dist/esm/TileLayerNode.js +224 -166
  63. package/dist/esm/TileLayerNode.js.map +1 -1
  64. package/dist/esm/TileMap.d.ts +96 -31
  65. package/dist/esm/TileMap.d.ts.map +1 -0
  66. package/dist/esm/TileMap.js +401 -357
  67. package/dist/esm/TileMap.js.map +1 -1
  68. package/dist/esm/TileMapBand.d.ts +42 -29
  69. package/dist/esm/TileMapBand.d.ts.map +1 -0
  70. package/dist/esm/TileMapBand.js +151 -158
  71. package/dist/esm/TileMapBand.js.map +1 -1
  72. package/dist/esm/TileMapNode.d.ts +34 -18
  73. package/dist/esm/TileMapNode.d.ts.map +1 -0
  74. package/dist/esm/TileMapNode.js +122 -109
  75. package/dist/esm/TileMapNode.js.map +1 -1
  76. package/dist/esm/TileMapView.d.ts +108 -47
  77. package/dist/esm/TileMapView.d.ts.map +1 -0
  78. package/dist/esm/TileMapView.js +385 -338
  79. package/dist/esm/TileMapView.js.map +1 -1
  80. package/dist/esm/TileSet.d.ts +15 -6
  81. package/dist/esm/TileSet.d.ts.map +1 -0
  82. package/dist/esm/TileSet.js +161 -181
  83. package/dist/esm/TileSet.js.map +1 -1
  84. package/dist/esm/WangSet.d.ts +5 -4
  85. package/dist/esm/WangSet.d.ts.map +1 -0
  86. package/dist/esm/WangSet.js +70 -78
  87. package/dist/esm/WangSet.js.map +1 -1
  88. package/dist/esm/WorkerSampledChunkSource.d.ts +95 -0
  89. package/dist/esm/WorkerSampledChunkSource.d.ts.map +1 -0
  90. package/dist/esm/WorkerSampledChunkSource.js +117 -0
  91. package/dist/esm/WorkerSampledChunkSource.js.map +1 -0
  92. package/dist/esm/autoTile.d.ts +10 -5
  93. package/dist/esm/autoTile.d.ts.map +1 -0
  94. package/dist/esm/autoTile.js +164 -205
  95. package/dist/esm/autoTile.js.map +1 -1
  96. package/dist/esm/chunkGeometry.d.ts +8 -7
  97. package/dist/esm/chunkGeometry.d.ts.map +1 -0
  98. package/dist/esm/chunkGeometry.js +83 -94
  99. package/dist/esm/chunkGeometry.js.map +1 -1
  100. package/dist/esm/index.d.ts +1 -0
  101. package/dist/esm/index.d.ts.map +1 -0
  102. package/dist/esm/index.js +26 -15
  103. package/dist/esm/nodeBounds.d.ts +20 -0
  104. package/dist/esm/nodeBounds.d.ts.map +1 -0
  105. package/dist/esm/nodeBounds.js +40 -0
  106. package/dist/esm/nodeBounds.js.map +1 -0
  107. package/dist/esm/pixelSnap.d.ts +4 -3
  108. package/dist/esm/pixelSnap.d.ts.map +1 -0
  109. package/dist/esm/pixelSnap.js +18 -16
  110. package/dist/esm/pixelSnap.js.map +1 -1
  111. package/dist/esm/public.d.ts +23 -3
  112. package/dist/esm/public.d.ts.map +1 -0
  113. package/dist/esm/tileCollision.d.ts +190 -0
  114. package/dist/esm/tileCollision.d.ts.map +1 -0
  115. package/dist/esm/tileCollision.js +367 -0
  116. package/dist/esm/tileCollision.js.map +1 -0
  117. package/dist/esm/tileWord.d.ts +12 -0
  118. package/dist/esm/tileWord.d.ts.map +1 -0
  119. package/dist/esm/tileWord.js +16 -0
  120. package/dist/esm/tileWord.js.map +1 -0
  121. package/dist/esm/tilemapExtension.d.ts +4 -3
  122. package/dist/esm/tilemapExtension.d.ts.map +1 -0
  123. package/dist/esm/tilemapExtension.js +47 -47
  124. package/dist/esm/tilemapExtension.js.map +1 -1
  125. package/dist/esm/tilemapSerializers.d.ts +5 -4
  126. package/dist/esm/tilemapSerializers.d.ts.map +1 -0
  127. package/dist/esm/tilemapSerializers.js +48 -41
  128. package/dist/esm/tilemapSerializers.js.map +1 -1
  129. package/dist/esm/types.d.ts +34 -18
  130. package/dist/esm/types.d.ts.map +1 -0
  131. package/dist/esm/types.js +111 -120
  132. package/dist/esm/types.js.map +1 -1
  133. package/dist/esm/webgl2/WebGl2TileChunkRenderer.d.ts +50 -2
  134. package/dist/esm/webgl2/WebGl2TileChunkRenderer.d.ts.map +1 -0
  135. package/dist/esm/webgl2/WebGl2TileChunkRenderer.js +366 -332
  136. package/dist/esm/webgl2/WebGl2TileChunkRenderer.js.map +1 -1
  137. package/dist/esm/webgl2/shaders/tile-chunk.frag.js +6 -0
  138. package/dist/esm/webgl2/shaders/tile-chunk.frag.js.map +1 -0
  139. package/dist/esm/webgl2/shaders/tile-chunk.vert.js +6 -0
  140. package/dist/esm/webgl2/shaders/tile-chunk.vert.js.map +1 -0
  141. package/dist/esm/webgpu/WebGpuTileChunkRenderer.d.ts +70 -4
  142. package/dist/esm/webgpu/WebGpuTileChunkRenderer.d.ts.map +1 -0
  143. package/dist/esm/webgpu/WebGpuTileChunkRenderer.js +496 -383
  144. package/dist/esm/webgpu/WebGpuTileChunkRenderer.js.map +1 -1
  145. package/dist/esm/webgpu/shaders/tile-chunk.wgsl.js +6 -0
  146. package/dist/esm/webgpu/shaders/tile-chunk.wgsl.js.map +1 -0
  147. package/package.json +8 -15
  148. package/dist/esm/index.js.map +0 -1
  149. package/dist/esm/register.d.ts +0 -1
  150. package/dist/esm/register.js +0 -25
  151. package/dist/esm/register.js.map +0 -1
@@ -12,10 +12,14 @@ import type { ResolvedTile, TileProperties } from './types';
12
12
  export interface TileMapOptions {
13
13
  /** Map name (for debugging). */
14
14
  readonly name?: string;
15
- /** Map width in tiles. */
16
- readonly width: number;
17
- /** Map height in tiles. */
18
- readonly height: number;
15
+ /**
16
+ * Map width in tiles. Omit together with {@link height} for an unbounded
17
+ * map - layers you add are then free to be unbounded too (this option
18
+ * does not constrain per-layer dimensions either way).
19
+ */
20
+ readonly width?: number;
21
+ /** Map height in tiles. Must be provided iff {@link width} is. */
22
+ readonly height?: number;
19
23
  /** Width of each tile in pixels. */
20
24
  readonly tileWidth: number;
21
25
  /** Height of each tile in pixels. */
@@ -36,7 +40,7 @@ export interface TileMapOptions {
36
40
  readonly class?: string;
37
41
  /**
38
42
  * Map background colour as a `0xRRGGBB` integer, or `null` (Tiled
39
- * `backgroundcolor`). Informational the renderer does not auto-clear to it.
43
+ * `backgroundcolor`). Informational - the renderer does not auto-clear to it.
40
44
  * Default `null`.
41
45
  */
42
46
  readonly backgroundColor?: number | null;
@@ -44,15 +48,42 @@ export interface TileMapOptions {
44
48
  readonly renderOrder?: string;
45
49
  /** Map-level properties (copied and frozen). */
46
50
  readonly properties?: TileProperties;
51
+ /**
52
+ * Combined document order across tile and image layers, as an ordered list
53
+ * of layer ids - exposed via {@link TileMap.renderableLayers}. Every tile
54
+ * and image layer passed to this map (via {@link layers} / {@link
55
+ * imageLayers}) must appear exactly once; an id that belongs to neither
56
+ * kind, or is listed more than once, throws. The list's length must also
57
+ * equal the total number of tile/image layer instances - nothing enforces
58
+ * unique ids across image layers, so two image layers sharing an id would
59
+ * otherwise both satisfy the id-based checks while one silently drops out
60
+ * of {@link TileMap.renderableLayers}; that mismatch throws too.
61
+ *
62
+ * A tile layer and an image layer sharing the same id makes the order
63
+ * ambiguous - that combination throws when `documentOrder` is provided.
64
+ * It is NOT rejected when this option is omitted: the fallback order below
65
+ * is unambiguous by construction (tile layers are always listed before
66
+ * image layers), so hand-built maps that predate this option are
67
+ * unaffected even if such an id collision exists.
68
+ *
69
+ * Omit to fall back to all tile layers in insertion order, followed by all
70
+ * image layers in insertion order - the map's implicit ordering before
71
+ * this option existed.
72
+ *
73
+ * Named `documentOrder` rather than `renderOrder` to avoid colliding with
74
+ * the unrelated {@link renderOrder} option above (Tiled's tile-draw-
75
+ * direction string, e.g. `'right-down'`).
76
+ */
77
+ readonly documentOrder?: readonly number[];
47
78
  }
48
79
  /**
49
80
  * A generic, format-independent tile map.
50
81
  *
51
82
  * Owns a finite grid of {@link TileLayer}s and a shared set of {@link TileSet}s.
52
- * Tile data is stored in compact chunked arrays no per-tile heap objects.
83
+ * Tile data is stored in compact chunked arrays - no per-tile heap objects.
53
84
  *
54
85
  * The map does NOT own tileset textures (those are Loader-owned) and does
55
- * NOT own SceneNode children see {@link import('./TileMapNode').TileMapNode},
86
+ * NOT own SceneNode children - see {@link import('./TileMapNode').TileMapNode},
56
87
  * which owns those.
57
88
  *
58
89
  * Multiple tilesets are supported: each cell stores a packed tileset index
@@ -63,18 +94,20 @@ export interface TileMapOptions {
63
94
  export declare class TileMap {
64
95
  /** Map name (debug). */
65
96
  readonly name: string;
66
- /** Map width in tiles. */
67
- readonly width: number;
68
- /** Map height in tiles. */
69
- readonly height: number;
97
+ /** Map width in tiles, or `undefined` if unbounded. */
98
+ readonly width: number | undefined;
99
+ /** Map height in tiles, or `undefined` if unbounded. */
100
+ readonly height: number | undefined;
70
101
  /** Tile width in pixels. */
71
102
  readonly tileWidth: number;
72
103
  /** Tile height in pixels. */
73
104
  readonly tileHeight: number;
74
- /** Pixel width. */
75
- get pixelWidth(): number;
76
- /** Pixel height. */
77
- get pixelHeight(): number;
105
+ /** Pixel width, or `undefined` if unbounded. */
106
+ get pixelWidth(): number | undefined;
107
+ /** Pixel height, or `undefined` if unbounded. */
108
+ get pixelHeight(): number | undefined;
109
+ /** `true` if this map has a fixed width/height; `false` if unbounded. */
110
+ get bounded(): boolean;
78
111
  /** Default chunk width for layers. */
79
112
  readonly chunkWidth: number;
80
113
  /** Default chunk height for layers. */
@@ -92,12 +125,24 @@ export declare class TileMap {
92
125
  private readonly _layerById;
93
126
  private readonly _objectLayers;
94
127
  private readonly _imageLayers;
128
+ private readonly _documentOrder;
95
129
  private _revision;
96
130
  private _destroyed;
97
131
  /**
98
132
  * @throws When dimensions or other options are invalid.
99
133
  */
100
134
  constructor(options: TileMapOptions);
135
+ /**
136
+ * Validate an explicit `documentOrder` option against current tile/image
137
+ * layer membership and resolve it to layer instances, or compute the
138
+ * fallback order (tile layers in insertion order, then image layers) when
139
+ * omitted. The order stores instance references - not ids - so a
140
+ * cross-kind id collision in a fallback map can never resolve to the
141
+ * wrong layer.
142
+ * @throws Per the validation rules documented on {@link
143
+ * TileMapOptions.documentOrder}.
144
+ */
145
+ private _buildDocumentOrder;
101
146
  /** Immutable list of tilesets available to this map. */
102
147
  get tilesets(): readonly TileSet[];
103
148
  /**
@@ -113,24 +158,22 @@ export declare class TileMap {
113
158
  get layers(): readonly TileLayer[];
114
159
  private _addLayer;
115
160
  /**
116
- * Add a layer after construction.
161
+ * Add a layer after construction. Appended to the end of {@link
162
+ * renderableLayers}'s document order.
117
163
  * @throws If a layer with the same ID already exists.
118
164
  */
119
165
  addLayer(layer: TileLayer): void;
120
166
  /**
121
- * Get a layer by ID.
122
- */
123
- getLayerById(id: number): TileLayer | undefined;
124
- /**
125
- * Get a layer by name. Returns the first match in insertion order.
167
+ * Get a tile layer by ID.
126
168
  */
127
- getLayerByName(name: string): TileLayer | undefined;
169
+ getTileLayerById(id: number): TileLayer | undefined;
128
170
  /**
129
- * Get a tile layer by name. Convenience alias for {@link getLayerByName}.
171
+ * Get a tile layer by name. Returns the first match in insertion order.
130
172
  */
131
173
  getTileLayer(name: string): TileLayer | undefined;
132
174
  /**
133
- * Remove a layer by ID. The layer is destroyed.
175
+ * Remove a layer by ID. The layer is destroyed and spliced out of {@link
176
+ * renderableLayers}'s document order.
134
177
  * @returns true if the layer was found and removed.
135
178
  */
136
179
  removeLayer(id: number): boolean;
@@ -145,7 +188,7 @@ export declare class TileMap {
145
188
  * Get an object layer by name (first match in insertion order), or undefined.
146
189
  *
147
190
  * Supply an {@link ObjectSchema} type argument `S` to obtain a typed view of
148
- * the layer `getObjectLayer<LevelObjects>('Entities')` returns an
191
+ * the layer - `getObjectLayer<LevelObjects>('Entities')` returns an
149
192
  * `ObjectLayer<LevelObjects>` whose {@link ObjectLayer.byType} / {@link
150
193
  * ObjectLayer.where} accessors narrow `properties`. The schema is a static
151
194
  * developer promise only; no runtime validation is performed and the call
@@ -166,6 +209,16 @@ export declare class TileMap {
166
209
  removeObjectLayer(id: number): boolean;
167
210
  /** Immutable snapshot of image layers (insertion order). */
168
211
  get imageLayers(): readonly ImageLayer[];
212
+ /**
213
+ * Add an image layer after construction. Appended to both {@link
214
+ * imageLayers} and the end of {@link renderableLayers}'s document order.
215
+ * @throws If an image layer with the same ID already exists. An ID shared
216
+ * with a *tile* layer is permitted - the two kinds keep separate ID
217
+ * spaces, and all internal bookkeeping is instance-based.
218
+ */
219
+ addImageLayer(layer: ImageLayer): void;
220
+ /** Shared by the constructor and {@link addImageLayer}: enforce ID uniqueness within the image-layer kind. */
221
+ private _addImageLayer;
169
222
  /**
170
223
  * Get an image layer by name (first match in insertion order), or undefined.
171
224
  */
@@ -175,19 +228,30 @@ export declare class TileMap {
175
228
  */
176
229
  getImageLayerById(id: number): ImageLayer | undefined;
177
230
  /**
178
- * Remove an image layer by ID.
231
+ * Remove an image layer by ID. Spliced out of {@link renderableLayers}'s
232
+ * document order.
179
233
  * @returns true if the layer was found and removed.
180
234
  */
181
235
  removeImageLayer(id: number): boolean;
236
+ /**
237
+ * Tile and image layers combined into a single document order (see {@link
238
+ * TileMapOptions.documentOrder}), maintained live as membership changes.
239
+ * Reflects `addLayer` / `addImageLayer` / `removeLayer` /
240
+ * `removeImageLayer` calls made after construction. Holds instance
241
+ * references, so entries stay correct even when a tile layer and an image
242
+ * layer share an id in a fallback-ordered map. Object layers are
243
+ * data-only and never appear here.
244
+ */
245
+ get renderableLayers(): ReadonlyArray<TileLayer | ImageLayer>;
182
246
  /**
183
247
  * Create a new {@link TileMapView} that groups this map's layers into
184
248
  * independently placeable band / layer scene nodes for interleaving
185
249
  * application actors between tile layers.
186
250
  *
187
- * Each call returns a fresh, independent view the map does **not** cache a
251
+ * Each call returns a fresh, independent view - the map does **not** cache a
188
252
  * single global view, so multiple coexisting views of the same map are
189
253
  * allowed. The view references this map but never owns it: destroying the
190
- * view frees only its generated layer/band nodes never the map, its layers,
254
+ * view frees only its generated layer/band nodes - never the map, its layers,
191
255
  * tileset textures, or any application actors.
192
256
  *
193
257
  * @advanced
@@ -195,20 +259,20 @@ export declare class TileMap {
195
259
  createView(options?: TileMapViewOptions): TileMapView;
196
260
  /**
197
261
  * Get a resolved tile from a given layer at tile coordinates.
198
- * Convenience for `map.getLayerById(id)?.getTileAt(tx, ty)`.
262
+ * Convenience for `map.getTileLayerById(id)?.getTileAt(tx, ty)`.
199
263
  * Returns null for an empty cell, out-of-bounds, or missing layer.
200
264
  */
201
265
  getTileAt(layerId: number, tx: number, ty: number): ResolvedTile | null;
202
266
  /**
203
267
  * Set a tile on a given layer at tile coordinates.
204
- * Convenience for `map.getLayerById(id)?.setTileAt(tx, ty, tile)`.
268
+ * Convenience for `map.getTileLayerById(id)?.setTileAt(tx, ty, tile)`.
205
269
  * @throws If the layer does not exist, coordinates are out of bounds,
206
270
  * or the tile reference is invalid.
207
271
  */
208
272
  setTileAt(layerId: number, tx: number, ty: number, tile: ResolvedTile): void;
209
273
  /**
210
274
  * Clear a tile on a given layer at tile coordinates.
211
- * Convenience for `map.getLayerById(id)?.clearTileAt(tx, ty)`.
275
+ * Convenience for `map.getTileLayerById(id)?.clearTileAt(tx, ty)`.
212
276
  * @throws If the layer does not exist or coordinates are out of bounds.
213
277
  */
214
278
  clearTileAt(layerId: number, tx: number, ty: number): void;
@@ -246,3 +310,4 @@ export declare class TileMap {
246
310
  */
247
311
  destroy(): void;
248
312
  }
313
+ //# sourceMappingURL=TileMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileMap.d.ts","sourceRoot":"","sources":["../../src/TileMap.ts"],"names":[],"mappings":"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"}