feat: route - generate names

This commit is contained in:
Azgaar 2024-05-04 15:51:52 +02:00
parent 865c10cec6
commit 6936f37f9f
3 changed files with 166 additions and 37 deletions

View file

@ -41,8 +41,7 @@ function editRoute(id) {
byId("routeRemove").on("click", removeRoute);
byId("routeName").on("input", changeName);
byId("routeGroup").on("input", changeGroup);
byId("routeNameCulture").on("click", generateNameCulture);
byId("routeNameRandom").on("click", generateNameRandom);
byId("routeGenerateName").on("click", generateName);
function getRoute() {
const routeId = +elSelected.attr("id").slice(5);
@ -53,7 +52,7 @@ function editRoute(id) {
function updateRouteData() {
const route = getRoute();
route.name = route.name || generateRouteName(route);
route.name = route.name || Routes.generateName(route);
byId("routeName").value = route.name;
const routeGroup = byId("routeGroup");
@ -68,23 +67,6 @@ function editRoute(id) {
byId("routeElevationProfile").style.display = isWater ? "none" : "inline-block";
}
function generateRouteName(route) {
const {cells, burgs} = pack;
const burgName = (() => {
const priority = [route.cells.at(-1), route.cells.at(0), route.cells.slice(1, -1).reverse()];
for (const cellId of priority) {
const burgId = cells.burg[cellId];
if (burgId) return burgs[burgId].name;
}
})();
const type = route.group.replace(/s$/, "");
if (burgName) return `${getAdjective(burgName)} ${type}`;
return "Unnamed route";
}
function updateRouteLength(route) {
route.length = rn(elSelected.node().getTotalLength() / 2, 2);
const lengthUI = `${rn(route.length * distanceScaleInput.value)} ${distanceUnitInput.value}`;
@ -239,16 +221,9 @@ function editRoute(id) {
getRoute().group = group;
}
function generateNameCulture() {
function generateName() {
const route = getRoute();
const cell = ra(route.cells);
const cultureId = pack.cells.culture[cell];
route.name = routeName.value = Names.getCulture(cultureId);
}
function generateNameRandom() {
const route = getRoute();
route.name = routeName.value = Names.getBase(rand(nameBases.length - 1));
route.name = routeName.value = Routes.generateName(route);
}
function showRouteElevationProfile() {