43aad4ab14
Implementation of LayersFlattener Implementation of Setting properties of a layer form script Update show/hide layer form script Update unit test of LayersIteratorTest
151 lines
5.3 KiB
TypeScript
151 lines
5.3 KiB
TypeScript
import "jasmine";
|
|
import {Room} from "../../../src/Connexion/Room";
|
|
import {flattenGroupLayersMap} from "../../../src/Phaser/Map/LayersFlattener";
|
|
import {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']);
|
|
});
|
|
});
|