feat(simulation): serve the coarse district/morphology grid through the Atlas proxy (T-1046)
Server half of wiring the derived tier into production. The D-225 proxy (AtlasLayerResponse) carried only Layer1Output, so the Atlas could not show the DistrictProfile tier that the cascade derives. Adds DistrictGridLayer (cols/rows + row-major MorphologyZone discriminants + elev_q for relief shading) and build_district_grid(), populated on a cache hit. Because the response is rmp_serde msgpack end-to-end, the new field reaches the client automatically. This is the planetary-scale coarse grid (the Atlas map view); the on-demand 2km derive_district (T-1077) is for in-world Phase 5, not the map. MorphologyZone gains Copy (fieldless repr(u8) enum; additive). Next: client decode (protocol.gd) + the D-226 generation overlay in the Atlas viewer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3118,7 +3118,7 @@ mod tests {
|
||||
];
|
||||
for zone in &zones {
|
||||
let district = DistrictProfile {
|
||||
morphology_zone: zone.clone(),
|
||||
morphology_zone: *zone,
|
||||
tectonic_class: TectonicClass::Volcanic,
|
||||
glaciation_grade: GlaciationGrade::Moderate,
|
||||
slope_q: 50,
|
||||
@@ -3153,7 +3153,7 @@ mod tests {
|
||||
];
|
||||
for (zone, expected_terrain) in cases {
|
||||
let district = DistrictProfile {
|
||||
morphology_zone: zone.clone(),
|
||||
morphology_zone: *zone,
|
||||
tectonic_class: TectonicClass::Volcanic,
|
||||
glaciation_grade: GlaciationGrade::Moderate,
|
||||
slope_q: 50,
|
||||
|
||||
Reference in New Issue
Block a user