diff --git a/index.html b/index.html index d5a3b000a..913f4b296 100644 --- a/index.html +++ b/index.html @@ -8076,7 +8076,7 @@ - + diff --git a/modules/dynamic/editors/cultures-editor.js b/modules/dynamic/editors/cultures-editor.js index b8e43608e..dee807dbd 100644 --- a/modules/dynamic/editors/cultures-editor.js +++ b/modules/dynamic/editors/cultures-editor.js @@ -345,10 +345,13 @@ function cultureChangeName() { } function cultureRegenerateName() { - const culture = +this.parentNode.dataset.id; - const name = Names.getCultureShort(culture); + const cultureId = +this.parentNode.dataset.id; + const base = pack.cultures[cultureId].base; + if (!nameBases[base]) return tip("Namesbase is not defined, please select a valid namesbase", false, "error", 5000); + + const name = Names.getCultureShort(cultureId); this.parentNode.querySelector("input.cultureName").value = name; - pack.cultures[culture].name = name; + pack.cultures[cultureId].name = name; } function cultureChangeExpansionism() { @@ -494,12 +497,15 @@ function cultureRegenerateBurgs() { if (customization === 4) return; const cultureId = +this.parentNode.dataset.id; - const cBurgs = pack.burgs.filter(b => b.culture === cultureId && !b.lock); - cBurgs.forEach(b => { + const base = pack.cultures[cultureId].base; + if (!nameBases[base]) return tip("Namesbase is not defined, please select a valid namesbase", false, "error", 5000); + + const cultureBurgs = pack.burgs.filter(b => b.culture === cultureId && !b.removed && !b.lock); + cultureBurgs.forEach(b => { b.name = Names.getCulture(cultureId); labels.select("[data-id='" + b.i + "']").text(b.name); }); - tip(`Names for ${cBurgs.length} burgs are regenerated`, false, "success"); + tip(`Names for ${cultureBurgs.length} burgs are regenerated`, false, "success"); } function removeCulture(cultureId) { @@ -849,14 +855,15 @@ async function uploadCulturesData() { this.value = ""; const csv = await file.text(); const data = d3.csvParse(csv, d => ({ - i: +d.Id, name: d.Name, + i: +d.Id, color: d.Color, expansionism: +d.Expansionism, type: d.Type, population: +d.Population, emblemsShape: d["Emblems Shape"], - origins: d.Origins + origins: d.Origins, + namesbase: d.Namesbase })); const {cultures, cells} = pack; @@ -883,7 +890,7 @@ async function uploadCulturesData() { culture.i ); } else { - current = {i: cultures.length, center: ra(populated), area: 0, cells: 0, origin: 0, rural: 0, urban: 0}; + current = {i: cultures.length, center: ra(populated), area: 0, cells: 0, origins: [0], rural: 0, urban: 0}; cultures.push(current); } @@ -903,6 +910,10 @@ async function uploadCulturesData() { else current.type = "Generic"; } + culture.origins = current.i ? restoreOrigins(culture.origins || "") : [null]; + current.shield = shapes.includes(culture.emblemsShape) ? culture.emblemsShape : "heater"; + current.base = nameBases.findIndex(n => n.name == culture.namesbase); // can be -1 if namesbase is not found + function restoreOrigins(originsString) { const originNames = originsString .replaceAll('"', "") @@ -918,12 +929,6 @@ async function uploadCulturesData() { current.origins = originIds.filter(id => id !== null); if (!current.origins.length) current.origins = [0]; } - - culture.origins = current.i ? restoreOrigins(culture.origins || "") : [null]; - current.shield = shapes.includes(culture.emblemsShape) ? culture.emblemsShape : "heater"; - - const nameBaseIndex = nameBases.findIndex(n => n.name == culture.namesbase); - current.base = nameBaseIndex === -1 ? 0 : nameBaseIndex; } cultures.filter(c => c.removed).forEach(c => removeCulture(c.i)); diff --git a/modules/ui/editors.js b/modules/ui/editors.js index 13380155b..a7df5ca31 100644 --- a/modules/ui/editors.js +++ b/modules/ui/editors.js @@ -1255,7 +1255,7 @@ async function editStates() { async function editCultures() { if (customization) return; - const Editor = await import("../dynamic/editors/cultures-editor.js?v=1.105.11"); + const Editor = await import("../dynamic/editors/cultures-editor.js?v=1.105.23"); Editor.open(); } diff --git a/versioning.js b/versioning.js index fa8da7ec1..e1d7b9f0c 100644 --- a/versioning.js +++ b/versioning.js @@ -13,7 +13,7 @@ * Example: 1.102.2 -> Major version 1, Minor version 102, Patch version 2 */ -const VERSION = "1.105.22"; +const VERSION = "1.105.23"; if (parseMapVersion(VERSION) !== VERSION) alert("versioning.js: Invalid format or parsing function"); {