MCPcopy Create free account
hub / github.com/melonjs/melonJS / readMapObjects

Method readMapObjects

packages/melonjs/src/level/tiled/TMXTileMap.js:332–391  ·  view source on GitHub ↗

* parse the map * @ignore

(data)

Source from the content-addressed store, hash-verified

330 * @ignore
331 */
332 readMapObjects(data) {
333 if (this.initialized === true) {
334 return;
335 }
336
337 // to automatically increment z index
338 let zOrder = 0;
339
340 // Tileset information
341 if (!this.tilesets) {
342 // make sure we have a TilesetGroup Object
343 this.tilesets = new TMXTilesetGroup();
344 }
345
346 // parse all tileset objects
347 if (typeof data.tilesets !== "undefined") {
348 const tilesets = data.tilesets;
349 for (let i = 0, len = tilesets.length; i < len; i++) {
350 this.tilesets.add(
351 readTileset(tilesets[i], this.tilewidth, this.tileheight),
352 );
353 }
354 }
355
356 // check if a background image is defined
357 if (this.background_image) {
358 // add a new image layer
359 this.layers.push(
360 pool.pull("ImageLayer", 0, 0, {
361 name: "background_image",
362 image: this.background_image,
363 z: zOrder++,
364 }),
365 );
366 }
367
368 const layers = data.layers;
369 for (let i = 0, len = layers.length; i < len; i++) {
370 const layer = layers[i];
371 switch (layer.type) {
372 case "imagelayer":
373 this.layers.push(readImageLayer(this, layer, zOrder++));
374 break;
375
376 case "tilelayer":
377 this.layers.push(readLayer(this, layer, zOrder++));
378 break;
379
380 case "objectgroup":
381 case "group":
382 this.objectGroups.push(readObjectGroup(this, layer, zOrder++));
383 break;
384
385 default:
386 break;
387 }
388 }
389

Callers 2

getObjectsMethod · 0.95
getLayersMethod · 0.95

Calls 7

readTilesetFunction · 0.85
readImageLayerFunction · 0.85
readLayerFunction · 0.85
readObjectGroupFunction · 0.85
pullMethod · 0.80
addMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected