mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 17:51:24 +01:00
refactor: replace fmg.modules with local vars
This commit is contained in:
parent
80bf0ef688
commit
a97e7f44f6
31 changed files with 141 additions and 95 deletions
|
|
@ -9,6 +9,8 @@ import {openURL} from "utils/linkUtils";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {getArea, getAreaUnit, si} from "utils/unitUtils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function open() {
|
||||
closeDialogs("#biomesEditor, .stable");
|
||||
if (!layerIsOn("toggleBiomes")) toggleBiomes();
|
||||
|
|
@ -21,8 +23,8 @@ export function open() {
|
|||
const animate = d3.transition().duration(2000).ease(d3.easeSinIn);
|
||||
refreshBiomesEditor();
|
||||
|
||||
if (fmg.modules.editBiomes) return;
|
||||
fmg.modules.editBiomes = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
$("#biomesEditor").dialog({
|
||||
title: "Biomes Editor",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import * as d3 from "d3";
|
||||
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
import {openDialog} from "dialogs";
|
||||
import {layerIsOn} from "layers";
|
||||
import {prompt} from "scripts/prompt";
|
||||
import {clearMainTip, tip} from "scripts/tooltips";
|
||||
|
|
@ -459,9 +460,9 @@ export function open({id} = {}) {
|
|||
}
|
||||
|
||||
function openEmblemEdit() {
|
||||
const id = +elSelected.attr("data-id"),
|
||||
burg = pack.burgs[id];
|
||||
editEmblem("burg", "burgCOA" + id, burg);
|
||||
const id = +elSelected.attr("data-id");
|
||||
const burg = pack.burgs[id];
|
||||
openDialog("emblemEditor", null, {type: "burg", id: "burgCOA" + id, el: burg});
|
||||
}
|
||||
|
||||
function toggleMFCGMap() {
|
||||
|
|
|
|||
|
|
@ -6,10 +6,7 @@ import {openURL} from "utils/linkUtils";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {parseTransform} from "utils/stringUtils";
|
||||
|
||||
export function editEmblem(type, id, el) {
|
||||
if (customization) return;
|
||||
if (!id && d3.event) defineEmblemData(d3.event);
|
||||
|
||||
export function open({type, id, el}) {
|
||||
emblems.selectAll("use").call(d3.drag().on("drag", dragEmblem)).classed("draggable", true);
|
||||
|
||||
const emblemStates = document.getElementById("emblemStates");
|
||||
|
|
@ -49,20 +46,6 @@ export function editEmblem(type, id, el) {
|
|||
document.getElementById("emblemsGallery").onclick = downloadGallery;
|
||||
document.getElementById("emblemsFocus").onclick = showArea;
|
||||
|
||||
function defineEmblemData(e) {
|
||||
const parent = e.target.parentNode;
|
||||
const [g, t] =
|
||||
parent.id === "burgEmblems"
|
||||
? [pack.burgs, "burg"]
|
||||
: parent.id === "provinceEmblems"
|
||||
? [pack.provinces, "province"]
|
||||
: [pack.states, "state"];
|
||||
const i = +e.target.dataset.i;
|
||||
type = t;
|
||||
id = type + "COA" + i;
|
||||
el = g[i];
|
||||
}
|
||||
|
||||
function updateElementSelectors(type, id, el) {
|
||||
let state = 0,
|
||||
province = 0,
|
||||
|
|
@ -18,6 +18,8 @@ import {aleaPRNG} from "scripts/aleaPRNG";
|
|||
import {undraw} from "scripts/generation";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editHeightmap(options) {
|
||||
const {mode, tool} = options || {};
|
||||
restartHistory();
|
||||
|
|
@ -26,8 +28,8 @@ export function editHeightmap(options) {
|
|||
if (!mode) showModeDialog();
|
||||
else enterHeightmapEditMode(mode);
|
||||
|
||||
if (fmg.modules.editHeightmap) return;
|
||||
fmg.modules.editHeightmap = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
byId("paintBrushes").on("click", openBrushesPanel);
|
||||
|
|
@ -555,6 +557,8 @@ export function editHeightmap(options) {
|
|||
updateHistory();
|
||||
}
|
||||
|
||||
let isBrushesPanelLoaded = false;
|
||||
|
||||
function openBrushesPanel() {
|
||||
if ($("#brushesPanel").is(":visible")) return;
|
||||
$("#brushesPanel")
|
||||
|
|
@ -565,8 +569,8 @@ export function editHeightmap(options) {
|
|||
})
|
||||
.on("dialogclose", exitBrushMode);
|
||||
|
||||
if (fmg.modules.openBrushesPanel) return;
|
||||
fmg.modules.openBrushesPanel = true;
|
||||
if (isBrushesPanelLoaded) return;
|
||||
isBrushesPanelLoaded = true;
|
||||
|
||||
// add listeners
|
||||
byId("brushesButtons").on("click", e => toggleBrushMode(e));
|
||||
|
|
@ -725,6 +729,8 @@ export function editHeightmap(options) {
|
|||
}
|
||||
}
|
||||
|
||||
let isTemplateEditorLoaded = false;
|
||||
|
||||
function openTemplateEditor() {
|
||||
if ($("#templateEditor").is(":visible")) return;
|
||||
const $body = byId("templateBody");
|
||||
|
|
@ -737,8 +743,8 @@ export function editHeightmap(options) {
|
|||
position: {my: "right top", at: "right-10 top+10", of: "svg"}
|
||||
});
|
||||
|
||||
if (fmg.modules.openTemplateEditor) return;
|
||||
fmg.modules.openTemplateEditor = true;
|
||||
if (isTemplateEditorLoaded) return;
|
||||
isTemplateEditorLoaded = true;
|
||||
|
||||
$("#templateBody").sortable({
|
||||
items: "> div",
|
||||
|
|
@ -1054,6 +1060,8 @@ export function editHeightmap(options) {
|
|||
}
|
||||
}
|
||||
|
||||
let isImageConverterLoaded = false;
|
||||
|
||||
function openImageConverter() {
|
||||
if ($("#imageConverter").is(":visible")) return;
|
||||
imageToLoad.click();
|
||||
|
|
@ -1084,8 +1092,8 @@ export function editHeightmap(options) {
|
|||
viewbox.select("#heights").selectAll("*").remove();
|
||||
updateHistory();
|
||||
|
||||
if (fmg.modules.openImageConverter) return;
|
||||
fmg.modules.openImageConverter = true;
|
||||
if (isImageConverterLoaded) return;
|
||||
isImageConverterLoaded = true;
|
||||
|
||||
// add color pallete
|
||||
void (function createColorPallete() {
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
import * as d3 from "d3";
|
||||
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
import {openDialog} from "dialogs";
|
||||
import {restoreDefaultEvents} from "scripts/events";
|
||||
import {clearMainTip, showMainTip, tip} from "scripts/tooltips";
|
||||
import {getMixedColor, getRandomColor} from "utils/colorUtils";
|
||||
|
|
@ -161,7 +162,8 @@ function addListeners() {
|
|||
const stateId = +$element.parentNode?.dataset?.id;
|
||||
if ($element.tagName === "FILL-BOX") stateChangeFill($element);
|
||||
else if (classList.contains("name")) editStateName(stateId);
|
||||
else if (classList.contains("coaIcon")) editEmblem("state", "stateCOA" + stateId, pack.states[stateId]);
|
||||
else if (classList.contains("coaIcon"))
|
||||
openDialog("emblemEditor", null, {type: "state", id: "stateCOA" + stateId, el: pack.state[stateId]});
|
||||
else if (classList.contains("icon-star-empty")) stateCapitalZoomIn(stateId);
|
||||
else if (classList.contains("statePopulation")) changePopulation(stateId);
|
||||
else if (classList.contains("icon-pin")) toggleFog(stateId, classList);
|
||||
|
|
@ -405,6 +407,8 @@ function stateChangeFill(el) {
|
|||
openPicker(currentFill, callback);
|
||||
}
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
function editStateName(state) {
|
||||
const $stateNameEditorCustomForm = byId("stateNameEditorCustomForm");
|
||||
const $stateNameEditorSelectForm = byId("stateNameEditorSelectForm");
|
||||
|
|
@ -438,8 +442,8 @@ function editStateName(state) {
|
|||
position: {my: "center", at: "center", of: "svg"}
|
||||
});
|
||||
|
||||
if (fmg.modules.editStateName) return;
|
||||
fmg.modules.editStateName = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
byId("stateNameEditorShortCulture").on("click", regenerateShortNameCuture);
|
||||
|
|
|
|||
|
|
@ -7,12 +7,14 @@ import {prompt} from "scripts/prompt";
|
|||
import {closeDialogs} from "dialogs/utils";
|
||||
import {fitScaleBar} from "modules/measurers";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function open() {
|
||||
closeDialogs("#unitsEditor, .stable");
|
||||
$("#unitsEditor").dialog();
|
||||
|
||||
if (fmg.modules.editUnits) return;
|
||||
fmg.modules.editUnits = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
$("#unitsEditor").dialog({
|
||||
title: "Units Editor",
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ const dialogsMap = {
|
|||
coastlineEditor: "coastline-editor",
|
||||
culturesEditor: "cultures-editor",
|
||||
diplomacyEditor: "diplomacy-editor",
|
||||
emblemEditor: "emblem-editor",
|
||||
heightmapEditor: "heightmap-editor",
|
||||
heightmapSelection: "heightmap-selection",
|
||||
hierarchyTree: "hierarchy-tree",
|
||||
religionsEditor: "religions-editor",
|
||||
|
|
|
|||
|
|
@ -14,10 +14,6 @@ import {addGlobalListeners} from "./scripts/listeners";
|
|||
import {checkForUpdates} from "./scripts/updater";
|
||||
import {getInputNumber} from "utils/nodeUtils";
|
||||
|
||||
window.fmg = {
|
||||
modules: {}
|
||||
};
|
||||
|
||||
// default options
|
||||
options = {
|
||||
pinNotes: false,
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import {capitalize} from "utils/stringUtils";
|
|||
import {getAdjective, list} from "utils/languageUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export class Battle {
|
||||
constructor(attacker, defender) {
|
||||
if (customization) return;
|
||||
|
|
@ -42,8 +44,8 @@ export class Battle {
|
|||
close: () => Battle.prototype.context.cancelResults()
|
||||
});
|
||||
|
||||
if (fmg.modules.Battle) return;
|
||||
fmg.modules.Battle = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("battleType").addEventListener("click", ev => this.toggleChange(ev));
|
||||
|
|
|
|||
|
|
@ -421,6 +421,5 @@ function showElevationProfile(data, routeLen, isRiver) {
|
|||
document.getElementById("epCurve").removeEventListener("change", draw);
|
||||
document.getElementById("epSave").removeEventListener("click", downloadCSV);
|
||||
document.getElementById("elevationGraph").innerHTML = "";
|
||||
fmg.modules.elevation = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {ra} from "utils/probabilityUtils";
|
|||
import {parseTransform} from "utils/stringUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editIce() {
|
||||
if (customization) return;
|
||||
closeDialogs(".stable");
|
||||
|
|
@ -26,8 +28,8 @@ export function editIce() {
|
|||
close: closeEditor
|
||||
});
|
||||
|
||||
if (fmg.modules.editIce) return;
|
||||
fmg.modules.editIce = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("iceEditStyle").addEventListener("click", () => editStyle("ice"));
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ import {tip, showMainTip} from "scripts/tooltips";
|
|||
import {round, parseTransform} from "utils/stringUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editLabel() {
|
||||
if (customization) return;
|
||||
closeDialogs();
|
||||
|
|
@ -26,8 +28,8 @@ export function editLabel() {
|
|||
selectLabelGroup(text);
|
||||
updateValues(textPath);
|
||||
|
||||
if (fmg.modules.editLabel) return;
|
||||
fmg.modules.editLabel = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("labelGroupShow").addEventListener("click", showGroupSection);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import {rand} from "utils/probabilityUtils";
|
|||
import {round} from "utils/stringUtils";
|
||||
import {getArea, getAreaUnit, getHeight, si} from "utils/unitUtils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editLake() {
|
||||
if (customization) return;
|
||||
closeDialogs(".stable");
|
||||
|
|
@ -28,8 +30,8 @@ export function editLake() {
|
|||
drawLakeVertices();
|
||||
viewbox.on("touchmove mousemove", null);
|
||||
|
||||
if (fmg.modules.editLake) return;
|
||||
fmg.modules.editLake = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("lakeName").addEventListener("input", changeName);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {capitalize} from "utils/stringUtils";
|
|||
import {si} from "utils/unitUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function overviewMilitary() {
|
||||
if (customization) return;
|
||||
closeDialogs("#militaryOverview, .stable");
|
||||
|
|
@ -18,8 +20,9 @@ export function overviewMilitary() {
|
|||
addLines();
|
||||
$("#militaryOverview").dialog();
|
||||
|
||||
if (fmg.modules.overviewMilitary) return;
|
||||
fmg.modules.overviewMilitary = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
updateHeaders();
|
||||
|
||||
$("#militaryOverview").dialog({
|
||||
|
|
@ -243,6 +246,8 @@ export function overviewMilitary() {
|
|||
}
|
||||
}
|
||||
|
||||
let isCustomizeLoaded = false;
|
||||
|
||||
function militaryCustomize() {
|
||||
const types = ["melee", "ranged", "mounted", "machinery", "naval", "armored", "aviation", "magical"];
|
||||
const tableBody = document.getElementById("militaryOptions").querySelector("tbody");
|
||||
|
|
@ -282,8 +287,8 @@ export function overviewMilitary() {
|
|||
}
|
||||
});
|
||||
|
||||
if (fmg.modules.overviewMilitaryCustomize) return;
|
||||
fmg.modules.overviewMilitaryCustomize = true;
|
||||
if (isCustomizeLoaded) return;
|
||||
isCustomizeLoaded = true;
|
||||
|
||||
tableBody.addEventListener("click", event => {
|
||||
const el = event.target;
|
||||
|
|
|
|||
|
|
@ -6,13 +6,15 @@ import {openURL} from "utils/linkUtils";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editNamesbase() {
|
||||
if (customization) return;
|
||||
closeDialogs("#namesbaseEditor, .stable");
|
||||
$("#namesbaseEditor").dialog();
|
||||
|
||||
if (fmg.modules.editNamesbase) return;
|
||||
fmg.modules.editNamesbase = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("namesbaseSelect").addEventListener("change", updateInputs);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
import {tip} from "scripts/tooltips";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editNotes(id, name) {
|
||||
// elements
|
||||
const notesLegend = document.getElementById("notesLegend");
|
||||
|
|
@ -49,8 +51,8 @@ export function editNotes(id, name) {
|
|||
});
|
||||
$("[aria-describedby='notesEditor']").css("top", "10vh");
|
||||
|
||||
if (modules.editNotes) return;
|
||||
modules.editNotes = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("notesSelect").addEventListener("change", changeElement);
|
||||
|
|
|
|||
|
|
@ -974,6 +974,8 @@ function resize3d() {
|
|||
ThreeD.redraw();
|
||||
}
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
function toggle3dOptions() {
|
||||
if (options3dUpdate.offsetParent) {
|
||||
$("#options3d").dialog("close");
|
||||
|
|
@ -988,8 +990,8 @@ function toggle3dOptions() {
|
|||
|
||||
updateValues();
|
||||
|
||||
if (fmg.modules.options3d) return;
|
||||
fmg.modules.options3d = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
document.getElementById("options3dUpdate").addEventListener("click", ThreeD.update);
|
||||
document.getElementById("options3dSave").addEventListener("click", ThreeD.saveScreenshot);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import * as d3 from "d3";
|
||||
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
import {openDialog} from "dialogs";
|
||||
import {turnLayerButtonOff} from "layers";
|
||||
import {restoreDefaultEvents} from "scripts/events";
|
||||
import {clearMainTip, showMainTip, tip} from "scripts/tooltips";
|
||||
|
|
@ -13,6 +14,8 @@ import {byId} from "utils/shorthands";
|
|||
import {parseTransform} from "utils/stringUtils";
|
||||
import {getArea, getAreaUnit, si} from "utils/unitUtils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editProvinces() {
|
||||
if (customization) return;
|
||||
closeDialogs("#provincesEditor, .stable");
|
||||
|
|
@ -25,8 +28,8 @@ export function editProvinces() {
|
|||
const body = byId("provincesBodySection");
|
||||
refreshProvincesEditor();
|
||||
|
||||
if (fmg.modules.editProvinces) return;
|
||||
fmg.modules.editProvinces = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
$("#provincesEditor").dialog({
|
||||
title: "Provinces Editor",
|
||||
|
|
@ -61,7 +64,8 @@ export function editProvinces() {
|
|||
|
||||
if (el.tagName === "FILL-BOX") changeFill(el);
|
||||
else if (cl.contains("name")) editProvinceName(p);
|
||||
else if (cl.contains("coaIcon")) editEmblem("province", "provinceCOA" + p, pack.provinces[p]);
|
||||
else if (cl.contains("coaIcon"))
|
||||
openDialog("emblemEditor", null, {type: "province", id: "provinceCOA" + p, el: pack.provinces[p]});
|
||||
else if (cl.contains("icon-star-empty")) capitalZoomIn(p);
|
||||
else if (cl.contains("icon-flag-empty")) triggerIndependencePromps(p);
|
||||
else if (cl.contains("culturePopulation")) changePopulation(p);
|
||||
|
|
@ -506,6 +510,8 @@ export function editProvinces() {
|
|||
});
|
||||
}
|
||||
|
||||
let isNameEditorLoaded = false;
|
||||
|
||||
function editProvinceName(province) {
|
||||
const p = pack.provinces[province];
|
||||
byId("provinceNameEditor").dataset.province = province;
|
||||
|
|
@ -528,8 +534,8 @@ export function editProvinces() {
|
|||
position: {my: "center", at: "center", of: "svg"}
|
||||
});
|
||||
|
||||
if (fmg.modules.editProvinceName) return;
|
||||
fmg.modules.editProvinceName = true;
|
||||
if (isNameEditorLoaded) return;
|
||||
isNameEditorLoaded = true;
|
||||
|
||||
// add listeners
|
||||
byId("provinceNameEditorShortCulture").addEventListener("click", regenerateShortNameCuture);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import {rn} from "utils/numberUtils";
|
|||
import {capitalize} from "utils/stringUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editRegiment(selector) {
|
||||
if (customization) return;
|
||||
closeDialogs(".stable");
|
||||
|
|
@ -28,8 +30,8 @@ export function editRegiment(selector) {
|
|||
position: {my: "left top", at: "left+10 top+10", of: "#map"}
|
||||
});
|
||||
|
||||
if (fmg.modules.editRegiment) return;
|
||||
fmg.modules.editRegiment = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("regimentNameRestore").addEventListener("click", restoreName);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import {capitalize} from "utils/stringUtils";
|
|||
import {si} from "utils/unitUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function overviewRegiments(state) {
|
||||
if (customization) return;
|
||||
closeDialogs(".stable");
|
||||
|
|
@ -18,8 +20,9 @@ export function overviewRegiments(state) {
|
|||
addLines();
|
||||
$("#regimentsOverview").dialog();
|
||||
|
||||
if (fmg.modules.overviewRegiments) return;
|
||||
fmg.modules.overviewRegiments = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
updateHeaders();
|
||||
|
||||
$("#regimentsOverview").dialog({
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ import {tip, showMainTip, clearMainTip} from "scripts/tooltips";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editReliefIcon() {
|
||||
if (customization) return;
|
||||
closeDialogs(".stable");
|
||||
|
|
@ -26,8 +28,8 @@ export function editReliefIcon() {
|
|||
close: closeReliefEditor
|
||||
});
|
||||
|
||||
if (fmg.modules.editReliefIcon) return;
|
||||
fmg.modules.editReliefIcon = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("reliefIndividual").addEventListener("click", enterIndividualMode);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {tip, clearMainTip} from "scripts/tooltips";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function createRiver() {
|
||||
if (customization) return;
|
||||
closeDialogs();
|
||||
|
|
@ -29,8 +31,8 @@ export function createRiver() {
|
|||
close: closeRiverCreator
|
||||
});
|
||||
|
||||
if (fmg.modules.createRiver) return;
|
||||
fmg.modules.createRiver = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("riverCreatorComplete").addEventListener("click", addRiver);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {rn} from "utils/numberUtils";
|
|||
import {rand} from "utils/probabilityUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editRiver(id) {
|
||||
if (customization) return;
|
||||
if (elSelected && id === elSelected.attr("id")) return;
|
||||
|
|
@ -40,8 +42,8 @@ export function editRiver(id) {
|
|||
close: closeRiverEditor
|
||||
});
|
||||
|
||||
if (fmg.modules.editRiver) return;
|
||||
fmg.modules.editRiver = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("riverCreateSelectingCells").addEventListener("click", createRiver);
|
||||
|
|
@ -173,7 +175,7 @@ export function editRiver(id) {
|
|||
elSelected.attr("d", path);
|
||||
|
||||
updateRiverLength(river);
|
||||
if (fmg.modules.elevation) showEPForRiver(elSelected.node());
|
||||
// TODO: check visibility showEPForRiver(elSelected.node());
|
||||
}
|
||||
|
||||
function addControlPoint() {
|
||||
|
|
@ -237,7 +239,6 @@ export function editRiver(id) {
|
|||
}
|
||||
|
||||
function showElevationProfile() {
|
||||
fmg.modules.elevation = true;
|
||||
showEPForRiver(elSelected.node());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ import * as d3 from "d3";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function overviewRivers() {
|
||||
if (customization) return;
|
||||
closeDialogs("#riversOverview, .stable");
|
||||
|
|
@ -12,8 +14,8 @@ export function overviewRivers() {
|
|||
riversOverviewAddLines();
|
||||
$("#riversOverview").dialog();
|
||||
|
||||
if (fmg.modules.overviewRivers) return;
|
||||
fmg.modules.overviewRivers = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
$("#riversOverview").dialog({
|
||||
title: "Rivers Overview",
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {getNextId} from "utils/nodeUtils";
|
|||
import {round} from "utils/stringUtils";
|
||||
import {closeDialogs} from "dialogs/utils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editRoute(onClick) {
|
||||
if (customization) return;
|
||||
if (!onClick && elSelected && d3.event.target.id === elSelected.attr("id")) return;
|
||||
|
|
@ -29,8 +31,8 @@ export function editRoute(onClick) {
|
|||
viewbox.on("touchmove mousemove", showEditorTips);
|
||||
if (onClick) toggleRouteCreationMode();
|
||||
|
||||
if (fmg.modules.editRoute) return;
|
||||
fmg.modules.editRoute = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("routeGroupsShow").addEventListener("click", showGroupSection);
|
||||
|
|
@ -106,11 +108,10 @@ export function editRoute(onClick) {
|
|||
const l = elSelected.node().getTotalLength();
|
||||
routeLength.innerHTML = rn(l * distanceScaleInput.value) + " " + distanceUnitInput.value;
|
||||
|
||||
if (fmg.modules.elevation) showEPForRoute(elSelected.node());
|
||||
// TODO: check visibility showEPForRoute(elSelected.node());
|
||||
}
|
||||
|
||||
function showElevationProfile() {
|
||||
fmg.modules.elevation = true;
|
||||
showEPForRoute(elSelected.node());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -131,6 +131,8 @@ function applyStyleWithUiRefresh(style) {
|
|||
setPresetRemoveButtonVisibiliy();
|
||||
}
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
function addStylePreset() {
|
||||
$("#styleSaver").dialog({title: "Style Saver", width: "26em", position: {my: "center", at: "center", of: "svg"}});
|
||||
|
||||
|
|
@ -139,8 +141,8 @@ function addStylePreset() {
|
|||
styleSaverJSON.value = JSON.stringify(collectStyleData(), null, 2);
|
||||
checkName();
|
||||
|
||||
if (fmg.modules.saveStyle) return;
|
||||
fmg.modules.saveStyle = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
// add listeners
|
||||
document.getElementById("styleSaverName").addEventListener("input", checkName);
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ async function openEmblemEditor() {
|
|||
}
|
||||
|
||||
await COArenderer.trigger(id, el.coa);
|
||||
editEmblem(type, id, el);
|
||||
openDialog("emblemEditor", null, {type, id, el});
|
||||
}
|
||||
|
||||
function regenerateRivers() {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import {tip} from "scripts/tooltips";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {round, parseTransform} from "utils/stringUtils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editWorld() {
|
||||
if (customization) return;
|
||||
$("#worldConfigurator").dialog({
|
||||
|
|
@ -40,8 +42,8 @@ export function editWorld() {
|
|||
updateGlobeTemperature();
|
||||
updateGlobePosition();
|
||||
|
||||
if (fmg.modules.editWorld) return;
|
||||
fmg.modules.editWorld = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
document.getElementById("worldControls").addEventListener("input", e => updateWorld(e.target));
|
||||
globe.select("#globeWindArrows").on("click", changeWind);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import {getNextId} from "utils/nodeUtils";
|
|||
import {rn} from "utils/numberUtils";
|
||||
import {getArea, getAreaUnit, si} from "utils/unitUtils";
|
||||
|
||||
let isLoaded = false;
|
||||
|
||||
export function editZones() {
|
||||
closeDialogs();
|
||||
if (!layerIsOn("toggleZones")) toggleZones();
|
||||
|
|
@ -17,8 +19,8 @@ export function editZones() {
|
|||
updateFilters();
|
||||
zonesEditorAddLines();
|
||||
|
||||
if (fmg.modules.editZones) return;
|
||||
fmg.modules.editZones = true;
|
||||
if (isLoaded) return;
|
||||
isLoaded = true;
|
||||
|
||||
$("#zonesEditor").dialog({
|
||||
title: "Zones Editor",
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ function clicked() {
|
|||
const p = d3.mouse(this);
|
||||
const i = findCell(p[0], p[1]);
|
||||
|
||||
if (grand.id === "emblems") editEmblem();
|
||||
if (grand.id === "emblems") openDialog("emblemEditor", null, defineEmblemData(+el.dataset.i, parent));
|
||||
else if (parent.id === "rivers") editRiver(el.id);
|
||||
else if (grand.id === "routes") editRoute();
|
||||
else if (el.tagName === "tspan" && grand.parentNode.parentNode.id === "labels") editLabel();
|
||||
|
|
@ -45,6 +45,16 @@ function clicked() {
|
|||
} else if (grand.id === "lakes") editLake();
|
||||
}
|
||||
|
||||
function defineEmblemData(i, parent) {
|
||||
const [g, type] =
|
||||
parent.id === "burgEmblems"
|
||||
? [pack.burgs, "burg"]
|
||||
: parent.id === "provinceEmblems"
|
||||
? [pack.provinces, "province"]
|
||||
: [pack.states, "state"];
|
||||
return {type, id: type + "COA" + i, el: g[i]};
|
||||
}
|
||||
|
||||
const onMouseMove = debounce(handleMouseMove, 100);
|
||||
function handleMouseMove() {
|
||||
const point = d3.mouse(this);
|
||||
|
|
|
|||
5
src/types/overrides.d.ts
vendored
5
src/types/overrides.d.ts
vendored
|
|
@ -5,11 +5,6 @@ interface Navigator {
|
|||
}
|
||||
|
||||
interface Window {
|
||||
fmg: {
|
||||
modules: {
|
||||
[key: string]: boolean;
|
||||
};
|
||||
};
|
||||
mapCoordinates: IMapCoordinates;
|
||||
// untyped IIFE modules
|
||||
$: typeof $;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue