AtlasViewer gains public set_view(zoom, offset)/get_view_offset (clamped, review-flagged API gap) + gdUnit suite. visual_capture.gd gains an atlas_matrix scenario (one boot, tests/atlas_shots.json-driven: 7 verified bodies x zoom x overlay sets, signal-gated waits on atlas_layers_received/city_names_received with timeout fallback). 12 individually-addressable golden scenarios registered in tests/visual.json. Root-level settings.db* gitignored (capture-spawned servers write their settings store to cwd). Fixes found live: GDScript lambdas capture value-type locals BY VALUE (wait-flag moved to Array carrier); RegionalScreen.enter() no-ops when the screen id is unchanged (direct enter() per body after the first). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
128 lines
9.7 KiB
JSON
128 lines
9.7 KiB
JSON
{
|
|
"_comment": "T-1120: Atlas screenshot capture matrix. Consumed by visual_capture.gd's --scenario atlas_matrix mode. Every body/terrain_reference/system pair verified against server/data/systems.db (python3 read-only query, no sqlite3 CLI) — see docs note below for provenance.",
|
|
"resolution": [1280, 720],
|
|
"settle_frames": 30,
|
|
"gen_layers_timeout_seconds": 15.0,
|
|
"city_names_timeout_seconds": 15.0,
|
|
"output_subdir": ".cache/screenshots/atlas",
|
|
"bodies": [
|
|
{
|
|
"body_id": "GJ380c",
|
|
"proper_name": "Lendel",
|
|
"terrain_reference": "wiki/star-systems/GJ-380/bodies/GJ380c/heightmap.png",
|
|
"system_id": "GJ 380",
|
|
"system_proper_name": "Groombridge",
|
|
"note": "given sample — arid planet"
|
|
},
|
|
{
|
|
"body_id": "GJ144e",
|
|
"proper_name": "Vethis",
|
|
"terrain_reference": "wiki/star-systems/GJ-144/bodies/GJ144e/heightmap.png",
|
|
"system_id": "GJ 144",
|
|
"system_proper_name": "Ran",
|
|
"note": "given sample — temperate planet"
|
|
},
|
|
{
|
|
"body_id": "GJ338Bd",
|
|
"proper_name": "Arbour",
|
|
"terrain_reference": "wiki/star-systems/GJ-338B/bodies/GJ338Bd/heightmap.png",
|
|
"system_id": "GJ 338B",
|
|
"system_proper_name": "Arbour",
|
|
"note": "given sample — temperate planet"
|
|
},
|
|
{
|
|
"body_id": "GJ820Bc",
|
|
"proper_name": "Ferrath",
|
|
"terrain_reference": "wiki/star-systems/GJ-820B/bodies/GJ820Bc/heightmap.png",
|
|
"system_id": "GJ 820B",
|
|
"system_proper_name": "Cygni B",
|
|
"note": "given sample — arid planet"
|
|
},
|
|
{
|
|
"body_id": "GJ251c",
|
|
"proper_name": "Ruhr",
|
|
"terrain_reference": "wiki/star-systems/GJ-251/bodies/GJ251c/heightmap.png",
|
|
"system_id": "GJ 251",
|
|
"system_proper_name": "Renaissance",
|
|
"note": "given sample — temperate planet, highest population in the set (5B)"
|
|
},
|
|
{
|
|
"body_id": "GJ244Ad",
|
|
"proper_name": "Edict",
|
|
"terrain_reference": "wiki/star-systems/GJ-244A/bodies/GJ244Ad/heightmap.png",
|
|
"system_id": "GJ 244A",
|
|
"system_proper_name": "Sirius",
|
|
"note": "picked — frozen planet with cities (2), most cities among planet_class='frozen' bodies in systems.db"
|
|
},
|
|
{
|
|
"body_id": "GJ445c-m1",
|
|
"proper_name": "Jinghu",
|
|
"terrain_reference": "wiki/star-systems/GJ-445/bodies/GJ445c-m1/heightmap.png",
|
|
"system_id": "GJ 445",
|
|
"system_proper_name": "Jinghu",
|
|
"note": "picked — inhabited temperate moon with cities (2), most cities among body_type='moon' AND inhabited=1 bodies in systems.db"
|
|
}
|
|
],
|
|
"zooms": ["fit", 2.0, 4.0],
|
|
"overlay_sets": {
|
|
"A": ["gen_district"],
|
|
"B": ["gen_l3_settlements", "gen_l2_roads"],
|
|
"C": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"]
|
|
},
|
|
"matrix_rules": {
|
|
"A": "fit zoom only (avoids the 63-shot full-matrix explosion)",
|
|
"B": "all three zooms",
|
|
"C": "fit and 2.0 zoom only (4.0 omitted — set C is already the densest overlay combination, a fourth close-up variant added no new information)"
|
|
},
|
|
"shots": [
|
|
{ "body_id": "GJ380c", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ380c_zfit_A.png" },
|
|
{ "body_id": "GJ380c", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ380c_z2_0_B.png" },
|
|
{ "body_id": "GJ380c", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ380c_z4_0_B.png" },
|
|
{ "body_id": "GJ380c", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ380c_zfit_B.png" },
|
|
{ "body_id": "GJ380c", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ380c_zfit_C.png" },
|
|
{ "body_id": "GJ380c", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ380c_z2_0_C.png" },
|
|
|
|
{ "body_id": "GJ144e", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ144e_zfit_A.png" },
|
|
{ "body_id": "GJ144e", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ144e_z2_0_B.png" },
|
|
{ "body_id": "GJ144e", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ144e_z4_0_B.png" },
|
|
{ "body_id": "GJ144e", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ144e_zfit_B.png" },
|
|
{ "body_id": "GJ144e", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ144e_zfit_C.png" },
|
|
{ "body_id": "GJ144e", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ144e_z2_0_C.png" },
|
|
|
|
{ "body_id": "GJ338Bd", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ338Bd_zfit_A.png" },
|
|
{ "body_id": "GJ338Bd", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ338Bd_z2_0_B.png" },
|
|
{ "body_id": "GJ338Bd", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ338Bd_z4_0_B.png" },
|
|
{ "body_id": "GJ338Bd", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ338Bd_zfit_B.png" },
|
|
{ "body_id": "GJ338Bd", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ338Bd_zfit_C.png" },
|
|
{ "body_id": "GJ338Bd", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ338Bd_z2_0_C.png" },
|
|
|
|
{ "body_id": "GJ820Bc", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ820Bc_zfit_A.png" },
|
|
{ "body_id": "GJ820Bc", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ820Bc_z2_0_B.png" },
|
|
{ "body_id": "GJ820Bc", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ820Bc_z4_0_B.png" },
|
|
{ "body_id": "GJ820Bc", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ820Bc_zfit_B.png" },
|
|
{ "body_id": "GJ820Bc", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ820Bc_zfit_C.png" },
|
|
{ "body_id": "GJ820Bc", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ820Bc_z2_0_C.png" },
|
|
|
|
{ "body_id": "GJ251c", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ251c_zfit_A.png" },
|
|
{ "body_id": "GJ251c", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ251c_z2_0_B.png" },
|
|
{ "body_id": "GJ251c", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ251c_z4_0_B.png" },
|
|
{ "body_id": "GJ251c", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ251c_zfit_B.png" },
|
|
{ "body_id": "GJ251c", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ251c_zfit_C.png" },
|
|
{ "body_id": "GJ251c", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ251c_z2_0_C.png" },
|
|
|
|
{ "body_id": "GJ244Ad", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ244Ad_zfit_A.png" },
|
|
{ "body_id": "GJ244Ad", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ244Ad_z2_0_B.png" },
|
|
{ "body_id": "GJ244Ad", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ244Ad_z4_0_B.png" },
|
|
{ "body_id": "GJ244Ad", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ244Ad_zfit_B.png" },
|
|
{ "body_id": "GJ244Ad", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ244Ad_zfit_C.png" },
|
|
{ "body_id": "GJ244Ad", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ244Ad_z2_0_C.png" },
|
|
|
|
{ "body_id": "GJ445c-m1", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ445c-m1_zfit_A.png" },
|
|
{ "body_id": "GJ445c-m1", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ445c-m1_z2_0_B.png" },
|
|
{ "body_id": "GJ445c-m1", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ445c-m1_z4_0_B.png" },
|
|
{ "body_id": "GJ445c-m1", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ445c-m1_zfit_B.png" },
|
|
{ "body_id": "GJ445c-m1", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ445c-m1_zfit_C.png" },
|
|
{ "body_id": "GJ445c-m1", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ445c-m1_z2_0_C.png" }
|
|
]
|
|
}
|