mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-22 20:11:24 +01:00
Added Seperated json export selections
- all JSON : exports all json data. - minimal JSON : exports json data without cells data. - cells JSON : exports json data only with pack.cells data.
This commit is contained in:
parent
7b475ee0bd
commit
80a290a370
2 changed files with 172 additions and 4 deletions
|
|
@ -978,7 +978,7 @@
|
|||
<input id="mapName" data-stored="mapName" class="long" autocorrect="off" spellcheck="false" type="text">
|
||||
</td>
|
||||
<td>
|
||||
<i data-tip="Regenerate map name" onclick="Names.getMapName(true)" class="icon-arrows-cw"></i>
|
||||
<i data-tip="Regenerate map name" onclick="Names.MapName(true)" class="icon-arrows-cw"></i>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
@ -3609,7 +3609,9 @@
|
|||
<p>It's also possible to export map to <i>Foundry VTT</i>, see <a href="https://github.com/Ethck/azgaar-foundry" target="_blank">the module.</a></p>
|
||||
<div style="margin: 1em 0 .3em; font-weight: bold">Export To Json</div>
|
||||
<div>
|
||||
<button onclick="downloadMapDataAPIJson()" data-tip="Download a json file that looks like API response.">api-like json</button>
|
||||
<button onclick="downloadMapDataAPIJson()" data-tip="Downlads Full Data as a .json file. WARNING: This data can be huge. Use at your own risk. You can use other buttons for smaller and filtered files.">all json</button>
|
||||
<button onclick="downloadMapDataMinimalAPIJson()" data-tip="Download a json file that looks like API response. Includes global data and doesn't include cell data. For cell data you must use cells json button">minimal json</button>
|
||||
<button onclick="downloadCellsDataJSON()" data-tip="Download a json file that only contains cell data. And related map info.">cells json</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,10 @@
|
|||
|
||||
/**
|
||||
* Downloads created data of getMapDataAPIJson()
|
||||
* Download all data generated
|
||||
*
|
||||
* @see getMapDataAPIJson
|
||||
*/
|
||||
function downloadMapDataAPIJson() {
|
||||
if (customization) return tip("Map cannot be saved when edit mode is active, please exit the mode and retry", false, "error");
|
||||
closeDialogs("#alert");
|
||||
|
|
@ -6,7 +13,28 @@ function downloadMapDataAPIJson() {
|
|||
const blob = new Blob([mapData], {type: "application/json"});
|
||||
const URL = window.URL.createObjectURL(blob);
|
||||
const link = document.createElement("a");
|
||||
link.download = getFileName() + ".json";
|
||||
link.download = getFileName() + "All.json";
|
||||
link.href = URL;
|
||||
link.click();
|
||||
tip(`${link.download} is saved. Open "Downloads" screen (CTRL + J) to check`, true, "success", 7000);
|
||||
window.URL.revokeObjectURL(URL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Downloads created data of getMinimalMapJSONData()
|
||||
* Downloads data without cells
|
||||
*
|
||||
* @see getMinimalMapJSONData
|
||||
*/
|
||||
function downloadMapDataMinimalAPIJson() {
|
||||
if (customization) return tip("Map cannot be saved when edit mode is active, please exit the mode and retry", false, "error");
|
||||
closeDialogs("#alert");
|
||||
|
||||
const mapData = getMinimalMapJSONData();
|
||||
const blob = new Blob([mapData], {type: "application/json"});
|
||||
const URL = window.URL.createObjectURL(blob);
|
||||
const link = document.createElement("a");
|
||||
link.download = getFileName() + "MinimalDataAPI.json";
|
||||
link.href = URL;
|
||||
link.click();
|
||||
tip(`${link.download} is saved. Open "Downloads" screen (CTRL + J) to check`, true, "success", 7000);
|
||||
|
|
@ -14,7 +42,43 @@ function downloadMapDataAPIJson() {
|
|||
}
|
||||
|
||||
|
||||
//Prepare data for API-JSON
|
||||
/**
|
||||
* Downloads created data of getCellJSONData()
|
||||
*
|
||||
* @see getCellJSONData
|
||||
*/
|
||||
function downloadCellsDataJSON() {
|
||||
if (customization) return tip("Map cannot be saved when edit mode is active, please exit the mode and retry", false, "error");
|
||||
closeDialogs("#alert");
|
||||
const mapData = getCellJSONData();
|
||||
const blob = new Blob([mapData], {type: "application/json"});
|
||||
const URL = window.URL.createObjectURL(blob);
|
||||
const link = document.createElement("a");
|
||||
link.download = getFileName() + "CellsData.json";
|
||||
link.href = URL;
|
||||
link.click();
|
||||
tip(`${link.download} is saved. Open "Downloads" screen (CTRL + J) to check`, true, "success", 7000);
|
||||
window.URL.revokeObjectURL(URL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets current loaded map data as a JSON string.
|
||||
* The file contains data looks like:
|
||||
* - info
|
||||
* - settings (because population and other things are related to this)
|
||||
* - coords
|
||||
* - notes
|
||||
* - pack
|
||||
*
|
||||
* @returns {string} JSONString of loaded and constructed data object
|
||||
*/
|
||||
function getMapDataAPIJson() {
|
||||
|
||||
TIME && console.time("createMapDataJson");
|
||||
|
|
@ -97,3 +161,105 @@ function getMapDataAPIJson() {
|
|||
return JSON.stringify(ExportData);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* For exporting as JSON without pack.cells
|
||||
* This can become handy if user don't want a huge data.
|
||||
* For assigning data to cells user must download cells data with downloadCellsData().
|
||||
*
|
||||
* @returns {string} JSONString data of the created object
|
||||
*/
|
||||
function getMinimalMapJSONData(){
|
||||
|
||||
TIME && console.time("createMapDataMinimalJson");
|
||||
|
||||
const date = new Date();
|
||||
const dateString = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
|
||||
const info = {
|
||||
"version": version,
|
||||
"description": "Api-Like Output File Gathered From: azgaar.github.io/Fantasy-map-generator",
|
||||
"creation-date":dateString,
|
||||
"seed" : seed,
|
||||
"mapId":mapId,
|
||||
"mapName" : mapName.value
|
||||
}
|
||||
|
||||
const settings = {
|
||||
"distanceUnit" : distanceUnitInput.value,
|
||||
"distanceScale": distanceScaleInput.value,
|
||||
"areaUnit" : areaUnit.value,
|
||||
"heightUnit" : heightUnit.value,
|
||||
"heightExponent" : heightExponentInput.value,
|
||||
"temperatureScale" : temperatureScale.value,
|
||||
"barSize" : barSizeInput.value,
|
||||
"barLabel" : barLabel.value,
|
||||
"barBackOpacity" : barBackOpacity.value,
|
||||
"barBackColor" : barBackColor.value,
|
||||
"barPosX" : barPosX.value,
|
||||
"barPosY" : barPosY.value,
|
||||
"populationRate" : populationRate,
|
||||
"urbanization" : urbanization,
|
||||
"mapSize" : mapSizeOutput.value,
|
||||
"latitudeO" : latitudeOutput.value,
|
||||
"temperatureEquator" : temperatureEquatorOutput.value,
|
||||
"temperaturePole" : temperaturePoleOutput.value,
|
||||
"prec" : precOutput.value,
|
||||
"options" : options,
|
||||
"mapName" : mapName.value,
|
||||
"hideLabels" : hideLabels.checked,
|
||||
"stylePreset" : stylePreset.value,
|
||||
"rescaleLabels" : rescaleLabels.checked,
|
||||
"urbanDensity" : urbanDensity
|
||||
};
|
||||
const coords = mapCoordinates;
|
||||
const packs = {
|
||||
"features":pack.features,
|
||||
"cultures":pack.cultures,
|
||||
"burgs":pack.burgs,
|
||||
"states":pack.states,
|
||||
"provinces":pack.provinces,
|
||||
"religions":pack.religions,
|
||||
"rivers":pack.rivers,
|
||||
"markers":pack.markers,
|
||||
}
|
||||
const biomes = biomesData;
|
||||
|
||||
const ExportData = {info,settings,coords,packs,biomes,notes,nameBases}
|
||||
|
||||
TIME && console.timeEnd("createMapDataMinimalJson");
|
||||
return JSON.stringify(ExportData);
|
||||
}
|
||||
/**
|
||||
* Gets data that created with info and pack.cell
|
||||
* This function is created for primarly pack.cell data is too big.
|
||||
* for speeding up the proccess the main data and cell data is seperated as two files.
|
||||
*
|
||||
* exported data look like:
|
||||
* - info
|
||||
* - cells
|
||||
*
|
||||
* @see pack
|
||||
* @see getMinimalMapJSONData
|
||||
* @returns {string} The JSONString of pack.cell
|
||||
*/
|
||||
function getCellJSONData() {
|
||||
TIME && console.time("createMapDataMinimalJson");
|
||||
|
||||
const date = new Date();
|
||||
const dateString = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
|
||||
const info = {
|
||||
"version": version,
|
||||
"description": "Api-Like Output File Gathered From: azgaar.github.io/Fantasy-map-generator",
|
||||
"creation-date":dateString,
|
||||
"seed" : seed,
|
||||
"mapId":mapId,
|
||||
"mapName" : mapName.value
|
||||
}
|
||||
const cells = pack.cells
|
||||
const ExportData = {info, cells}
|
||||
|
||||
TIME && console.timeEnd("createMapDataMinimalJson");
|
||||
return JSON.stringify(ExportData);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue