feat(simulation): atlas layer-proxy handler — cache hit/miss -> queue (#969, D-225)
handle_atlas_request: cache hit -> serialize Layer1Output, reply Ready; miss -> resolve the source heightmap (BodySourceResolver) + enqueue an Immediate AnalyzeBody on the #968 background queue, reply Pending (client re-requests; the drain system populates the cache so a later request hits); unknown/no-terrain -> NotFound. Adds the AtlasLayerRequest/Response/Status wire types (+ Serialize on CascadeLayer). Pure handler; the bridge routing is the proxy's other half. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
|
||||
use std::path::Path;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::atlas::body_world_state::{BodyWorldState, RiverNetwork};
|
||||
use crate::atlas::heightmap::{self, BodyHeightmap, HeightmapLoadError};
|
||||
use crate::atlas::layer1::{self, Layer1Output};
|
||||
@@ -25,7 +27,7 @@ use crate::seed::SeedChain;
|
||||
/// Cascade layers in execution order (D-200). [`run_cascade`] runs every layer
|
||||
/// up to and including the requested one. Append new layers as they are built;
|
||||
/// the `Ord` derive relies on declaration order, so only ever append.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
|
||||
pub enum CascadeLayer {
|
||||
/// Layer 0 — load the pre-baked 16-bit `heightmap.png` (D-202).
|
||||
Heightmap,
|
||||
|
||||
Reference in New Issue
Block a user