mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-18 18:11:24 +01:00
v1.1.12
This commit is contained in:
parent
8ff1fe46b8
commit
76a5ade3d0
12 changed files with 214 additions and 128 deletions
|
|
@ -228,7 +228,7 @@ function editBurg(id) {
|
|||
}
|
||||
|
||||
function generateNameRandom() {
|
||||
const base = rand(nameBase.length-1);
|
||||
const base = rand(nameBases.length-1);
|
||||
burgName.value = Names.getBase(base);
|
||||
changeName();
|
||||
}
|
||||
|
|
@ -305,10 +305,7 @@ function editBurg(id) {
|
|||
const temple = +burg.temple;
|
||||
const shanty = +burg.shanty;
|
||||
|
||||
const url = `http://fantasycities.watabou.ru/?
|
||||
name=${name}&size=${size}&seed=${s}&hub=${hub}&random=0&continuous=0
|
||||
&river=${river}&coast=${coast}
|
||||
&citadel=${citadel}&plaza=${plaza}&temple=${temple}&walls=${walls}&shantytown=${shanty}`;
|
||||
const url = `http://fantasycities.watabou.ru/?name=${name}&size=${size}&seed=${s}&hub=${hub}&random=0&continuous=0&river=${river}&coast=${coast}&citadel=${citadel}&plaza=${plaza}&temple=${temple}&walls=${walls}&shantytown=${shanty}`;
|
||||
openURL(url);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -947,7 +947,7 @@ function getHeight(h) {
|
|||
void function createColorPallete() {
|
||||
const container = d3.select("#colorScheme");
|
||||
container.selectAll("div").data(d3.range(101)).enter().append("div").attr("data-color", i => i)
|
||||
.style("background-color", i => color(1-i/100))
|
||||
.style("background-color", i => color(1-(i < 20 ? i-5 : i) / 100))
|
||||
.style("width", i => i < 20 || i > 70 ? ".2em" : ".1em")
|
||||
.on("touchmove mousemove", showPalleteHeight).on("click", assignHeight);
|
||||
}()
|
||||
|
|
@ -1056,8 +1056,7 @@ function getHeight(h) {
|
|||
|
||||
function assignHeight() {
|
||||
const height = +this.getAttribute("data-color");
|
||||
const rgb = color(1 - height/100);
|
||||
|
||||
const rgb = color(1 - (height < 20 ? height-5 : height) / 100);
|
||||
const selectedColor = imageConverter.querySelector("div.selectedColor");
|
||||
selectedColor.style.backgroundColor = rgb;
|
||||
selectedColor.setAttribute("data-color", rgb);
|
||||
|
|
@ -1084,7 +1083,7 @@ function getHeight(h) {
|
|||
const colorFrom = el.getAttribute("data-color");
|
||||
const lab = d3.lab(colorFrom);
|
||||
const normalized = type === "hue" ? rn(normalize(lab.b + lab.a / 2, -50, 200), 2) : rn(normalize(lab.l, -15, 100), 2);
|
||||
const colorTo = color(1 - normalized);
|
||||
const colorTo = color(1 - (normalized < .2 ? normalized-.05 : normalized));
|
||||
const heightTo = normalized * 100;
|
||||
|
||||
terrs.selectAll("polygon[fill='" + colorFrom + "']").attr("fill", colorTo).attr("data-height", heightTo);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ function editNamesbase() {
|
|||
function updateInputs() {
|
||||
const base = +document.getElementById("namesbaseSelect").value;
|
||||
if (!nameBases[base]) {tip(`Namesbase ${base} is not defined`, false, "error"); return;}
|
||||
document.getElementById("namesbaseTextarea").value = nameBase[base].join(", ");
|
||||
document.getElementById("namesbaseTextarea").value = nameBases[base].b;
|
||||
document.getElementById("namesbaseName").value = nameBases[base].name;
|
||||
document.getElementById("namesbaseMin").value = nameBases[base].min;
|
||||
document.getElementById("namesbaseMax").value = nameBases[base].max;
|
||||
|
|
@ -66,13 +66,13 @@ function editNamesbase() {
|
|||
|
||||
function updateNamesData() {
|
||||
const base = +document.getElementById("namesbaseSelect").value;
|
||||
const data = document.getElementById("namesbaseTextarea").value.replace(/ /g, "").split(",");
|
||||
if (data.length < 3) {
|
||||
const b = document.getElementById("namesbaseTextarea").value.replace(/ /g, "");
|
||||
if (b.split(",").length < 3) {
|
||||
tip("The names data provided is not correct", false, "error");
|
||||
document.getElementById("namesbaseTextarea").value = nameBase[base].join(", ");
|
||||
document.getElementById("namesbaseTextarea").value = nameBases[base].b;
|
||||
return;
|
||||
}
|
||||
nameBase[base] = data;
|
||||
nameBases[base].b = b;
|
||||
Names.updateChain(base);
|
||||
}
|
||||
|
||||
|
|
@ -108,11 +108,11 @@ function editNamesbase() {
|
|||
|
||||
function namesbaseAdd() {
|
||||
const base = nameBases.length;
|
||||
nameBases.push({name: "Base" + base, min: 5, max: 12, d: "", m: 0});
|
||||
nameBase[base] = ["This", "is", "an", "example", "data", "Please", "replace", "with", "an", "actual", "names", "data", "with", "at", "least", "100", "names"];
|
||||
const b = "This,is,an,example,of,name,base,showing,correct,format,It,should,have,at,least,one,hundred,names,separated,with,comma";
|
||||
nameBases.push({name: "Base" + base, min: 5, max: 12, d: "", m: 0, b});
|
||||
document.getElementById("namesbaseSelect").add(new Option("Base" + base, base));
|
||||
document.getElementById("namesbaseSelect").value = base;
|
||||
document.getElementById("namesbaseTextarea").value = nameBase[base].join(", ");
|
||||
document.getElementById("namesbaseTextarea").value = b;
|
||||
document.getElementById("namesbaseName").value = "Base" + base;
|
||||
document.getElementById("namesbaseMin").value = 5;
|
||||
document.getElementById("namesbaseMax").value = 12;
|
||||
|
|
@ -127,19 +127,18 @@ function editNamesbase() {
|
|||
buttons: {
|
||||
Restore: function() {
|
||||
$(this).dialog("close");
|
||||
Names.clearChains();
|
||||
nameBases = Names.getNameBases();
|
||||
nameBase = Names.getNameBase();
|
||||
createBasesList();
|
||||
updateInputs();
|
||||
Names.updateChains();
|
||||
},
|
||||
Cancel: function() {$(this).dialog("close");}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function namesbaseDownload() {
|
||||
const data = nameBases.map((b,i) => `${b.name}|${b.min}|${b.max}|${b.d}|${b.m}|${nameBase[i]}`);
|
||||
const data = nameBases.map((b,i) => `${b.name}|${b.min}|${b.max}|${b.d}|${b.m}|${b.b}`);
|
||||
const dataBlob = new Blob([data.join("\r\n")], {type:"text/plain"});
|
||||
const url = window.URL.createObjectURL(dataBlob);
|
||||
const link = document.createElement("a");
|
||||
|
|
@ -158,18 +157,17 @@ function editNamesbase() {
|
|||
const data = dataLoaded.split("\r\n");
|
||||
if (!data || !data[0]) {tip("Cannot load a namesbase. Please check the data format", false, "error"); return;}
|
||||
|
||||
nameBases = [], nameBase = [];
|
||||
Names.clearChains();
|
||||
nameBases = [];
|
||||
data.forEach(d => {
|
||||
const e = d.split("|");
|
||||
nameBases.push({name:e[0], min:e[1], max:e[2], d:e[3], m:e[4]});
|
||||
nameBase.push(e[5].split(","));
|
||||
nameBases.push({name:e[0], min:e[1], max:e[2], d:e[3], m:e[4], b:e[5]});
|
||||
});
|
||||
|
||||
createBasesList();
|
||||
updateInputs();
|
||||
Names.updateChains();
|
||||
};
|
||||
|
||||
fileReader.readAsText(fileToLoad, "UTF-8");
|
||||
fileReader.readAsText(fileToLoad, "UTF-8");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ function editProvinces() {
|
|||
if (cl.contains("icon-trash-empty")) removeProvince(p);
|
||||
});
|
||||
|
||||
body.addEventListener("input", function(ev) {
|
||||
body.addEventListener("change", function(ev) {
|
||||
const el = ev.target, cl = el.classList, line = el.parentNode, p = +line.dataset.id;
|
||||
if (cl.contains("cultureBase")) changeCapital(p, line, el.value);
|
||||
});
|
||||
|
|
@ -395,7 +395,7 @@ function editProvinces() {
|
|||
}
|
||||
|
||||
function regenerateShortNameRandom() {
|
||||
const base = rand(nameBase.length-1);
|
||||
const base = rand(nameBases.length-1);
|
||||
const name = Names.getState(Names.getBase(base), undefined, base);
|
||||
document.getElementById("provinceNameEditorShort").value = name;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ function editReligions() {
|
|||
body.querySelectorAll("div.states").forEach(el => el.addEventListener("click", selectReligionOnLineClick));
|
||||
body.querySelectorAll("rect.zoneFill").forEach(el => el.addEventListener("click", religionChangeColor));
|
||||
body.querySelectorAll("div > input.religionName").forEach(el => el.addEventListener("input", religionChangeName));
|
||||
body.querySelectorAll("div > select.religionType").forEach(el => el.addEventListener("input", religionChangeType));
|
||||
body.querySelectorAll("div > select.religionType").forEach(el => el.addEventListener("change", religionChangeType));
|
||||
body.querySelectorAll("div > input.religionForm").forEach(el => el.addEventListener("input", religionChangeForm));
|
||||
body.querySelectorAll("div > input.religionDeity").forEach(el => el.addEventListener("input", religionChangeDeity));
|
||||
body.querySelectorAll("div > span.icon-arrows-cw").forEach(el => el.addEventListener("click", regenerateDeity));
|
||||
|
|
|
|||
|
|
@ -53,10 +53,14 @@ function editStates() {
|
|||
const el = ev.target, cl = el.classList, line = el.parentNode, state = +line.dataset.id;
|
||||
if (cl.contains("stateCapital")) stateChangeCapitalName(state, line, el.value); else
|
||||
if (cl.contains("cultureType")) stateChangeType(state, line, el.value); else
|
||||
if (cl.contains("stateCulture")) stateChangeCulture(state, line, el.value); else
|
||||
if (cl.contains("statePower")) stateChangeExpansionism(state, line, el.value);
|
||||
});
|
||||
|
||||
body.addEventListener("change", function(ev) {
|
||||
const el = ev.target, cl = el.classList, line = el.parentNode, state = +line.dataset.id;
|
||||
if (cl.contains("stateCulture")) stateChangeCulture(state, line, el.value);
|
||||
});
|
||||
|
||||
function refreshStatesEditor() {
|
||||
BurgsAndStates.collectStatistics();
|
||||
statesEditorAddLines();
|
||||
|
|
@ -243,7 +247,7 @@ function editStates() {
|
|||
}
|
||||
|
||||
function regenerateShortNameRandom() {
|
||||
const base = rand(nameBase.length-1);
|
||||
const base = rand(nameBases.length-1);
|
||||
const name = Names.getState(Names.getBase(base), undefined, base);
|
||||
document.getElementById("stateNameEditorShort").value = name;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue