docs: the operator stack is the only density path

- CODEMAP: data-flow diagram, §3.2b/§3.2d, generator and strate-manager
  rows, test rows and §4.2/§5 now describe the stack-only path; the
  deleted archetype functions, bUseOperatorStack and the Not Op Stack
  stats are gone; line hints re-synced for VoxelGenerator.cpp,
  VoxelStrateManager.cpp and VoxelStrateDefinition.h.
- ARCHITECTURE §8.1: archetype table lists stack builders; §8.10 surface
  column and shaft cache entries name their current owners.
- REVIEW_FINDINGS: tick "Operator stack as the only density path"; add
  the no-strate-manager fallback world as its own open item.
- fable-idea: T1.a status names the current column caches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URDGLsu7c4nunqNFPJEFPU
This commit is contained in:
Claude committed 2026-09-28 16:09:59 +00:00
1 parent f83c4bd8c1
commit 593dfac1d8
4 files changed
+150 -150

No files matched your search

+13 -11
View File
@@ -119,17 +119,19 @@ and changes that would alter generated terrain.
`sheet_tile` dump field stays for the parity compare.
- [x] `UVoxelSettings::CeilingViewMultiplier` / `CeilingBandChunks` / `DensityVolumeMaxTasks` — removed
(never read).
- [ ] **Operator stack as the only density path.** Strates without `bUseOperatorStack` (and cooked-season
entries without a recipe) still run the per-archetype `switch` in `UVoxelGenerator::GetDensityAt`
(`GetSlabDensity`, `GetMazeDensity`, `GetVerticalShaftDensity`, `GetFloatingIslandDensity`, the
SurfaceWorld column path, native `GetDensityWithParams`). The tests call those helpers "legacy
diagnostic only… not the owner path", and several of them no longer match the stack (e.g.
SurfaceWorld, VerticalShafts, TunnelNetwork telemetry). Retiring the switch means: drop the gate in
`UVoxelStrateManager::UsesOperatorStackForChunk`, remove the switch (fallback: native stack, then
air for a degenerate strate), delete those helpers and the legacy/stack comparisons in ~15 tests, and
remove `bUseOperatorStack` (+ commandlet `-opstack`). **It changes terrain for any strate not already
opted in**, so it was not done in the cleanup. Related live "legacy" paths that would go with it:
the no-strate-manager fallback world (`GetDensityWithParams` with legacy posts).
- [x] **Operator stack as the only density path** (cleanup/2026-09, owner-approved). Every strate —
authored, cooked-season (recipe or native) and editor composer candidate — now generates through its
operator stack; a degenerate strate is air. Removed: `UVoxelStrateDefinition::bUseOperatorStack`, the
archetype `switch` in `GetDensityAt`, `GetSlabDensity` / `GetMazeDensity` / `GetSurfaceDensity` /
`SurfaceDensityFromColumn` / `GetVerticalShaftDensity` / `GetFloatingIslandDensity`, the four
`Cave Bail Not Op Stack *` stats, the startup opt-in warning, commandlet `-opstack`, and the
legacy-vs-stack comparisons in the tests. **Terrain changes for any strate asset that did not
already have the opt-in ticked.**
- [ ] **No-strate-manager fallback world.** A world whose settings have no season, pool or fixed
strates runs `GetDensityAt`'s fallback: default `FStrateGenerationParams` through
`GetDensityWithParams` with its direct-caller ("legacy") structural posts. It is the only caller of
that post path outside tests/commandlet diagnostics. Decide whether an empty configuration should
keep generating generic caves or refuse to generate.
- [ ] `UVoxelStrateDefinition::WaterColor`, `Creatures`, `AmbientSound`, `Music`, `MusicVolume` and the
`FStrateCreature` / `FStrateAmbientActor` spawn fields (`SpawnChancePerChunk`, `MaxPerStrate`,
`SpawnWeight`) — authored data with no consuming system yet (F9 audio, creatures).