acdream/src/AcDream.App/Streaming
Erik b8d80fe282 feat(A.5 T13): StreamingController two-tier Tick
Replaces the single-radius Tick with a two-tier model that consumes
StreamingRegion's TwoTierDiff (5-list) and routes to the appropriate
JobKind:

- ToLoadFar    -> _enqueueLoad(id, LoadFar)
- ToLoadNear   -> _enqueueLoad(id, LoadNear)
- ToPromote    -> _enqueueLoad(id, PromoteToNear)
- ToDemote     -> _state.RemoveEntitiesFromLandblock(id) on render thread
- ToUnload     -> _enqueueUnload(id)

Drain switch handles Loaded (terrain + entity layer), Promoted (entity
layer only -- terrain already loaded), Unloaded, Failed, WorkerCrashed.

Constructor signature: nearRadius/farRadius separate ints. Old single-
radius ctor removed; existing single-radius tests updated to pass
nearRadius=farRadius for backward-compat coverage.

GameWindow's enqueueLoad lambda updated from (id =>...) to (id, kind) =>
to match new Action<uint, LandblockStreamJobKind> signature; radius: arg
renamed to nearRadius:/farRadius: (both set to _streamingRadius until T16
wires the full two-tier env-var parsing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 07:56:57 +02:00
..
GpuWorldState.cs feat(A.5 T14): GpuWorldState RemoveEntitiesFromLandblock + AddEntitiesToExisting 2026-05-10 07:53:34 +02:00
LandblockStreamer.cs fix(A.5 T10-T12): Start() race + null mesh test + real mesh stub 2026-05-10 07:49:14 +02:00
LandblockStreamJob.cs feat(A.5 T7): LandblockStreamResult.Loaded.Tier+MeshData; Promoted variant 2026-05-09 22:53:07 +02:00
LandblockStreamTier.cs feat(A.5 T1): LandblockStreamTier + LandblockStreamJobKind enums 2026-05-09 22:15:57 +02:00
StreamingController.cs feat(A.5 T13): StreamingController two-tier Tick 2026-05-10 07:56:57 +02:00
StreamingRegion.cs fix(A.5 T4-T6): bootstrap guard + dead enum + test cleanups 2026-05-09 22:49:35 +02:00
TwoTierDiff.cs feat(A.5 T2): TwoTierDiff record + LandblockStreamJob.Load.Kind 2026-05-09 22:20:48 +02:00