ts-tiled-converter
Version:
Typescript library to convert tiled map to Studio map
43 lines • 2.12 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.listResources = void 0;
var fs_1 = __importDefault(require("fs"));
var objects_1 = require("./tiledXML/objects");
var decodeXML_1 = require("./tiledXML/decodeXML");
var util_1 = require("./util");
var path_1 = require("path");
var readTileset_1 = require("./reader/readTileset");
var listResources = function (path, knownTilesetFilenames) {
try {
var fileData = fs_1.default.readFileSync(path);
var map = (0, decodeXML_1.decodeXML)(fileData)[0];
var tilesetSources = map.map
.filter(util_1.filterTileset)
.filter(function (tileset) { return !knownTilesetFilenames.includes((0, path_1.basename)((0, objects_1.getXMLProperties)(tileset).source || '')); })
.map(function (tileset) { return (0, objects_1.getXMLProperties)(tileset).source; });
var mapDirName_1 = (0, path_1.dirname)(path);
var assetSources = tilesetSources.flatMap(function (src) {
var tilesetPath = "".concat(mapDirName_1, "/").concat(src);
var tileset = (0, util_1.throwIfError)((0, readTileset_1.readTileset)(tilesetPath));
var tilesetDirName = (0, path_1.dirname)(tilesetPath);
return tileset.tileset
.filter(function (i) { return 'image' in i; })
.map(function (i) { return (0, objects_1.getXMLProperties)(i).source; })
.map(function (i) { return ({
inTileset: i,
pathIncludingMapDirname: "".concat(tilesetDirName, "/").concat(i),
}); });
});
return { tilesetSources: tilesetSources, assetSources: assetSources, mapDirName: mapDirName_1 };
}
catch (error) {
if (error instanceof Error)
return error;
return new Error("Unknown error: ".concat(JSON.stringify(error)));
}
};
exports.listResources = listResources;
//# sourceMappingURL=listResources.js.map