53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
export default class Tilorswift
|
|
{
|
|
static getTerrainAsJson(terrain)
|
|
{
|
|
let matrix = [];
|
|
|
|
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.image.src,
|
|
tiles: terrain.tileset.tiles,
|
|
scale: terrain.tileset.scale,
|
|
rows: terrain.tilesY,
|
|
columns: terrain.tilesX,
|
|
startX: terrain.entranceTileX,
|
|
startY: terrain.entranceTileY,
|
|
backgroundColor: terrain.backgroundColor,
|
|
matrix: matrix,
|
|
};
|
|
|
|
return JSON.stringify(data);
|
|
}
|
|
|
|
static saveTerrainToFile(terrain)
|
|
{
|
|
if (!terrain.hasEntrancePoint()) {
|
|
alert('Es muss ein Startpunkt definiert sein!');
|
|
return;
|
|
}
|
|
|
|
let filename = prompt('Dateiname', 'terrain.json');
|
|
|
|
if (filename === null) {
|
|
return;
|
|
}
|
|
|
|
let json = Tilorswift.getTerrainAsJson(terrain);
|
|
let download = document.createElement('a');
|
|
|
|
download.setAttribute('download', filename);
|
|
download.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(json));
|
|
download.click();
|
|
download.remove();
|
|
}
|
|
} |