Skip to content

Commit 31cfd99

Browse files
Rearrange arguments for DataMaps conversion.
1 parent a196a7f commit 31cfd99

2 files changed

Lines changed: 18 additions & 19 deletions

File tree

extensions/includes/format.mjs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -198,19 +198,20 @@ function convertLayer(layer, datamap, convertedLayers, usedLanguages, language)
198198
/**
199199
* Retrieves map metadata to store in DataMaps for two-way conversion.
200200
* @param {TileMap} map Tiled map being converted to DataMaps
201-
* @param {string} mapName Filename of the Tiled map
201+
* @param {string?} mapFilePath Path to the Tiled map
202202
* @returns {Metadata} Map metadata to store in DataMaps
203203
*/
204-
function getDataMapsMetadata(map, mapName) {
204+
function getDataMapsMetadata(map, mapFilePath = null) {
205205
const metadata = new MetadataImpl();
206+
const mapFileName = FileInfo.completeBaseName(FileInfo.fileName(mapFilePath || map.fileName));
206207
for (const language of getLanguageCodes()) {
207208
const localizedMapName = getStringProperty(map, 'name', language);
208209
metadata.interwiki[language] = new InterwikiDataImpl({
209-
mapName: localizedMapName || mapName,
210+
mapName: localizedMapName || mapFileName,
210211
revision: getNumberProperty(map, 'revision', language) || 0,
211212
});
212213
}
213-
metadata.fileName = mapName;
214+
metadata.fileName = mapFileName;
214215
metadata.tileHeight = map.tileHeight;
215216
metadata.tileWidth = map.tileWidth;
216217
return metadata;
@@ -219,11 +220,11 @@ function getDataMapsMetadata(map, mapName) {
219220
/**
220221
* Converts a Tiled map to DataMaps format.
221222
* @param {TileMap} map Tiled map to convert to DataMaps
222-
* @param {string} mapName Filename of the Tiled map
223223
* @param {string} language Language to use for localized properties
224+
* @param {string?} mapFilePath Path to the Tiled map
224225
* @returns {DataMap} Converted DataMap object
225226
*/
226-
export function convertTiledToDataMaps(map, mapName, language = 'en') {
227+
export function convertTiledToDataMaps(map, language = 'en', mapFilePath = null) {
227228
const /** @type {DataMap} */ datamap = {
228229
$schema: '/extensions/DataMaps/schemas/v17.3.json',
229230
backgrounds: [{
@@ -239,7 +240,7 @@ export function convertTiledToDataMaps(map, mapName, language = 'en') {
239240
map.height * map.tileHeight
240241
]
241242
},
242-
custom: getDataMapsMetadata(map, mapName),
243+
custom: getDataMapsMetadata(map, mapFilePath),
243244
disclaimer: getStringProperty(map, 'disclaimer', language),
244245
include: getListProperty(map, 'include', language),
245246
markers: {},
@@ -287,13 +288,13 @@ export function convertTiledToDataMaps(map, mapName, language = 'en') {
287288
/**
288289
* Converts a Tiled map to multiple DataMaps format for each language.
289290
* @param {TileMap} map Tiled map to convert to DataMaps
290-
* @param {string} mapName Filename of the Tiled map
291+
* @param {string?} mapFilePath Path to the Tiled map
291292
* @returns {DataMaps} Converted DataMaps object
292293
*/
293-
export function convertTiledToMultipleDataMaps(map, mapName) {
294+
export function convertTiledToMultipleDataMaps(map, mapFilePath = null) {
294295
const datamaps = /** @type {DataMaps} */ ({});
295296
for (const language of getLanguageCodes()) {
296-
datamaps[language] = convertTiledToDataMaps(map, mapName, language);
297+
datamaps[language] = convertTiledToDataMaps(map, language, mapFilePath);
297298
}
298299
return datamaps;
299300
}
@@ -314,16 +315,15 @@ export function writeMap(map, filePath) {
314315
/**
315316
* Converts a Tiled map to DataMaps format.
316317
* @param {boolean} multiple Whether to generate a single or multiple maps
317-
* @returns {(map: TileMap, filePath: string) => undefined} Function that writes the
318-
* converted map to a file
318+
* @returns {(map: TileMap, mapFilePath: string) => undefined} Function that
319+
* writes the converted map to a file
319320
*/
320321
function generateWrite(multiple) {
321-
return (map, filePath) => {
322-
const mapName = FileInfo.completeBaseName(FileInfo.fileName(filePath));
322+
return (map, mapFilePath) => {
323323
const convertedMap = multiple ?
324-
convertTiledToMultipleDataMaps(map, mapName) :
325-
convertTiledToDataMaps(map, mapName, getLastLanguage() || 'en');
326-
writeMap(convertedMap, filePath);
324+
convertTiledToMultipleDataMaps(map, mapFilePath) :
325+
convertTiledToDataMaps(map, getLastLanguage() || 'en', mapFilePath);
326+
writeMap(convertedMap, mapFilePath);
327327
};
328328
}
329329

extensions/includes/publish.mjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,7 @@ function getToken(language) {
128128
* @returns {Promise<any>} Response after publishing the map
129129
*/
130130
function publishMap(accessToken, summary, map, language) {
131-
const mapName = FileInfo.completeBaseName(FileInfo.fileName(map.fileName));
132-
const datamap = convertTiledToDataMaps(map, mapName, language);
131+
const datamap = convertTiledToDataMaps(map, language);
133132
const interwiki = datamap.custom?.interwiki?.[language];
134133
if (!interwiki) {
135134
throw new Error('Map does not appear to be translated to the language of the wiki you selected!');

0 commit comments

Comments
 (0)