namespace AcDream.App.Streaming;
///
/// Immutable world-origin center captured by the update thread when a
/// landblock load is admitted. Worker construction and render publication use
/// this same value, so a later recenter cannot combine two coordinate frames.
///
public readonly record struct LandblockBuildOrigin
{
public LandblockBuildOrigin(int centerX, int centerY)
{
CenterX = centerX;
CenterY = centerY;
IsSpecified = true;
}
public int CenterX { get; }
public int CenterY { get; }
///
/// Distinguishes a captured origin at the valid map coordinate (0,0)
/// from an old compatibility request that carries no origin at all.
///
public bool IsSpecified { get; }
}
///
/// Complete immutable input to one CPU-side landblock build.
/// is carried for matching and diagnostics only;
/// residency policy remains owned by .
///
public readonly record struct LandblockBuildRequest(
uint LandblockId,
LandblockStreamJobKind Kind,
ulong Generation,
LandblockBuildOrigin Origin);