ts-tiled-converter
Version:
Typescript library to convert tiled map to Studio map
44 lines • 2.62 kB
JavaScript
;
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