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");
{