UNPKG

ts-tiled-converter

Version:

Typescript library to convert tiled map to Studio map

44 lines 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertTiledMapToTileMetadata = void 0; var assertTilesetValidity_1 = require("./tiledToStudio/assertTilesetValidity"); var assertMapValidity_1 = require("./tiledToStudio/assertMapValidity"); var buildLayerWithTileCommandCollection_1 = require("./tiledToStudio/buildLayerWithTileCommandCollection"); var compressLayersTile_1 = require("./tiledToStudio/compressLayersTile"); var mapToTileLayersWithMetaData_1 = require("./tiledToStudio/mapToTileLayersWithMetaData"); var ndSpace_1 = require("./ndSpace"); var readMap_1 = require("./reader/readMap"); var splitSpecialAndRegularLayers_1 = require("./tiledToStudio/splitSpecialAndRegularLayers"); var objects_1 = require("./tiledXML/objects"); var util_1 = require("./util"); var convertTiledMapToTileMetadata = function (mapPath) { try { var mapData = (0, util_1.throwIfError)((0, readMap_1.readMap)(mapPath)); (0, util_1.throwIfError)((0, assertTilesetValidity_1.assertTilesetValidity)(mapData.map)); (0, util_1.throwIfError)((0, assertMapValidity_1.assertMapValidity)(mapData.map)); var layerWithMetadata = (0, util_1.throwIfError)((0, mapToTileLayersWithMetaData_1.mapToTileLayersWithMetaData)(mapData.map)); var length = layerWithMetadata[0].layer.length; var _a = (0, objects_1.getXMLProperties)(mapData.map), width = _a.width, height = _a.height; if (length !== width * height) throw Error('Invalid map size'); var split_1 = (0, util_1.throwIfError)((0, splitSpecialAndRegularLayers_1.splitSpecialAndRegularLayers)(mapData.map, layerWithMetadata)); var layerWithCommands_1 = (0, buildLayerWithTileCommandCollection_1.buildLayerWithTileCommandCollection)(split_1); var cache_1 = (0, ndSpace_1.initNDSpace)(0); var layerData = Array.from({ length: length }, function (_, tileIndex) { return (0, compressLayersTile_1.compressLayersTile)(tileIndex, split_1.regularLayers, layerWithCommands_1, cache_1); }); return { sha1: mapData.sha1, tileMetadata: { width: width, height: height, tilesets: mapData.map.map.filter(util_1.filterTileset).map(objects_1.getXMLProperties), tileByTileId: cache_1.itemsOrderedByIds, layerData: layerData, }, }; } catch (error) { return (0, util_1.toError)(error); } }; exports.convertTiledMapToTileMetadata = convertTiledMapToTileMetadata; //# sourceMappingURL=convertTiledMapToTileMetadata.js.map