mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 09:41:24 +01:00
fix: allow to load smaller namesbase without issues on regeneration
This commit is contained in:
parent
56597d961d
commit
c795ac6c30
6 changed files with 30 additions and 26 deletions
|
|
@ -4770,7 +4770,7 @@
|
||||||
<span style="margin-left: 2px">Names data: </span>
|
<span style="margin-left: 2px">Names data: </span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="namesbaseBody" style="margin-block: 2px">
|
<div id="namesbaseBody" style="margin-block: 2px; width: auto">
|
||||||
<textarea
|
<textarea
|
||||||
id="namesbaseTextarea"
|
id="namesbaseTextarea"
|
||||||
data-base="0"
|
data-base="0"
|
||||||
|
|
@ -4779,6 +4779,7 @@
|
||||||
placeholder="Provide a names data: a comma separated list of source names"
|
placeholder="Provide a names data: a comma separated list of source names"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
spellcheck="false"
|
spellcheck="false"
|
||||||
|
style="resize: none"
|
||||||
></textarea>
|
></textarea>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -8051,7 +8052,7 @@
|
||||||
<script src="modules/river-generator.js?v=1.99.05"></script>
|
<script src="modules/river-generator.js?v=1.99.05"></script>
|
||||||
<script src="modules/lakes.js?v=1.99.00"></script>
|
<script src="modules/lakes.js?v=1.99.00"></script>
|
||||||
<script src="modules/biomes.js?v=1.99.00"></script>
|
<script src="modules/biomes.js?v=1.99.00"></script>
|
||||||
<script src="modules/names-generator.js?v=1.87.14"></script>
|
<script src="modules/names-generator.js?v=1.105.11"></script>
|
||||||
<script src="modules/cultures-generator.js?v=1.99.05"></script>
|
<script src="modules/cultures-generator.js?v=1.99.05"></script>
|
||||||
<script src="modules/burgs-and-states.js?v=1.105.7"></script>
|
<script src="modules/burgs-and-states.js?v=1.105.7"></script>
|
||||||
<script src="modules/provinces-generator.js?v=1.104.0"></script>
|
<script src="modules/provinces-generator.js?v=1.104.0"></script>
|
||||||
|
|
@ -8076,13 +8077,13 @@
|
||||||
|
|
||||||
<script defer src="modules/relief-icons.js?v=1.99.05"></script>
|
<script defer src="modules/relief-icons.js?v=1.99.05"></script>
|
||||||
<script defer src="modules/ui/style.js?v=1.104.0"></script>
|
<script defer src="modules/ui/style.js?v=1.104.0"></script>
|
||||||
<script defer src="modules/ui/editors.js?v=1.105.2"></script>
|
<script defer src="modules/ui/editors.js?v=1.105.11"></script>
|
||||||
<script defer src="modules/ui/tools.js?v=1.104.0"></script>
|
<script defer src="modules/ui/tools.js?v=1.104.0"></script>
|
||||||
<script defer src="modules/ui/world-configurator.js?v=1.105.4"></script>
|
<script defer src="modules/ui/world-configurator.js?v=1.105.4"></script>
|
||||||
<script defer src="modules/ui/heightmap-editor.js?v=1.105.2"></script>
|
<script defer src="modules/ui/heightmap-editor.js?v=1.105.2"></script>
|
||||||
<script defer src="modules/ui/provinces-editor.js?v=1.104.0"></script>
|
<script defer src="modules/ui/provinces-editor.js?v=1.104.0"></script>
|
||||||
<script defer src="modules/ui/biomes-editor.js?v=1.99.05"></script>
|
<script defer src="modules/ui/biomes-editor.js?v=1.99.05"></script>
|
||||||
<script defer src="modules/ui/namesbase-editor.js?v=1.99.00"></script>
|
<script defer src="modules/ui/namesbase-editor.js?v=1.105.11"></script>
|
||||||
<script defer src="modules/ui/elevation-profile.js?v=1.99.00"></script>
|
<script defer src="modules/ui/elevation-profile.js?v=1.99.00"></script>
|
||||||
<script defer src="modules/ui/temperature-graph.js?v=1.99.00"></script>
|
<script defer src="modules/ui/temperature-graph.js?v=1.99.00"></script>
|
||||||
<script defer src="modules/ui/routes-editor.js?v=1.104.3"></script>
|
<script defer src="modules/ui/routes-editor.js?v=1.104.3"></script>
|
||||||
|
|
|
||||||
|
|
@ -266,6 +266,7 @@ function getTypeOptions(type) {
|
||||||
function getBaseOptions(base) {
|
function getBaseOptions(base) {
|
||||||
let options = "";
|
let options = "";
|
||||||
nameBases.forEach((n, i) => (options += `<option ${base === i ? "selected" : ""} value="${i}">${n.name}</option>`));
|
nameBases.forEach((n, i) => (options += `<option ${base === i ? "selected" : ""} value="${i}">${n.name}</option>`));
|
||||||
|
if (!nameBases[base]) options += `<option selected value="${base}">removed</option>`; // in case namesbase was removed
|
||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,18 +48,28 @@ window.Names = (function () {
|
||||||
return chain;
|
return chain;
|
||||||
};
|
};
|
||||||
|
|
||||||
// update chain for specific base
|
const updateChain = i => {
|
||||||
const updateChain = i => (chains[i] = nameBases[i] || nameBases[i].b ? calculateChain(nameBases[i].b) : null);
|
chains[i] = nameBases[i]?.b ? calculateChain(nameBases[i].b) : null;
|
||||||
|
};
|
||||||
|
|
||||||
// update chains for all used bases
|
const clearChains = () => {
|
||||||
const clearChains = () => (chains = []);
|
chains = [];
|
||||||
|
};
|
||||||
|
|
||||||
// generate name using Markov's chain
|
// generate name using Markov's chain
|
||||||
const getBase = function (base, min, max, dupl) {
|
const getBase = function (base, min, max, dupl) {
|
||||||
if (base === undefined) {
|
if (base === undefined) return ERROR && console.error("Please define a base");
|
||||||
ERROR && console.error("Please define a base");
|
|
||||||
return;
|
if (nameBases[base] === undefined) {
|
||||||
|
if (nameBases[0]) {
|
||||||
|
WARN && console.warn("Namebase " + base + " is not found. First available namebase will be used");
|
||||||
|
base = 0;
|
||||||
|
} else {
|
||||||
|
ERROR && console.error("Namebase " + base + " is not found");
|
||||||
|
return "ERROR";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!chains[base]) updateChain(base);
|
if (!chains[base]) updateChain(base);
|
||||||
|
|
||||||
const data = chains[base];
|
const data = chains[base];
|
||||||
|
|
@ -141,16 +151,8 @@ window.Names = (function () {
|
||||||
|
|
||||||
// generate short name for base
|
// generate short name for base
|
||||||
const getBaseShort = function (base) {
|
const getBaseShort = function (base) {
|
||||||
if (nameBases[base] === undefined) {
|
const min = nameBases[base] ? nameBases[base].min - 1 : null;
|
||||||
tip(
|
const max = min ? Math.max(nameBases[base].max - 2, min) : null;
|
||||||
`Namebase ${base} does not exist. Please upload custom namebases of change the base in Cultures Editor`,
|
|
||||||
false,
|
|
||||||
"error"
|
|
||||||
);
|
|
||||||
base = 1;
|
|
||||||
}
|
|
||||||
const min = nameBases[base].min - 1;
|
|
||||||
const max = Math.max(nameBases[base].max - 2, min);
|
|
||||||
return getBase(base, min, max, "", 0);
|
return getBase(base, min, max, "", 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1255,7 +1255,7 @@ async function editStates() {
|
||||||
|
|
||||||
async function editCultures() {
|
async function editCultures() {
|
||||||
if (customization) return;
|
if (customization) return;
|
||||||
const Editor = await import("../dynamic/editors/cultures-editor.js?v=1.104.0");
|
const Editor = await import("../dynamic/editors/cultures-editor.js?v=1.105.11");
|
||||||
Editor.open();
|
Editor.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ function editNamesbase() {
|
||||||
|
|
||||||
$("#namesbaseEditor").dialog({
|
$("#namesbaseEditor").dialog({
|
||||||
title: "Namesbase Editor",
|
title: "Namesbase Editor",
|
||||||
width: "auto",
|
width: "60vw",
|
||||||
position: {my: "center", at: "center", of: "svg"}
|
position: {my: "center", at: "center", of: "svg"}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -66,7 +66,7 @@ function editNamesbase() {
|
||||||
function updateExamples() {
|
function updateExamples() {
|
||||||
const base = +document.getElementById("namesbaseSelect").value;
|
const base = +document.getElementById("namesbaseSelect").value;
|
||||||
let examples = "";
|
let examples = "";
|
||||||
for (let i = 0; i < 10; i++) {
|
for (let i = 0; i < 7; i++) {
|
||||||
const example = Names.getBase(base);
|
const example = Names.getBase(base);
|
||||||
if (example === undefined) {
|
if (example === undefined) {
|
||||||
examples = "Cannot generate examples. Please verify the data";
|
examples = "Cannot generate examples. Please verify the data";
|
||||||
|
|
@ -250,7 +250,7 @@ function editNamesbase() {
|
||||||
const [rawName, min, max, d, m, rawNames] = base.split("|");
|
const [rawName, min, max, d, m, rawNames] = base.split("|");
|
||||||
const name = rawName.replace(unsafe, "");
|
const name = rawName.replace(unsafe, "");
|
||||||
const names = rawNames.replace(unsafe, "");
|
const names = rawNames.replace(unsafe, "");
|
||||||
nameBases.push({name, min, max, d, m, b: names});
|
nameBases.push({name, min: +min, max: +max, d, m: +m, b: names});
|
||||||
});
|
});
|
||||||
|
|
||||||
createBasesList();
|
createBasesList();
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
*
|
*
|
||||||
* Example: 1.102.2 -> Major version 1, Minor version 102, Patch version 2
|
* Example: 1.102.2 -> Major version 1, Minor version 102, Patch version 2
|
||||||
*/
|
*/
|
||||||
const VERSION = "1.105.10";
|
const VERSION = "1.105.11";
|
||||||
if (parseMapVersion(VERSION) !== VERSION) alert("versioning.js: Invalid format or parsing function");
|
if (parseMapVersion(VERSION) !== VERSION) alert("versioning.js: Invalid format or parsing function");
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue