Can now import Amidst for Minetest biome profiles
This commit is contained in:
parent
c8516aaca5
commit
f635b083b9
@ -179,7 +179,7 @@ h3 {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #2d8af0;
|
color: #2d8af0;
|
||||||
}
|
}
|
||||||
.exportEmphasis{
|
.importExportEmphasis{
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #00ff00;
|
color: #00ff00;
|
||||||
}
|
}
|
||||||
|
11
index.html
11
index.html
@ -197,11 +197,12 @@ A Voronoi diagram is supposed to be here but for some reason it cannot be displa
|
|||||||
<div class="configFrame" id="importContainer" style="display:none">
|
<div class="configFrame" id="importContainer" style="display:none">
|
||||||
<form id="importForm">
|
<form id="importForm">
|
||||||
<p><b>WARNING</b>: Importing will replace all the biomes!</p>
|
<p><b>WARNING</b>: Importing will replace all the biomes!</p>
|
||||||
<label for="inputImport">Put JSON text here:</label>
|
<label for="inputImport">Put text here:</label>
|
||||||
<br>
|
<br>
|
||||||
<textarea id="inputImport" rows="12" cols="80"></textarea>
|
<textarea id="inputImport" rows="12" cols="80"></textarea>
|
||||||
<br>
|
<br>
|
||||||
<button id="inputImportSubmit" type="button">Import</button>
|
<button id="inputImportJSONSubmit" type="button">Import from <span class="importExportEmphasis">JSON</span></button>
|
||||||
|
<button id="inputImportAmidstForMinetestSubmit" type="button">Import from <span class="importExportEmphasis">Amidst for Minetest</span> biome profile</button>
|
||||||
<div id="importResultOuter" hidden><br><div id="importResultMessage"></div></div>
|
<div id="importResultOuter" hidden><br><div id="importResultMessage"></div></div>
|
||||||
<hr class="thin">
|
<hr class="thin">
|
||||||
<div>Hint: Use <a href="https://codeberg.org/Wuzzy/libpov_biome_exporter" title="Luanti mod: libpov_biome_exporter">libpov_biome_exporter</a> to convert game biomes to JSON.</div>
|
<div>Hint: Use <a href="https://codeberg.org/Wuzzy/libpov_biome_exporter" title="Luanti mod: libpov_biome_exporter">libpov_biome_exporter</a> to convert game biomes to JSON.</div>
|
||||||
@ -214,9 +215,9 @@ A Voronoi diagram is supposed to be here but for some reason it cannot be displa
|
|||||||
<div class="configFrame" id="exportContainer" style="display:none">
|
<div class="configFrame" id="exportContainer" style="display:none">
|
||||||
<form id="exportForm">
|
<form id="exportForm">
|
||||||
<div>
|
<div>
|
||||||
<button id="inputExportJSON" type="button">Export as <span class="exportEmphasis">JSON</span></button>
|
<button id="inputExportJSON" type="button">Export as <span class="importExportEmphasis">JSON</span></button>
|
||||||
<button id="inputExportLua" type="button">Export as <span class="exportEmphasis">Lua</span></button>
|
<button id="inputExportLua" type="button">Export as <span class="importExportEmphasis">Lua</span></button>
|
||||||
<button id="inputExportAmidstForMinetest" type="button">Export as <span class="exportEmphasis">Amidst for Minetest</span> biome profile</button>
|
<button id="inputExportAmidstForMinetest" type="button">Export as <span class="importExportEmphasis">Amidst for Minetest</span> biome profile</button>
|
||||||
<button id="inputExportClear" type="button">Clear</button>
|
<button id="inputExportClear" type="button">Clear</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="exportSectionOuter" hidden><br><span id="exportLabel"></span>
|
<div id="exportSectionOuter" hidden><br><span id="exportLabel"></span>
|
||||||
|
35
libpov.js
35
libpov.js
@ -2402,7 +2402,7 @@ inputExportClear.onclick = function() {
|
|||||||
}
|
}
|
||||||
/* Import */
|
/* Import */
|
||||||
|
|
||||||
inputImportSubmit.onclick = function() {
|
function importJSON(jsonType) {
|
||||||
let importMessage = function(message) {
|
let importMessage = function(message) {
|
||||||
importResultOuter.hidden = false;
|
importResultOuter.hidden = false;
|
||||||
importResultMessage.innerText = message;
|
importResultMessage.innerText = message;
|
||||||
@ -2416,13 +2416,13 @@ inputImportSubmit.onclick = function() {
|
|||||||
} else if (((typeof value) === "number") && (
|
} else if (((typeof value) === "number") && (
|
||||||
key === "humidity_point" ||
|
key === "humidity_point" ||
|
||||||
key === "heat_point" ||
|
key === "heat_point" ||
|
||||||
key === "x_min" ||
|
jsonType === "libpov" && key === "x_min" ||
|
||||||
key === "x_max" ||
|
jsonType === "libpov" && key === "x_max" ||
|
||||||
key === "y_min" ||
|
key === "y_min" ||
|
||||||
key === "y_max" ||
|
key === "y_max" ||
|
||||||
key === "z_min" ||
|
jsonType === "libpov" && key === "z_min" ||
|
||||||
key === "z_max" ||
|
jsonType === "libpov" && key === "z_max" ||
|
||||||
key === "colorcode")) {
|
jsonType === "libpov" && key === "colorcode")) {
|
||||||
return value;
|
return value;
|
||||||
} else {
|
} else {
|
||||||
return value;
|
return value;
|
||||||
@ -2454,6 +2454,18 @@ inputImportSubmit.onclick = function() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let innerJSON;
|
||||||
|
if (jsonType === "libpov") {
|
||||||
|
innerJSON = parsedJSON;
|
||||||
|
} else if (jsonType === "amidst_for_minetest") {
|
||||||
|
if (parsedJSON.biomeList) {
|
||||||
|
innerJSON = parsedJSON.biomeList;
|
||||||
|
} else {
|
||||||
|
importMessage("Import of biome profile failed. No biomeList found.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Populate the temporary newPoints that MAY
|
// Populate the temporary newPoints that MAY
|
||||||
// set the biomePoints if successful
|
// set the biomePoints if successful
|
||||||
let newPoints = [];
|
let newPoints = [];
|
||||||
@ -2470,8 +2482,8 @@ inputImportSubmit.onclick = function() {
|
|||||||
{ fieldName: "z_max", type: "number", fieldDefault: MAX_Z },
|
{ fieldName: "z_max", type: "number", fieldDefault: MAX_Z },
|
||||||
{ fieldName: "color_index", type: "number", optional: true },
|
{ fieldName: "color_index", type: "number", optional: true },
|
||||||
]
|
]
|
||||||
for (let p=0; p<parsedJSON.length; p++) {
|
for (let p=0; p<innerJSON.length; p++) {
|
||||||
let parsedPoint = parsedJSON[p];
|
let parsedPoint = innerJSON[p];
|
||||||
// Type checking
|
// Type checking
|
||||||
for (let f=0; f<fieldsToCheck.length; f++) {
|
for (let f=0; f<fieldsToCheck.length; f++) {
|
||||||
let field = fieldsToCheck[f].fieldName;
|
let field = fieldsToCheck[f].fieldName;
|
||||||
@ -2530,6 +2542,13 @@ inputImportSubmit.onclick = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inputImportJSONSubmit.onclick = function() {
|
||||||
|
importJSON("libpov");
|
||||||
|
}
|
||||||
|
inputImportAmidstForMinetestSubmit.onclick = function() {
|
||||||
|
importJSON("amidst_for_minetest");
|
||||||
|
}
|
||||||
|
|
||||||
/* Mode events */
|
/* Mode events */
|
||||||
modernModeButton.onclick = function() {
|
modernModeButton.onclick = function() {
|
||||||
biomeMode = "modern";
|
biomeMode = "modern";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user