import "jasmine"; import {Room} from "../../../src/Connexion/Room"; import {flattenGroupLayersMap} from "../../../src/Phaser/Map/LayersFlattener"; import type {ITiledMapLayer} from "../../../src/Phaser/Map/ITiledMap"; describe("Layers flattener", () => { it("should iterate maps with no group", () => { let flatLayers:ITiledMapLayer[] = []; flatLayers = flattenGroupLayersMap({ "compressionlevel": -1, "height": 2, "infinite": false, "layers": [ { "data": [0, 0, 0, 0], "height": 2, "id": 1, "name": "Tile Layer 1", "opacity": 1, "type": "tilelayer", "visible": true, "width": 2, "x": 0, "y": 0 }, { "data": [0, 0, 0, 0], "height": 2, "id": 1, "name": "Tile Layer 2", "opacity": 1, "type": "tilelayer", "visible": true, "width": 2, "x": 0, "y": 0 }], "nextlayerid": 2, "nextobjectid": 1, "orientation": "orthogonal", "renderorder": "right-down", "tiledversion": "2021.03.23", "tileheight": 32, "tilesets": [], "tilewidth": 32, "type": "map", "version": 1.5, "width": 2 }) const layers = []; for (const layer of flatLayers) { layers.push(layer.name); } expect(layers).toEqual(['Tile Layer 1', 'Tile Layer 2']); }); it("should iterate maps with recursive groups", () => { let flatLayers:ITiledMapLayer[] = []; flatLayers = flattenGroupLayersMap({ "compressionlevel": -1, "height": 2, "infinite": false, "layers": [ { "id": 6, "layers": [ { "id": 5, "layers": [ { "data": [0, 0, 0, 0], "height": 2, "id": 10, "name": "Tile3", "opacity": 1, "type": "tilelayer", "visible": true, "width": 2, "x": 0, "y": 0 }, { "data": [0, 0, 0, 0], "height": 2, "id": 9, "name": "Tile2", "opacity": 1, "type": "tilelayer", "visible": true, "width": 2, "x": 0, "y": 0 }], "name": "Group 3", "opacity": 1, "type": "group", "visible": true, "x": 0, "y": 0 }, { "id": 7, "layers": [ { "data": [0, 0, 0, 0], "height": 2, "id": 8, "name": "Tile1", "opacity": 1, "type": "tilelayer", "visible": true, "width": 2, "x": 0, "y": 0 }], "name": "Group 2", "opacity": 1, "type": "group", "visible": true, "x": 0, "y": 0 }], "name": "Group 1", "opacity": 1, "type": "group", "visible": true, "x": 0, "y": 0 }], "nextlayerid": 11, "nextobjectid": 1, "orientation": "orthogonal", "renderorder": "right-down", "tiledversion": "2021.03.23", "tileheight": 32, "tilesets": [], "tilewidth": 32, "type": "map", "version": 1.5, "width": 2 }) const layers = []; for (const layer of flatLayers) { layers.push(layer.name); } expect(layers).toEqual(['Group 1/Group 3/Tile3', 'Group 1/Group 3/Tile2', 'Group 1/Group 2/Tile1']); }); });