UNPKG

ts-tiled-converter

Version:

Typescript library to convert tiled map to Studio map

43 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mapToTileLayersWithMetaData = void 0; var layerToTiles_1 = require("./layerToTiles"); var splitSpecialAndRegularLayers_1 = require("./splitSpecialAndRegularLayers"); var objects_1 = require("../tiledXML/objects"); var util_1 = require("../util"); var cache; var mapToTileLayersWithMetaData = function (_a) { var map = _a.map; try { cache = new Map(); return filterAndFlatten(map, 0).map(mapLayerToTileLayers); } catch (error) { return (0, util_1.toError)(error); } }; exports.mapToTileLayersWithMetaData = mapToTileLayersWithMetaData; var isVisibleLayer = function (entity) { return 'layer' in entity && ((0, objects_1.getXMLProperties)(entity).visible != 0 || (0, objects_1.getXMLProperties)(entity).name in splitSpecialAndRegularLayers_1.SPECIAL_LAYER_TILESETS); }; var isVisibleGroup = function (entity) { return 'group' in entity && ((0, objects_1.getXMLProperties)(entity).visible != 0 || (0, objects_1.getXMLProperties)(entity).name.startsWith('system')); }; var filterLayerOrGroup = function (entity) { return isVisibleLayer(entity) || isVisibleGroup(entity); }; var filterAndFlatten = function (e, groupZIndex) { return e.filter(filterLayerOrGroup).flatMap(mapGroupOrLayerToLayers(groupZIndex)); }; var flattenGroup = function (group, groupZIndex) { var name = (0, objects_1.getXMLProperties)(group).name; return filterAndFlatten(group.group, name.startsWith('z=') ? Number(name.split('=')[1]) - 1 : groupZIndex); }; var mapGroupOrLayerToLayers = function (groupZIndex) { return function (entity) { if ('group' in entity) return flattenGroup(entity, groupZIndex); var name = (0, objects_1.getXMLProperties)(entity).name; var regMatch = name.match(/([1-6])$/); return { z: regMatch ? Number(regMatch[0]) - 1 : groupZIndex, name: name, entity: entity }; }; }; var mapLayerToTileLayers = function (_a) { var z = _a.z, name = _a.name, entity = _a.entity; return ({ z: z, name: name, layer: (0, util_1.throwIfError)((0, layerToTiles_1.layerToTiles)(entity, cache)) }); }; //# sourceMappingURL=mapToTileLayersWithMetaData.js.map