Adds TwoTierDiff — the five-list output of StreamingRegion.RecenterTo (ToLoadFar/Near, ToPromote, ToDemote, ToUnload) per spec §4.2. Used by T3–T6 (StreamingRegion) and T13 (StreamingController). Extends LandblockStreamJob.Load with a LandblockStreamJobKind parameter so the streaming worker can route far vs near vs promote jobs differently (spec §4.3). Patches the one call site in LandblockStreamer.EnqueueLoad with LoadNear as a placeholder that preserves today's full-load semantics until T11 activates the worker thread and T16 routes by tier. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
15 lines
802 B
C#
15 lines
802 B
C#
using System.Collections.Generic;
|
|
|
|
namespace AcDream.App.Streaming;
|
|
|
|
/// <summary>
|
|
/// Output of <see cref="StreamingRegion.RecenterTo"/> for the two-tier model.
|
|
/// Five disjoint lists describe what changed since the previous Tick. Per
|
|
/// Phase A.5 spec §4.2.
|
|
/// </summary>
|
|
public readonly record struct TwoTierDiff(
|
|
IReadOnlyList<uint> ToLoadFar, // entered far window from null (terrain only)
|
|
IReadOnlyList<uint> ToLoadNear, // entered near window from null (terrain + entities — first-tick or teleport)
|
|
IReadOnlyList<uint> ToPromote, // entered near window from far-resident (entities only)
|
|
IReadOnlyList<uint> ToDemote, // exited near window past hysteresis (drop entities)
|
|
IReadOnlyList<uint> ToUnload); // exited far window past hysteresis (drop terrain)
|