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:
barrulus 2025-08-14 23:47:14 +01:00
parent 8ec53293b7
commit 82eb441845
3 changed files with 17 additions and 16 deletions

View file

@ -353,9 +353,6 @@ window.Routes = (function () {
});
}
// Also use existing main roads logic for primary centers
const mainRoads = generateMainRoads();
marketRoads.push(...mainRoads);
TIME && console.timeEnd("generateMarketRoads");
return marketRoads;
@ -428,9 +425,6 @@ window.Routes = (function () {
}
});
// Also include existing secondary roads
const secondaryRoads = generateSecondaryRoads();
localRoads.push(...secondaryRoads);
TIME && console.timeEnd("generateLocalRoads");
return localRoads;
@ -504,9 +498,6 @@ window.Routes = (function () {
}
});
// Also include existing trails for backward compatibility
const trails = generateTrails();
footpaths.push(...trails);
TIME && console.timeEnd("generateFootpaths");
return footpaths;
@ -757,8 +748,9 @@ window.Routes = (function () {
return segments;
}
function createRoutesData(routes) {
function createRoutesData(lockedRoutes) {
const pointsArray = preparePointsArray();
const routes = [...lockedRoutes]; // Create a new array from locked routes
// Process critical routes (Tier 1 & 2) - these run immediately
for (const {feature, cells, merged, type} of mergeRoutes(majorSeaRoutes)) {