ts-tiled-converter
Version:
Typescript library to convert tiled map to Studio map
40 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTilesetImageAndAnimatedTiles = void 0;
var path_1 = require("path");
var readTileset_1 = require("./reader/readTileset");
var objects_1 = require("./tiledXML/objects");
var util_1 = require("./util");
var getTilesetImageAndAnimatedTiles = function (path) {
try {
var tileset = (0, util_1.throwIfError)((0, readTileset_1.readTileset)(path));
var tilesetImage = tileset.tileset.filter(function (i) { return 'image' in i; })[0];
if (!tilesetImage)
throw new Error('Tileset without image');
var tilesetAnimatedTiles = tileset.tileset.filter(function (i) { return 'tile' in i; }).filter(function (i) { return i.tile.some(function (j) { return 'animation' in j; }); });
var animatedTiles = tilesetAnimatedTiles.map(function (tile) {
var animation = tile.tile.find(function (i) { return 'animation' in i; });
return {
tileId: (0, objects_1.getXMLProperties)(tile).id,
frames: animation.animation.map(objects_1.getXMLProperties),
};
});
var tilesetDirName = (0, path_1.dirname)(path);
var _a = (0, objects_1.getXMLProperties)(tilesetImage), source = _a.source, trans = _a.trans;
return {
assetSource: {
inTileset: source,
pathIncludingMapDirname: "".concat(tilesetDirName, "/").concat(source),
transparency: trans,
},
animatedTiles: animatedTiles,
};
}
catch (error) {
if (error instanceof Error)
return error;
return new Error("Unknown error: ".concat(JSON.stringify(error)));
}
};
exports.getTilesetImageAndAnimatedTiles = getTilesetImageAndAnimatedTiles;
//# sourceMappingURL=getTilesetImageAndAnimatedTiles.js.map