mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-18 02:01:22 +01:00
Summary Ground burgs with sky ports keep land capabilities and land routes. Only truly flying burgs join the Sky Realm; turning off “flying” restores the ground state. Replace magic altitude 1000 with a DOM-configurable default. Guard state hover/pin logic for geometry-less Sky Realm to prevent console errors. Watabou link uses sky settings only for flying burgs. Details Land routing with sky ports: Change: include sky ports in land road/trail networks; exclude only flying burgs. Why: sky ports should not impose flying/land restrictions on a ground burg. File: modules/routes-generator.js Sky port toggle does not move state: Change: toggling skyPort no longer assigns the burg’s state to the Sky Realm or reassigns cell ownership. Why: sky port ≠ flying city; it’s just air connectivity. File: modules/ui/burg-editor.js Flying toggle and state restore: Change: enabling “flying” assigns the burg to the Sky Realm but does not overwrite the cell’s ground state; disabling “flying” restores the burg’s state to the underlying ground state (pack.cells.state[burg.cell]). Change: when relocating, assign Sky Realm only if the burg is placed over water; ground placements keep ground state. Why: fixes bug where reverting to ground left burg in Sky Realm and preserves ground sovereignty. File: modules/ui/burg-editor.js Default sky altitude via DOM (no more magic 1000): Change: add hidden input #burgDefaultSkyAltitude (default 1000 m) and read it everywhere altitude is defaulted (editor and “add burg on water” flow). Why: centralizes default, documents units, and makes it configurable without touching code. Files: index.html, modules/ui/burg-editor.js, modules/ui/burgs-overview.js Sky State creation robustness: Change: initialize a neutral diplomacy row for the new Sky State and extend existing states’ diplomacy arrays. Change: do not forcibly set the anchor cell ownership to Sky state when creating the Sky Realm. Why: prevents UI/editor crashes that assume diplomacy is rectangular; avoids accidental land transfer to Sky Realm. File: modules/ui/editors.js State hover/pin guards for Sky Realm: Change: skip fog/hover/highlight when the target state has no geometry (e.g., Sky Realm) or the path is missing. Why: fixes console errors in State hover and Pin feature. Files: modules/dynamic/editors/states-editor.js, modules/ui/diplomacy-editor.js, modules/ui/military-overview.js Watabou integration: Change: only treat burgs as “sky” for city links when flying is true (not when only skyPort is set). Why: ground burgs with sky ports should still have gates/roads/hubs/shanty, etc. File: modules/ui/editors.js User-visible Effects Ground cities can have sea port + sky port + roads/trails simultaneously. Toggling flying on shows altitude row; default altitude is read from the DOM. Toggling flying off restores the burg to its ground state affiliation. No more console errors when interacting with state hover/pin around the Sky Realm. Potential Impacts Land route generation may produce additional roads because sky-ported (but ground) burgs are now included. Diplomacy arrays gain a neutral column for the Sky Realm when first created (non-breaking, UI-aligned). Test Plan Set sky port on a ground burg: verify roads/trails remain; sea port and other features unaffected. Toggle flying on: burg state switches to Sky Realm; cell remains with ground state; altitude defaults from #burgDefaultSkyAltitude; air routes generate. Toggle flying off: burg state returns to the ground state; altitude row hides; routes regenerate. Hover/fog/pin states with the editors open: no errors with Sky Realm selected or hovered. Open Watabou (city generator) links: Ground + sky port: uses ground settings (gates/roads/hubs/shanty allowed). Flying: uses sky settings (no farms/gates/hub etc. as appropriate). Files Changed modules/routes-generator.js modules/ui/burg-editor.js modules/ui/burgs-overview.js modules/ui/editors.js modules/dynamic/editors/states-editor.js modules/ui/diplomacy-editor.js modules/ui/military-overview.js index.html |
||
|---|---|---|
| .. | ||
| dynamic | ||
| io | ||
| renderers | ||
| ui | ||
| biomes.js | ||
| burgs-and-states.js | ||
| coa-generator.js | ||
| coa-renderer.js | ||
| cultures-generator.js | ||
| features.js | ||
| fonts.js | ||
| heightmap-generator.js | ||
| lakes.js | ||
| markers-generator.js | ||
| military-generator.js | ||
| names-generator.js | ||
| ocean-layers.js | ||
| performance-optimizer.js | ||
| provinces-generator.js | ||
| religions-generator.js | ||
| resample.js | ||
| river-generator.js | ||
| routes-generator.js | ||
| submap.js | ||
| voronoi.js | ||
| zones-generator.js | ||