mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-18 10:01:23 +01:00
refactor - change layers
This commit is contained in:
parent
3f863a5ca3
commit
aa8c3ab5fe
3 changed files with 26 additions and 8 deletions
|
|
@ -439,7 +439,7 @@
|
||||||
<select
|
<select
|
||||||
data-tip="Select a map layers preset"
|
data-tip="Select a map layers preset"
|
||||||
id="layersPreset"
|
id="layersPreset"
|
||||||
onchange="changeLayersPreset(this.value)"
|
onchange="handleLayersPresetChange(this.value)"
|
||||||
style="width: 45%"
|
style="width: 45%"
|
||||||
>
|
>
|
||||||
<option value="political" selected>Political map</option>
|
<option value="political" selected>Political map</option>
|
||||||
|
|
|
||||||
1
main.js
1
main.js
|
|
@ -315,6 +315,7 @@ async function generateMapOnLoad() {
|
||||||
await applyStyleOnLoad(); // apply previously selected default or custom style
|
await applyStyleOnLoad(); // apply previously selected default or custom style
|
||||||
await generate(); // generate map
|
await generate(); // generate map
|
||||||
applyLayersPreset(); // apply saved layers preset and reder layers
|
applyLayersPreset(); // apply saved layers preset and reder layers
|
||||||
|
drawLayers();
|
||||||
fitMapToScreen();
|
fitMapToScreen();
|
||||||
focusOn(); // focus on point, cell or burg from MFCG based on url searchParams
|
focusOn(); // focus on point, cell or burg from MFCG based on url searchParams
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,20 +101,37 @@ function restoreCustomPresets() {
|
||||||
// run on map generation
|
// run on map generation
|
||||||
function applyLayersPreset() {
|
function applyLayersPreset() {
|
||||||
const preset = localStorage.getItem("preset") || byId("layersPreset").value;
|
const preset = localStorage.getItem("preset") || byId("layersPreset").value;
|
||||||
changeLayersPreset(preset);
|
setLayersPreset(preset);
|
||||||
|
|
||||||
|
const layers = presets[preset]; // layers to be turned on
|
||||||
|
document.querySelectorAll("#mapLayers > li").forEach(el => {
|
||||||
|
const shouldBeOn = layers.includes(el.id);
|
||||||
|
if (shouldBeOn) el.classList.remove("buttonoff");
|
||||||
|
else el.classList.add("buttonoff");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// toggle layers on preset change
|
function setLayersPreset(preset) {
|
||||||
function changeLayersPreset(preset) {
|
byId("layersPreset").value = preset;
|
||||||
const layers = presets[preset]; // layers to be turned on
|
|
||||||
layersPreset.value = preset;
|
|
||||||
localStorage.setItem("preset", preset);
|
localStorage.setItem("preset", preset);
|
||||||
|
|
||||||
const isDefault = getDefaultPresets()[preset];
|
const isDefault = getDefaultPresets()[preset];
|
||||||
byId("removePresetButton").style.display = isDefault ? "none" : "inline-block";
|
byId("removePresetButton").style.display = isDefault ? "none" : "inline-block";
|
||||||
byId("savePresetButton").style.display = "none";
|
byId("savePresetButton").style.display = "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
// toggle layers on manual preset change
|
||||||
|
function handleLayersPresetChange(preset) {
|
||||||
|
setLayersPreset(preset);
|
||||||
|
|
||||||
|
const layers = presets[preset]; // layers to be turned on
|
||||||
|
document.querySelectorAll("#mapLayers > li").forEach(el => {
|
||||||
|
const isOn = layerIsOn(el.id);
|
||||||
|
const shouldBeOn = layers.includes(el.id);
|
||||||
|
if (shouldBeOn && !isOn) el.click();
|
||||||
|
if (isOn && !shouldBeOn) el.click();
|
||||||
|
});
|
||||||
|
|
||||||
document.querySelectorAll("#mapLayers > li").forEach(e => (e.className = layers.includes(e.id) ? null : "buttonoff"));
|
|
||||||
drawLayers();
|
|
||||||
if (byId("canvas3d")) setTimeout(() => ThreeD.update(), 400);
|
if (byId("canvas3d")) setTimeout(() => ThreeD.update(), 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue