markers - generate from config file

This commit is contained in:
Azgaar 2021-09-25 21:49:34 +03:00 committed by Peter
parent 0530ebbde7
commit b156f3cdf9
6 changed files with 499 additions and 839 deletions

View file

@ -439,7 +439,32 @@ button.options:hover {
cursor: pointer; cursor: pointer;
} }
input[type='color'] { #options button i.icon-cog {
position: absolute;
padding: 0.1em 0.3em;
background-color: var(--bg-lighter);
border-radius: 50%;
visibility: hidden;
opacity: 0;
transition: 0.4s ease-in-out;
}
#options button i.icon-cog:hover {
color: #111;
background-color: var(--bg-light);
transform: rotateZ(180deg);
}
#options button i.icon-cog:active {
transform: translateY(1px);
}
#options button:hover i.icon-cog {
visibility: visible;
opacity: 1;
}
input[type="color"] {
-webkit-appearance: none; -webkit-appearance: none;
cursor: pointer; cursor: pointer;
border: 1px solid #a9a9a9; border: 1px solid #a9a9a9;

View file

@ -334,21 +334,12 @@
<g id="scaleBar"></g> <g id="scaleBar"></g>
</svg> </svg>
<div id="loading"> <div id="loading">
<svg width="100%" height="100%"> <div id="titleName"><t data-t="titleName">Azgaar's</t></div>
<rect x="-1%" y="-1%" width="102%" height="102%" fill="#466eab" /> <div id="title"><t data-t="title">Fantasy Map Generator</t></div>
<rect x="-1%" y="-1%" width="102%" height="102%" fill="url(#oceanic)" /> <div id="version"><t data-t="version">v. </t>1.66</div>
</svg> <p id="loading-text"><t data-t="loading">LOADING</t><span>.</span><span>.</span><span>.</span></p>
<svg id="loading-rose" width="100%" height="100%" viewBox="0 0 700 700"> </div>
<use href="#rose" x="50%" y="50%" />
</svg>
<div id="loading-typography">
<div id="titleName"><t data-t="titleName">Azgaar's</t></div>
<div id="title"><t data-t="title">Fantasy Map Generator</t></div>
<div id="versionText"><t data-t="version">v</t><span id="version"></span></div>
<p id="loading-text"><t data-t="loading">LOADING</t><span>.</span><span>.</span><span>.</span></p>
</div>
</div>
<div id="optionsContainer" style="opacity: 0"> <div id="optionsContainer" style="opacity: 0">
<div id="collapsible"> <div id="collapsible">
@ -2016,68 +2007,25 @@
</button> </button>
</div> </div>
<p>Click to regenerate:</p> <p>Click to regenerate:</p>
<div id="regenerateFeature"> <div id="regenerateFeature">
<button <button id="regenerateStateLabels" data-tip="Click to update state labels placement based on current borders">Labels</button>
id="regenerateStateLabels" <button id="regenerateReliefIcons" data-tip="Click to regenerate all relief icons based on current cell biome and elevation">Relief</button>
data-tip="Click to update state labels placement based on current borders" <button id="regenerateRoutes" data-tip="Click to regenerate all routes">Routes</button>
> <button id="regenerateRivers" data-tip="Click to regenerate all rivers (restore default state)">Rivers</button>
Labels <button id="regeneratePopulation" data-tip="Click to recalculate rural and urban population">Population</button>
</button> <button id="regenerateStates" data-tip="Click to select new capitals and regenerate states. Emblems and military forces will be regenerated as well, burgs will remain as they are">States</button>
<button <button id="regenerateProvinces" data-tip="Click to regenerate provinces. States will remain as they are">Provinces</button>
id="regenerateReliefIcons" <button id="regenerateBurgs" data-tip="Click to regenerate all unlocked burgs and routes. States will remain as they are">Burgs</button>
data-tip="Click to regenerate all relief icons based on current cell biome and elevation" <button id="regenerateResources" data-tip="Click to regenerate resources">Resources</button>
> <button id="regenerateEmblems" data-tip="Click to regenerate all emblems">Emblems</button>
Relief <button id="regenerateReligions" data-tip="Click to regenerate religions">Religions</button>
</button> <button id="regenerateCultures" data-tip="Click to regenerate cultures">Cultures</button>
<button id="regenerateRoutes" data-tip="Click to regenerate all routes">Routes</button> <button id="regenerateMilitary" data-tip="Click to recalculate military forces based on current military options">Military</button>
<button id="regenerateRivers" data-tip="Click to regenerate all rivers (restore default state)"> <button id="regenerateIce" data-tip="Click to icebergs and glaciers">Ice</button>
Rivers <button id="regenerateMarkers" data-tip="Click to regenerate markers. Hold Ctrl and click to set markers number multiplier">Markers</button>
</button> <button id="regenerateZones" data-tip="Click to regenerate zones. Hold Ctrl and click to set zones number multiplier">Zones</button>
<button id="regeneratePopulation" data-tip="Click to recalculate rural and urban population"> </div>
Population
</button>
<button
id="regenerateStates"
data-tip="Click to select new capitals and regenerate states. Emblems and military forces will be regenerated as well, burgs will remain as they are"
>
States
</button>
<button id="regenerateProvinces" data-tip="Click to regenerate provinces. States will remain as they are">
Provinces
</button>
<button
id="regenerateBurgs"
data-tip="Click to regenerate all unlocked burgs and routes. States will remain as they are. Note: burgs are only generated in populated areas with culture assigned"
>
Burgs
</button>
<button
id="regenerateResources"
data-tip="Click to regenerate resources"
>
Resources
</button>
<button id="regenerateEmblems" data-tip="Click to regenerate all emblems">Emblems</button>
<button id="regenerateReligions" data-tip="Click to regenerate religions">Religions</button>
<button id="regenerateCultures" data-tip="Click to regenerate cultures">Cultures</button>
<button
id="regenerateMilitary"
data-tip="Click to recalculate military forces based on current military options"
>
Military
</button>
<button id="regenerateIce" data-tip="Click to icebergs and glaciers">Ice</button>
<button id="regenerateMarkers" data-tip="Click to regenerate markers">
Markers <i id="configRegenerateMarkers" class="icon-cog" data-tip="Click to set number multiplier"></i>
</button>
<button
id="regenerateZones"
data-tip="Click to regenerate zones. Hold Ctrl and click to set zones number multiplier"
>
Zones
</button>
</div>
<p>Click to add:</p> <p>Click to add:</p>
<div id="addFeature"> <div id="addFeature">

View file

@ -2,7 +2,10 @@
// https://github.com/Azgaar/Fantasy-Map-Generator // https://github.com/Azgaar/Fantasy-Map-Generator
"use strict"; "use strict";
// set debug options const version = "1.662"; // generator version
document.title += " v" + version;
// Switches to disable/enable logging features
const PRODUCTION = location.hostname && location.hostname !== "localhost" && location.hostname !== "127.0.0.1"; const PRODUCTION = location.hostname && location.hostname !== "localhost" && location.hostname !== "127.0.0.1";
const DEBUG = localStorage.getItem("debug"); const DEBUG = localStorage.getItem("debug");
const INFO = DEBUG || !PRODUCTION; const INFO = DEBUG || !PRODUCTION;

View file

@ -877,8 +877,10 @@ function parseLoadedData(data) {
borders.attr('style', null); borders.attr('style', null);
} }
// ecomonics: if (version < 1.7) {
// calculate salesTax for all states // v 1.7 changed markers data
// TODO: get markers data from svg
}
})(); })();
void (function checkDataIntegrity() { void (function checkDataIntegrity() {

File diff suppressed because it is too large Load diff

View file

@ -1,36 +1,36 @@
"use strict";
// module to control the Tools options (click to edit, to re-geenerate, tp add) // module to control the Tools options (click to edit, to re-geenerate, tp add)
'use strict';
toolsContent.addEventListener("click", function (event) { toolsContent.addEventListener("click", function (event) {
if (customization) return tip("Please exit the customization mode first", false, "warning"); if (customization) return tip("Please exit the customization mode first", false, "warning");
if (!["BUTTON", "I"].includes(event.target.tagName)) return; if (!["BUTTON", "I"].includes(event.target.tagName)) return;
const button = event.target.id; const button = event.target.id;
// click on open Editor buttons // Click to open Editor buttons
if (button === "editHeightmapButton") editHeightmap(); if (button === 'editHeightmapButton') editHeightmap();
else if (button === "editBiomesButton") editBiomes(); else if (button === 'editBiomesButton') editBiomes();
else if (button === "editStatesButton") editStates(); else if (button === 'editStatesButton') editStates();
else if (button === "editProvincesButton") editProvinces(); else if (button === 'editProvincesButton') editProvinces();
else if (button === "editDiplomacyButton") editDiplomacy(); else if (button === 'editDiplomacyButton') editDiplomacy();
else if (button === "editCulturesButton") editCultures(); else if (button === 'editCulturesButton') editCultures();
else if (button === "editReligions") editReligions(); else if (button === 'editReligions') editReligions();
else if (button === 'editResources') editResources(); else if (button === 'editResources') editResources();
else if (button === "editEmblemButton") openEmblemEditor(); else if (button === 'editEmblemButton') openEmblemEditor();
else if (button === "editNamesBaseButton") editNamesbase(); else if (button === 'editNamesBaseButton') editNamesbase();
else if (button === "editUnitsButton") editUnits(); else if (button === 'editUnitsButton') editUnits();
else if (button === "editNotesButton") editNotes(); else if (button === 'editNotesButton') editNotes();
else if (button === "editZonesButton") editZones(); else if (button === 'editZonesButton') editZones();
else if (button === "overviewChartsButton") overviewCharts(); else if (button === 'overviewBurgsButton') overviewBurgs();
else if (button === "overviewBurgsButton") overviewBurgs(); else if (button === 'overviewRiversButton') overviewRivers();
else if (button === "overviewRiversButton") overviewRivers(); else if (button === 'overviewMilitaryButton') overviewMilitary();
else if (button === "overviewMilitaryButton") overviewMilitary(); else if (button === 'overviewCellsButton') viewCellDetails();
else if (button === "overviewMarkersButton") overviewMarkers();
else if (button === "overviewCellsButton") viewCellDetails();
// click on Regenerate buttons // Click to Regenerate buttons
if (event.target.parentNode.id === "regenerateFeature") { if (event.target.parentNode.id === 'regenerateFeature') {
const dontAsk = sessionStorage.getItem("regenerateFeatureDontAsk"); if (sessionStorage.getItem('regenerateFeatureDontAsk')) {
if (dontAsk) return processFeatureRegeneration(event, button); processFeatureRegeneration(event, button);
return;
}
alertMessage.innerHTML = /* html */ `Regeneration will remove all the custom changes for the element.<br /><br />Are you sure you want to proceed?`; alertMessage.innerHTML = /* html */ `Regeneration will remove all the custom changes for the element.<br /><br />Are you sure you want to proceed?`;
$("#alert").dialog({ $("#alert").dialog({
@ -59,18 +59,12 @@ toolsContent.addEventListener("click", function (event) {
}); });
} }
// click on Configure regenerate buttons // Click to Add buttons
if (button === "configRegenerateMarkers") configMarkersGeneration(); if (button === 'addLabel') toggleAddLabel();
else if (button === 'addBurgTool') toggleAddBurg();
// click on Add buttons else if (button === 'addRiver') toggleAddRiver();
if (button === "addLabel") toggleAddLabel(); else if (button === 'addRoute') toggleAddRoute();
else if (button === "addBurgTool") toggleAddBurg(); else if (button === 'addMarker') toggleAddMarker();
else if (button === "addRiver") toggleAddRiver();
else if (button === "addRoute") toggleAddRoute();
else if (button === "addMarker") toggleAddMarker();
// click to create a new map buttons
else if (button === "openSubmapMenu") UISubmap.openSubmapMenu();
else if (button === "openResampleMenu") UISubmap.openResampleMenu();
}); });
function processFeatureRegeneration(event, button) { function processFeatureRegeneration(event, button) {
@ -82,20 +76,20 @@ function processFeatureRegeneration(event, button) {
if (!layerIsOn("toggleRelief")) toggleRelief(); if (!layerIsOn("toggleRelief")) toggleRelief();
} else if (button === "regenerateRoutes") { } else if (button === "regenerateRoutes") {
Routes.regenerate(); Routes.regenerate();
if (!layerIsOn("toggleRoutes")) toggleRoutes(); if (!layerIsOn('toggleRoutes')) toggleRoutes();
} else if (button === "regenerateRivers") regenerateRivers(); } else if (button === 'regenerateRivers') regenerateRivers();
else if (button === "regeneratePopulation") recalculatePopulation(); else if (button === 'regeneratePopulation') recalculatePopulation();
else if (button === "regenerateStates") regenerateStates(); else if (button === 'regenerateStates') regenerateStates();
else if (button === "regenerateProvinces") regenerateProvinces(); else if (button === 'regenerateProvinces') regenerateProvinces();
else if (button === "regenerateBurgs") regenerateBurgs(); else if (button === 'regenerateBurgs') regenerateBurgs();
else if (button === 'regenerateResources') regenerateResources(); else if (button === 'regenerateResources') regenerateResources();
else if (button === "regenerateEmblems") regenerateEmblems(); else if (button === 'regenerateEmblems') regenerateEmblems();
else if (button === "regenerateReligions") regenerateReligions(); else if (button === 'regenerateReligions') regenerateReligions();
else if (button === "regenerateCultures") regenerateCultures(); else if (button === 'regenerateCultures') regenerateCultures();
else if (button === "regenerateMilitary") regenerateMilitary(); else if (button === 'regenerateMilitary') regenerateMilitary();
else if (button === "regenerateIce") regenerateIce(); else if (button === 'regenerateIce') regenerateIce();
else if (button === "regenerateMarkers") regenerateMarkers(); else if (button === 'regenerateMarkers') regenerateMarkers(event);
else if (button === "regenerateZones") regenerateZones(event); else if (button === 'regenerateZones') regenerateZones(event);
} }
async function openEmblemEditor() { async function openEmblemEditor() {
@ -443,11 +437,23 @@ function regenerateIce() {
drawIce(); drawIce();
} }
function regenerateMarkers() { function regenerateMarkers(event) {
Markers.regenerate(); if (isCtrlClick(event)) prompt("Please provide markers number multiplier", {default: 1, step: 0.01, min: 0, max: 100}, v => addNumberOfMarkers(v));
turnButtonOn("toggleMarkers"); else addNumberOfMarkers();
drawMarkers();
if (document.getElementById("markersOverviewRefresh").offsetParent) markersOverviewRefresh.click(); function addNumberOfMarkers(multiplier) {
pack.markers = pack.markers.filter(marker => {
if (marker.lock) return true;
document.getElementById(`marker${marker.i}`)?.remove();
const index = notes.findIndex(note => note.id === marker.id);
if (index != -1) notes.splice(index, 1);
return false;
});
Markers.regenerate(multiplier);
turnButtonOn("toggleMarkers");
drawMarkers();
}
} }
function regenerateZones(event) { function regenerateZones(event) {