mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-21 19:41:23 +01:00
Added Burgs column to province editor
Added to province editor: + Burgs column + the number of Burgs, p.burgs.length + "icon-dot-circled" to go to overviewBurgs. + overviewBurgs Filtered by state id. + Fixed some typos.
This commit is contained in:
parent
845dc893d2
commit
f31022bad1
3 changed files with 29 additions and 8 deletions
|
|
@ -4450,7 +4450,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="provincesEditor" class="dialog stable" style="display: none">
|
<div id="provincesEditor" class="dialog stable" style="display: none">
|
||||||
<div id="provincesHeader" class="header" style="grid-template-columns: 11em 8em 8em 8em 5em 8em">
|
<div id="provincesHeader" class="header" style="grid-template-columns: 11em 8em 8em 6em 6em 7em 8em">
|
||||||
<div data-tip="Click to sort by province name" class="sortable alphabetically" data-sortby="name">
|
<div data-tip="Click to sort by province name" class="sortable alphabetically" data-sortby="name">
|
||||||
Province
|
Province
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -4463,6 +4463,7 @@
|
||||||
<div data-tip="Click to sort by province owner" class="sortable alphabetically" data-sortby="state">
|
<div data-tip="Click to sort by province owner" class="sortable alphabetically" data-sortby="state">
|
||||||
State
|
State
|
||||||
</div>
|
</div>
|
||||||
|
<div data-tip="Click to sort by province burgs count" class="sortable hide" data-sortby="burgs">Burgs </div>
|
||||||
<div data-tip="Click to sort by province area" class="sortable hide" data-sortby="area">Area </div>
|
<div data-tip="Click to sort by province area" class="sortable hide" data-sortby="area">Area </div>
|
||||||
<div data-tip="Click to sort by province population" class="sortable hide" data-sortby="population">
|
<div data-tip="Click to sort by province population" class="sortable hide" data-sortby="population">
|
||||||
Population
|
Population
|
||||||
|
|
@ -4475,6 +4476,12 @@
|
||||||
<div data-tip="Provinces displayed" style="margin-left: 4px">
|
<div data-tip="Provinces displayed" style="margin-left: 4px">
|
||||||
Provinces: <span id="provincesFooterNumber">0</span>
|
Provinces: <span id="provincesFooterNumber">0</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div data-tip="Total land cells number" style="margin-left: 12px">
|
||||||
|
Cells: <span id="provincesFooterCells">0</span>
|
||||||
|
</div>
|
||||||
|
<div data-tip="Total burgs number" style="margin-left: 12px">
|
||||||
|
Burgs: <span id="provincesFooterBurgs">0</span>
|
||||||
|
</div>
|
||||||
<div data-tip="Average area" style="margin-left: 14px">
|
<div data-tip="Average area" style="margin-left: 14px">
|
||||||
Mean area: <span id="provincesFooterArea">0</span>
|
Mean area: <span id="provincesFooterArea">0</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -434,13 +434,13 @@ function editStateName(state) {
|
||||||
modules.editStateName = true;
|
modules.editStateName = true;
|
||||||
|
|
||||||
// add listeners
|
// add listeners
|
||||||
byId("stateNameEditorShortCulture").on("click", regenerateShortNameCuture);
|
byId("stateNameEditorShortCulture").on("click", regenerateShortNameCulture);
|
||||||
byId("stateNameEditorShortRandom").on("click", regenerateShortNameRandom);
|
byId("stateNameEditorShortRandom").on("click", regenerateShortNameRandom);
|
||||||
byId("stateNameEditorAddForm").on("click", addCustomForm);
|
byId("stateNameEditorAddForm").on("click", addCustomForm);
|
||||||
byId("stateNameEditorCustomForm").on("change", addCustomForm);
|
byId("stateNameEditorCustomForm").on("change", addCustomForm);
|
||||||
byId("stateNameEditorFullRegenerate").on("click", regenerateFullName);
|
byId("stateNameEditorFullRegenerate").on("click", regenerateFullName);
|
||||||
|
|
||||||
function regenerateShortNameCuture() {
|
function regenerateShortNameCulture() {
|
||||||
const state = +stateNameEditor.dataset.state;
|
const state = +stateNameEditor.dataset.state;
|
||||||
const culture = pack.states[state].culture;
|
const culture = pack.states[state].culture;
|
||||||
const name = Names.getState(Names.getCultureShort(culture), culture);
|
const name = Names.getState(Names.getCultureShort(culture), culture);
|
||||||
|
|
|
||||||
|
|
@ -44,12 +44,14 @@ function editProvinces() {
|
||||||
cl = el.classList,
|
cl = el.classList,
|
||||||
line = el.parentNode,
|
line = el.parentNode,
|
||||||
p = +line.dataset.id;
|
p = +line.dataset.id;
|
||||||
|
const stateId = +document.getElementById("provincesFilterState").value;
|
||||||
|
|
||||||
if (el.tagName === "FILL-BOX") changeFill(el);
|
if (el.tagName === "FILL-BOX") changeFill(el);
|
||||||
else if (cl.contains("name")) editProvinceName(p);
|
else if (cl.contains("name")) editProvinceName(p);
|
||||||
else if (cl.contains("coaIcon")) editEmblem("province", "provinceCOA" + p, pack.provinces[p]);
|
else if (cl.contains("coaIcon")) editEmblem("province", "provinceCOA" + p, pack.provinces[p]);
|
||||||
else if (cl.contains("icon-star-empty")) capitalZoomIn(p);
|
else if (cl.contains("icon-star-empty")) capitalZoomIn(p);
|
||||||
else if (cl.contains("icon-flag-empty")) triggerIndependencePromps(p);
|
else if (cl.contains("icon-flag-empty")) triggerIndependencePromps(p);
|
||||||
|
else if (cl.contains("icon-dot-circled")) overviewBurgs({stateId}); // {stateId}, filtered view for that state
|
||||||
else if (cl.contains("culturePopulation")) changePopulation(p);
|
else if (cl.contains("culturePopulation")) changePopulation(p);
|
||||||
else if (cl.contains("icon-pin")) toggleFog(p, cl);
|
else if (cl.contains("icon-pin")) toggleFog(p, cl);
|
||||||
else if (cl.contains("icon-trash-empty")) removeProvince(p);
|
else if (cl.contains("icon-trash-empty")) removeProvince(p);
|
||||||
|
|
@ -107,7 +109,7 @@ function editProvinces() {
|
||||||
statesSorted.forEach(s => stateFilter.options.add(new Option(s.name, s.i, false, s.i == selectedState)));
|
statesSorted.forEach(s => stateFilter.options.add(new Option(s.name, s.i, false, s.i == selectedState)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// add line for each state
|
// add line for each province
|
||||||
function provincesEditorAddLines() {
|
function provincesEditorAddLines() {
|
||||||
const unit = " " + getAreaUnit();
|
const unit = " " + getAreaUnit();
|
||||||
const selectedState = +document.getElementById("provincesFilterState").value;
|
const selectedState = +document.getElementById("provincesFilterState").value;
|
||||||
|
|
@ -117,6 +119,7 @@ function editProvinces() {
|
||||||
let lines = "",
|
let lines = "",
|
||||||
totalArea = 0,
|
totalArea = 0,
|
||||||
totalPopulation = 0;
|
totalPopulation = 0;
|
||||||
|
let totalBurgs = 0;
|
||||||
|
|
||||||
for (const p of filtered) {
|
for (const p of filtered) {
|
||||||
const area = getArea(p.area);
|
const area = getArea(p.area);
|
||||||
|
|
@ -128,6 +131,7 @@ function editProvinces() {
|
||||||
rural
|
rural
|
||||||
)}; Urban population: ${si(urban)}`;
|
)}; Urban population: ${si(urban)}`;
|
||||||
totalPopulation += population;
|
totalPopulation += population;
|
||||||
|
totalBurgs += p.burgs.length;
|
||||||
|
|
||||||
const stateName = pack.states[p.state].name;
|
const stateName = pack.states[p.state].name;
|
||||||
const capital = p.burg ? pack.burgs[p.burg].name : "";
|
const capital = p.burg ? pack.burgs[p.burg].name : "";
|
||||||
|
|
@ -144,6 +148,7 @@ function editProvinces() {
|
||||||
data-state="${stateName}"
|
data-state="${stateName}"
|
||||||
data-area=${area}
|
data-area=${area}
|
||||||
data-population=${population}
|
data-population=${population}
|
||||||
|
data-burgs=${p.burgs.length}
|
||||||
>
|
>
|
||||||
<fill-box fill="${p.color}"></fill-box>
|
<fill-box fill="${p.color}"></fill-box>
|
||||||
<input data-tip="Province name. Click to change" class="name pointer" value="${p.name}" readonly />
|
<input data-tip="Province name. Click to change" class="name pointer" value="${p.name}" readonly />
|
||||||
|
|
@ -163,6 +168,8 @@ function editProvinces() {
|
||||||
${p.burgs.length ? getCapitalOptions(p.burgs, p.burg) : ""}
|
${p.burgs.length ? getCapitalOptions(p.burgs, p.burg) : ""}
|
||||||
</select>
|
</select>
|
||||||
<input data-tip="Province owner" class="provinceOwner" value="${stateName}" disabled">
|
<input data-tip="Province owner" class="provinceOwner" value="${stateName}" disabled">
|
||||||
|
<span data-tip="Click to overview province burgs" style="padding-right: 1px" class="icon-dot-circled pointer hide"></span>
|
||||||
|
<div data-tip="Burgs count" class="provinceBurgs hide">${p.burgs.length}</div>
|
||||||
<span data-tip="Province area" style="padding-right: 4px" class="icon-map-o hide"></span>
|
<span data-tip="Province area" style="padding-right: 4px" class="icon-map-o hide"></span>
|
||||||
<div data-tip="Province area" class="biomeArea hide">${si(area) + unit}</div>
|
<div data-tip="Province area" class="biomeArea hide">${si(area) + unit}</div>
|
||||||
<span data-tip="${populationTip}" class="icon-male hide"></span>
|
<span data-tip="${populationTip}" class="icon-male hide"></span>
|
||||||
|
|
@ -180,6 +187,8 @@ function editProvinces() {
|
||||||
|
|
||||||
// update footer
|
// update footer
|
||||||
provincesFooterNumber.innerHTML = filtered.length;
|
provincesFooterNumber.innerHTML = filtered.length;
|
||||||
|
byId("provincesFooterCells").innerHTML = pack.cells.h.filter(h => h >= 20).length;
|
||||||
|
byId("provincesFooterBurgs").innerHTML = totalBurgs;
|
||||||
provincesFooterArea.innerHTML = filtered.length ? si(totalArea / filtered.length) + unit : 0 + unit;
|
provincesFooterArea.innerHTML = filtered.length ? si(totalArea / filtered.length) + unit : 0 + unit;
|
||||||
provincesFooterPopulation.innerHTML = filtered.length ? si(totalPopulation / filtered.length) : 0;
|
provincesFooterPopulation.innerHTML = filtered.length ? si(totalPopulation / filtered.length) : 0;
|
||||||
provincesFooterArea.dataset.area = totalArea;
|
provincesFooterArea.dataset.area = totalArea;
|
||||||
|
|
@ -520,12 +529,12 @@ function editProvinces() {
|
||||||
modules.editProvinceName = true;
|
modules.editProvinceName = true;
|
||||||
|
|
||||||
// add listeners
|
// add listeners
|
||||||
document.getElementById("provinceNameEditorShortCulture").addEventListener("click", regenerateShortNameCuture);
|
document.getElementById("provinceNameEditorShortCulture").addEventListener("click", regenerateShortNameCulture);
|
||||||
document.getElementById("provinceNameEditorShortRandom").addEventListener("click", regenerateShortNameRandom);
|
document.getElementById("provinceNameEditorShortRandom").addEventListener("click", regenerateShortNameRandom);
|
||||||
document.getElementById("provinceNameEditorAddForm").addEventListener("click", addCustomForm);
|
document.getElementById("provinceNameEditorAddForm").addEventListener("click", addCustomForm);
|
||||||
document.getElementById("provinceNameEditorFullRegenerate").addEventListener("click", regenerateFullName);
|
document.getElementById("provinceNameEditorFullRegenerate").addEventListener("click", regenerateFullName);
|
||||||
|
|
||||||
function regenerateShortNameCuture() {
|
function regenerateShortNameCulture() {
|
||||||
const province = +provinceNameEditor.dataset.province;
|
const province = +provinceNameEditor.dataset.province;
|
||||||
const culture = pack.cells.culture[pack.provinces[province].center];
|
const culture = pack.cells.culture[pack.provinces[province].center];
|
||||||
const name = Names.getState(Names.getCultureShort(culture), culture);
|
const name = Names.getState(Names.getCultureShort(culture), culture);
|
||||||
|
|
@ -576,12 +585,17 @@ function editProvinces() {
|
||||||
function togglePercentageMode() {
|
function togglePercentageMode() {
|
||||||
if (body.dataset.type === "absolute") {
|
if (body.dataset.type === "absolute") {
|
||||||
body.dataset.type = "percentage";
|
body.dataset.type = "percentage";
|
||||||
|
const totalCells = +byId("statesFooterCells").innerText;
|
||||||
|
const totalBurgs = +byId("provincesFooterBurgs").innerText;
|
||||||
const totalArea = +provincesFooterArea.dataset.area;
|
const totalArea = +provincesFooterArea.dataset.area;
|
||||||
const totalPopulation = +provincesFooterPopulation.dataset.population;
|
const totalPopulation = +provincesFooterPopulation.dataset.population;
|
||||||
|
|
||||||
body.querySelectorAll(":scope > div").forEach(function (el) {
|
body.querySelectorAll(":scope > div").forEach(function (el) {
|
||||||
el.querySelector(".biomeArea").innerHTML = rn((+el.dataset.area / totalArea) * 100) + "%";
|
const {cells, burgs, area, population} = el.dataset;
|
||||||
el.querySelector(".culturePopulation").innerHTML = rn((+el.dataset.population / totalPopulation) * 100) + "%";
|
el.querySelector(".provinceCells").innerText = rn((+cells / totalCells) * 100) + "%";
|
||||||
|
el.querySelector(".provinceBurgs").innerText = rn((+burgs / totalBurgs) * 100) + "%";
|
||||||
|
el.querySelector(".biomeArea").innerHTML = rn((+area / totalArea) * 100) + "%";
|
||||||
|
el.querySelector(".culturePopulation").innerHTML = rn((+population / totalPopulation) * 100) + "%";
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
body.dataset.type = "absolute";
|
body.dataset.type = "absolute";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue