refactor(world): own live environment state

Move the DAT sky, selected day group, world clock, weather, AdminEnvirons bridge, and debug cycles into a one-shot WorldEnvironmentController while preserving GameWindow's public aliases and accepted startup/session/render order. Correct the named retail citations and register the remaining environment audio and fog/radar gaps.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-22 10:54:33 +02:00
parent 557eb7ef6b
commit d09e246d3a
19 changed files with 606 additions and 368 deletions

View file

@ -127,14 +127,16 @@ second GUID dictionary. Slices 57 are complete: landblock presentation,
update-frame orchestration, and render-frame orchestration all have typed
owners. `GameWindow.OnUpdate` and `GameWindow.OnRender` are one-handoff methods;
the frame owners have no direct window or anonymous callback-bag ownership.
Slice 8 checkpoints AC are also complete: dead host residue is removed,
Slice 8 checkpoints AD are also complete: dead host residue is removed,
native-window callback intake has reversible lifetime ownership, and
`LiveSessionHost` owns reset/binding composition over the sole canonical
session controller. `GameWindow` is 4,589 raw lines / 196 fields / 69 methods,
down 11,134 lines (70.8%) from the 15,723-line campaign baseline. The 7,408-test
session controller. `WorldEnvironmentController` solely owns the clock, DAT
sky/day group, weather, synchronization, and AdminEnvirons state. `GameWindow`
is 4,330 raw lines / 192 fields / 67 methods, down 11,393 lines (72.5%) from
the 15,723-line campaign baseline. The 7,419-test
Release suite, 315.6-second lifecycle/reconnect gate, and 395.2-second
synchronized nine-stop soak pass. Slice 8 checkpoints DL—world environment,
input/resize, action routing, settings, resource ownership, ordered composition,
synchronized nine-stop soak pass. Slice 8 checkpoints EL—input/resize, action
routing, settings, resource ownership, ordered composition,
retryable shutdown, soak snapshots, and final connected gates—remain active.
See `docs/plans/2026-07-22-gamewindow-slice-8-composition-lifecycle.md` and
`docs/architecture/code-structure.md`. **Carried:** #232, #153,