diff --git a/Core/Scripts/BLUEPRINT_FORMAT.md b/Core/Scripts/BLUEPRINT_FORMAT.md index 1ab1324..8a55bf7 100644 --- a/Core/Scripts/BLUEPRINT_FORMAT.md +++ b/Core/Scripts/BLUEPRINT_FORMAT.md @@ -122,6 +122,20 @@ body). follow the curved terrain. When on, `TCRV` records the effective parameters including the per-seed `spikeMax`. +- **`CoastProfile`** (`"wide"` | `"steep"`, default `"wide"`) — the submarine shelf. The height + curve is identity at and below sea level, so it never reshaped the seabed; `"wide"` compresses + shallow depth so the shallows reach 2.4–2.9× further out. It is strictly positive for positive + depth and therefore **cannot move the waterline**, so `HGTS` changes while `BIOM`, `WBID`, + `WBTB` and `WSRF` stay bit-identical. `"steep"` is the pre-task-11 seabed. +- **`IslandAxisX`** / **`IslandAxisY`** (default `1.30` / `0.78`; pre-task-11 `1.15` / `0.90`) — + the falloff axis ratios, and the island's proportions. These **move the coastline**, so unlike + the curve and detail work they legitimately change `BIOM` and the water sections: an elongated + seed has a new biome baseline. Rejected (with a loud restore to legacy) if ≤ 0.01, which would + divide by ~zero and silently yield an all-ocean map. +- **`OffshoreIslandDensity`** (default `0.02`, `0` disables, clamped to 0.5) — the fraction of the + offshore noise field above the islet threshold, calibrated per seed against the field's own + distribution. Adds land, so it also moves `BIOM` and the water sections. + ### Deliberately NOT a section: basins (`BSIN`) The priority-flood pit-fill that runs in the water-bodies stage is **diagnostics only** and diff --git a/Tools/Scripts/README.md b/Tools/Scripts/README.md index 0b941fa..214dacc 100644 --- a/Tools/Scripts/README.md +++ b/Tools/Scripts/README.md @@ -11,6 +11,21 @@ Generates the entire 2D blueprint. Roughly in order: 2. **Topography** — FastNoiseLite base height plus a mountain spine, minus a squircle distance falloff, giving a guaranteed island. Noise frequency is divided by `scaleFactor` (`MapSize / 1024f`) so terrain features stay the same real-world size at any map profile. + The island's proportions are the `IslandAxisX`/`IslandAxisY` dials (`1.30`/`0.78`; the + pre-task-11 shape was `1.15`/`0.90`). **`IslandAxisX` is a weak lever** — the island is + already Trench-clamped at ~90 % of the map width, so aspect responds almost entirely to + `IslandAxisY`, which trades against land area. These move the coastline, so they move biomes. + The mountain spine shares `IslandAxisX` for its width, and its crest is rounded + (`IslandFalloff.SmoothAbs`) — `1 - |x - centre|` used to peak with a slope discontinuity that + was, measured, the largest slope step on the map outside the Trench walls. **The spine's AXIS + is still a straight line down the map centre; that is known, deferred, and its own task.** + With `CoastProfile: "wide"` (the default) the *seabed* leaving the shoreline is shelved + (`IslandFalloff.CoastShelf`): the height curve is identity at and below sea level, so it never + reached the water, and the shoreline used to shelve gently on land then drop 6.7× steeper the + moment it went under. The shelf cannot move the waterline — it is strictly positive for + positive depth — so biomes and water are bit-identical with it on or off. `OffshoreIslandDensity` + (`0.02`, `0` disables) seeds sparse discoverable islets in the open ocean; they are held off the + mainland by a depth moat and out of the Trench by a distance mask, both by construction. When `TerrainCurve: "v5"` (the default — the task-09 gate's BALANCED winner), the calibrated height-redistribution curve (`HeightCurve.cs` — the terraced ascent with spatially modulated shelves: flat farmable