mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 17:51:24 +01:00
Implement tiered route system with enhanced CSV export
This commit introduces a comprehensive tiered route generation system that replaces the basic route categories with specific route types based on medieval transportation networks: Route System Changes: - Major Sea Routes (majorSea): Long-distance maritime trade routes connecting capitals and major ports across water bodies, simulating Hanseatic League-style trade networks - Regional Sea Routes (regional): Shorter routes within specific water bodies for high-traffic local maritime trade - Royal Roads (royal): Capital-to-capital connections for diplomatic and military movement using minimum spanning tree algorithm - Market Roads (market): Regional trade networks connecting market towns with 15-30km spacing based on medieval market day travel distances - Local Roads (local): Village-to-market connections linking settlements to their nearest commercial centers - Footpaths (footpath): Hamlet paths with 3-8km range for local community connections Implementation Details: - Removed fallback calls to legacy route generation functions to ensure clean tiered system operation - Routes now include both 'group' (general category) and 'type' (specific tier) properties for detailed classification - Enhanced route generation uses settlement hierarchy and geographic constraints for realistic medieval transportation patterns - Route cost modifiers applied based on route type importance (royal and majorSea routes have priority routing) CSV Export Enhancements: - Added 'Type' column to routes CSV export to distinguish between route tiers - Updated routes overview UI to display both group and type information - Enhanced header layout to accommodate new type column - Routes can now be analyzed by both general category and specific function Technical Changes: - Fixed route ID assignment conflicts between immediate and background processing phases - Improved route data structure consistency across generation phases - Updated routes overview display to show detailed route type information - Enhanced CSV export function to include route type data from pack.routes
This commit is contained in:
parent
8ec53293b7
commit
82eb441845
3 changed files with 17 additions and 16 deletions
|
|
@ -37,16 +37,19 @@ function overviewRoutes() {
|
|||
route.length = route.length || Routes.getLength(route.i);
|
||||
const length = rn(route.length * distanceScale) + " " + distanceUnitInput.value;
|
||||
|
||||
const routeType = route.type || route.group; // Use specific type if available
|
||||
lines += /* html */ `<div
|
||||
class="states"
|
||||
data-id="${route.i}"
|
||||
data-name="${route.name}"
|
||||
data-group="${route.group}"
|
||||
data-type="${routeType}"
|
||||
data-length="${route.length}"
|
||||
>
|
||||
<span data-tip="Click to focus on route" class="icon-dot-circled pointer"></span>
|
||||
<div data-tip="Route name" style="width: 15em; margin-left: 0.4em;">${route.name}</div>
|
||||
<div data-tip="Route group" style="width: 8em;">${route.group}</div>
|
||||
<div data-tip="Route name" style="width: 12em; margin-left: 0.4em;">${route.name}</div>
|
||||
<div data-tip="Route group" style="width: 6em;">${route.group}</div>
|
||||
<div data-tip="Route type" style="width: 6em;">${routeType}</div>
|
||||
<div data-tip="Route length" style="width: 6em;">${length}</div>
|
||||
<span data-tip="Edit route" class="icon-pencil"></span>
|
||||
<span class="locks pointer ${
|
||||
|
|
@ -99,13 +102,16 @@ function overviewRoutes() {
|
|||
}
|
||||
|
||||
function downloadRoutesData() {
|
||||
// Export all route types: roads (main), secondary (plaza connections), trails, searoutes
|
||||
let data = "Id,Route,Group,Length\n"; // headers
|
||||
// Export all route types with specific type identifiers
|
||||
let data = "Id,Route,Group,Type,Length\n"; // headers
|
||||
|
||||
body.querySelectorAll(":scope > div").forEach(function (el) {
|
||||
const d = el.dataset;
|
||||
const routeId = +d.id;
|
||||
const route = pack.routes.find(r => r.i === routeId);
|
||||
const routeType = route?.type || d.group; // Use specific type if available, fallback to group
|
||||
const length = rn(d.length * distanceScale) + " " + distanceUnitInput.value;
|
||||
data += [d.id, d.name, d.group, length].join(",") + "\n";
|
||||
data += [d.id, d.name, d.group, routeType, length].join(",") + "\n";
|
||||
});
|
||||
|
||||
const name = getFileName("Routes") + ".csv";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue