mr-crocs-adventures/tilorswift/js/Tilorswift.js

62 lines
1.6 KiB
JavaScript
Raw Normal View History

export default class Tilorswift
{
static getTerrainAsJson(terrain)
{
console.log('Save da shit.');
let matrix = [];
console.log(terrain.fields.length);
for (let y = 0; y < terrain.fields.length; y++) {
let row = [];
for (let x = 0; x < terrain.fields[y].length; x++) {
row.push(terrain.fields[y][x].index);
}
matrix.push(row);
}
let data = {
tileset: terrain.tileset.setId,
rows: terrain.tilesY,
columns: terrain.tilesX,
2020-02-04 23:03:33 +01:00
startX: terrain.entranceTileX,
startY: terrain.entranceTileY,
2020-02-11 21:20:11 +01:00
targetX: terrain.targetTileX,
targetY: terrain.targetTileY,
matrix: matrix,
};
return JSON.stringify(data);
}
static saveTerrainToFile(terrain)
{
2020-02-04 23:03:33 +01:00
if (!terrain.hasEntrancePoint()) {
alert('Es muss ein Startpunkt definiert sein!');
2020-02-09 00:29:46 +01:00
return false;
2020-02-04 23:03:33 +01:00
}
2020-02-11 21:20:11 +01:00
if (!terrain.hasTargetPoint()) {
alert('Es muss ein Zielpunkt definiert sein!');
return false;
}
2020-02-04 21:42:14 +01:00
let filename = prompt('Dateiname', 'terrain.json');
if (filename === null) {
2020-02-09 00:29:46 +01:00
return false;
2020-02-04 21:42:14 +01:00
}
let json = Tilorswift.getTerrainAsJson(terrain);
let download = document.createElement('a');
2020-02-04 21:42:14 +01:00
download.setAttribute('download', filename);
download.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(json));
download.click();
download.remove();
2020-02-09 00:29:46 +01:00
return true;
}
}