feat(tools): water fixes — sub-sea inlets + steep river banks (sf-map-renderer)#263
Merged
Conversation
…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
force-pushed
the
feature/246-waterfalls
branch
from
July 13, 2026 06:03
2b0b415 to
3184acb
Compare
…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
force-pushed
the
feature/246-waterfalls
branch
7 times, most recently
from
July 13, 2026 07:36
acfb218 to
361c056
Compare
…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
force-pushed
the
feature/246-waterfalls
branch
3 times, most recently
from
July 13, 2026 09:14
7a5107d to
0928f69
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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).FloodSubSeaConnectedfloods from the ocean into connected land below sea level, capped atSubSeaMaxDepthCm(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.
SpreadFlowingWaterflood-fills the flowing flag from river cells across connected fake-deep inland water (depth >FlowingBankDepthCm4000) — 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