Skip to content

feat(tools): water fixes — sub-sea inlets + steep river banks (sf-map-renderer)#263

Merged
StuartMeeks merged 5 commits into
mainfrom
feature/246-waterfalls
Jul 13, 2026
Merged

feat(tools): water fixes — sub-sea inlets + steep river banks (sf-map-renderer)#263
StuartMeeks merged 5 commits into
mainfrom
feature/246-waterfalls

Conversation

@StuartMeeks

@StuartMeeks StuartMeeks commented Jul 13, 2026

Copy link
Copy Markdown
Owner

🤖 AI-generated PR

Refs #246. Two related water-rendering fixes on top of #262.

1. U10 cascade outflow (57900,-148900) — sub-sea inlet flood

The channel has no water actor (no BP_River spline to 300 m, no volume, no fall along it — verified by probe actorsat). It's the game's under-water-flattened floor (pixel-flat Z≈−1834, ~1 m below sea, ocean-connected). FloodSubSeaConnected floods from the ocean into connected land below sea level, capped at SubSeaMaxDepthCm (300) so it fills shallow inlets but not the deep dry basins (Grass Fields/Blue Crater/etc. are 5–21 m below). Fill ~54k cells.

2. Steep river banks rendered dark

The river fix in #262 lowered only the narrow ribbon to a shallow sheet, so the wider volume water on the channel sides stayed dark beside a light centre. SpreadFlowingWater flood-fills the flowing flag from river cells across connected fake-deep inland water (depth > FlowingBankDepthCm 4000) — the steep banks — stopping at genuine shoreline/lake depths so their shading is preserved. Spread ~917 cells; the three reported channels (35700,-101200 / -82600,68400 / -16500,110300) now read light bank to bank.

Diagnostics added

probe actorsat (unfiltered actor census), probe waterfall (BP_WaterFallTool top/bottom centres), raw h16 in the point probe.

54 tests pass; full-map render verified (U10 flooded, southern basins dry, coastlines unchanged, river banks light).

Interactive artifact: https://claude.ai/code/artifact/f71233b1-c70a-49f4-b1bd-7448244ee8c7

StuartMeeks and others added 3 commits July 13, 2026 04:06
…sf-map-renderer)

Diagnostic only (not wired into rendering). Dumps the nearest BP_WaterFallTool
actors to a coordinate: property tags, Width, and the Top/Bottom Center
component offsets. Findings so far: a fall is a vertical drop (Top and Bottom
Center share XY), so it is a point, not a downhill path; the reported spot
57900,-148900 is dry terrain ~50 m from an already-rendered river, not at a fall.
Kept to resume the coord-4 investigation once its in-game nature is confirmed.

Refs #246

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sub-sea) (sf-map-renderer)

The U10 cascade outflow (and similar) is a channel the game flattens the
landscape under (pixel-flat floor ~1 m below sea level, banks above) but whose
water body carries no actor we parse — no river spline, volume, or fall along it
(verified by an exhaustive actor census: `probe actorsat`). So the only way to
render it is to infer water from the terrain.

`FloodSubSeaConnected` flood-fills from the open ocean into 4-neighbour land
cells whose landscape floor sits below sea level, marking them water at the sea
surface. Self-limiting: banks at/above sea level stop the fill. `--no-flood-sub-sea`
disables it (RenderOptions.FloodSubSea, default on). Filled ~823k cells; the U10
channel now carries water through the two confirmed coordinates.

Also adds diagnostics used to pin this down: `probe actorsat` (unfiltered actor
census + spline/brush/volume list), `probe waterfall` (BP_WaterFallTool top/bottom
centres), and raw h16 in PointProbe.

Refs #246

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ins (sf-map-renderer)

The first sub-sea flood filled everything below sea level connected to the ocean,
which over-flooded the deep dry southern basins (Grass Fields, Southern Forest,
Blue Crater, Paradise Island) — the game leaves those unflooded despite their
floor sitting well below sea level.

The U10 inlet floor is only ~1 m below sea; those basins are 5–21 m below. So the
flood now only fills cells within SubSeaMaxDepthCm (default 300) of sea level —
shallow coastal inlets/channels — and stops where the floor drops into a deep
basin. Fill dropped 823k → 54k cells; U10 keeps its water, the southern basins
are dry again.

Refs #246

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@StuartMeeks StuartMeeks changed the title feat(tools): flood shallow sub-sea inlets — U10 cascade outflow (sf-map-renderer) feat(tools): water fixes — sub-sea inlets + steep river banks (sf-map-renderer) Jul 13, 2026
@StuartMeeks
StuartMeeks force-pushed the feature/246-waterfalls branch from 2b0b415 to 3184acb Compare July 13, 2026 06:03
…map-renderer)

The river fix in #262 drew only the narrow river ribbon as a flat shallow (light)
sheet, so the wider FGWaterVolume water on the banks kept its inflated surface and
read darker than the ribbon beside it — including where a river continued into
adjacent cells.

`SpreadFlowingWater` now flood-fills the flowing flag from the river across the
connected deep channel water (depth > FlowingBankDepthCm 250), so the banks render
as flowing like the mid-river ribbon. Shallow water is already ~ribbon-light, so
it is skipped and blocks the spread; the fill reaches at most ChannelReachCm
(5000) from a river centreline, so a deep lake merely touched by a river keeps its
interior depth shading; the ocean is never touched. ~15k cells; rivers now read
uniformly light bank-to-bank across every cell, lakes keep their gradient.

Refs #246

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@StuartMeeks
StuartMeeks force-pushed the feature/246-waterfalls branch 7 times, most recently from acfb218 to 361c056 Compare July 13, 2026 07:36
…f-map-renderer)

East of the swamp and the dune desert, the shallow coastal water met the flat
deep-sea void at a hard line, and where captured seabed (visible detail) met the
void it left a blocky rectangular staircase.

`EastCoastFade` recolours the sea in two configured regions by distance to the
coast (chamfer distance transform), so it deepens smoothly from the shore to deep
ocean blue and extends east, following the coastline, with feathered edges and
low-frequency noise:
 - `EastFade` fades the deep-sea VOID east of the dune desert + swamp.
 - `CapturedFade` (the SE only, kept south of the north void) also fades the
   captured seabed there, dissolving the visible-seabed-vs-void staircase.

Everything outside those regions — the north/south/west voids, the captured
coastal shallows north of the Spire Coast, and the void's own extent — is left
exactly as v17.

Refs #246

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@StuartMeeks
StuartMeeks force-pushed the feature/246-waterfalls branch 3 times, most recently from 7a5107d to 0928f69 Compare July 13, 2026 09:14
@StuartMeeks
StuartMeeks merged commit 3e053b8 into main Jul 13, 2026
13 checks passed
@StuartMeeks
StuartMeeks deleted the feature/246-waterfalls branch July 13, 2026 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant