146 lines
5.7 KiB
JSON
146 lines
5.7 KiB
JSON
{
|
||
"_comment": "MAP — the deck's MAP button (to the right of SHIP): the full-screen cartography console, js/ui/MapWindow.js (depth 80, the ResearchWindow idiom). LEFT = the cartography feed (assets/videos/map.mp4, a muted 2:3 loop, the same recipe as the research archive feed). RIGHT = tabs on top (CURRENT SYSTEM is live; GALAXY is a reserved socket — pressing it toasts the lock line), the SYSTEM CHART in the middle, and the SYSTEM readout on the bottom (name + discovery % + resource %). THE CHART (the magic, drawn to a canvas texture): the whole solar system — every object's extent (planets, stations, gates AND asteroid clusters, discovered or not) + `bounds.padding` px of padding on each edge — fitted to the plate. Only DISCOVERED objects are drawn (planets / stations / gates / rock fields, small representations). The TETHER RANGE is drawn as the union boundary (Tether.visibleArcs) with a soft zone glow inside, and everything OUTSIDE the tether union is grayed out (a fog-of-war dim pass with feathered rim) — so the chart reads as 'here is what you have charted, and here is the room to expand'. A live SHIP marker + hover tooltips + click-to-autopilot (GameScene.autopilotTo) sit on top. All colors/motion are steered here.",
|
||
"enabled": true,
|
||
"title": "STELLAR CARTOGRAPHY",
|
||
"meta": "NAV DATA // LIVE FEED",
|
||
"video": {
|
||
"_comment": "The cartography feed (like research.video): `file` is the clip under assets/videos/ (or a full relative path / URL). Muted, looping, 2:3 portrait (map.mp4 is 544×800). A missing file leaves the NO SIGNAL plate up — the console still works.",
|
||
"file": "map.mp4",
|
||
"aspect": [
|
||
2,
|
||
3
|
||
]
|
||
},
|
||
"tabs": {
|
||
"_comment": "The two sockets above the chart (top right). `currentSystem` is the live tab (default). `galaxy` is reserved — `standby: true` renders it dimmed with the standbyTag, and a press fires the scene's onLocked (a console toast) instead of switching.",
|
||
"currentSystem": {
|
||
"id": "currentSystem",
|
||
"label": "Current System",
|
||
"accent": "#00e5ff"
|
||
},
|
||
"galaxy": {
|
||
"id": "galaxy",
|
||
"label": "Galaxy",
|
||
"accent": "#ffc94d",
|
||
"standby": true,
|
||
"standbyTag": "OFFLINE"
|
||
}
|
||
},
|
||
"galaxyLockedToast": "GALAXY MAP OFFLINE — SECTOR DATA NOT ACQUIRED",
|
||
"bounds": {
|
||
"_comment": "The chart's frame: the furthest X/Y extents of EVERY object in the system (planets, stations, gates, asteroid clusters — discovered or not) plus this much padding, px, on each edge (the design rule: ~1024).",
|
||
"padding": 1024
|
||
},
|
||
"chart": {
|
||
"_comment": "The plate's rendering (the canvas texture is redrawn on open / on discovery / on tether changes). colors follow theme.json (neon cyan range, amber alerts). grid.spacing = the world-px step of the adaptive grid (snapped to 1/2/5×10^k). glow = the soft light pooled inside each tether zone (fraction of the zone radius the gradient spans, and its strength). labels = the small name tags under NAV objects.",
|
||
"colors": {
|
||
"bg": "#040914",
|
||
"bgGlow": "#0a2238",
|
||
"star": "#9fd8ff",
|
||
"grid": "#1b3a5a",
|
||
"gridAlpha": 0.28,
|
||
"ink": "#eaf6ff",
|
||
"dim": "#7d92c4",
|
||
"faint": "#3d4c74",
|
||
"tether": "#00e5ff",
|
||
"tetherGlow": "#00e5ff",
|
||
"neon2": "#ff2d6f",
|
||
"amber": "#ffc94d",
|
||
"fog": "#111c33",
|
||
"fogAlpha": 0.55
|
||
},
|
||
"grid": {
|
||
"spacing": 512,
|
||
"alpha": 0.28
|
||
},
|
||
"glow": {
|
||
"span": 0.92,
|
||
"alpha": 0.22
|
||
},
|
||
"tetherLine": {
|
||
"dash": 7,
|
||
"gap": 5,
|
||
"width": 2,
|
||
"coreWidth": 1,
|
||
"ghost": 2.5
|
||
},
|
||
"labels": {
|
||
"enabled": true,
|
||
"size": 10,
|
||
"letterSpacing": 1.2
|
||
},
|
||
"planetMin": 4,
|
||
"planetMax": 16,
|
||
"starMin": 7,
|
||
"starMax": 30,
|
||
"vignette": 0.34
|
||
},
|
||
"stats": {
|
||
"_comment": "The bottom-right SYSTEM readout. discovery = the share of the system's NAV objects (planets + space stations + jump gates — the central body is the chart's anchor, not a count) the player has found; resources = the share of asteroid fields found (the only resource kind for now). Both render as segmented bars (one segment per object) + a percent.",
|
||
"discoveryLabel": "SYSTEM DISCOVERY",
|
||
"discoveryMeta": "PLANETS · STATIONS · JUMP GATES",
|
||
"resourcesLabel": "SYSTEM RESOURCES",
|
||
"resourcesMeta": "ASTEROID FIELDS",
|
||
"noResources": "NO RESOURCE FIELDS CHARTED"
|
||
},
|
||
"legend": {
|
||
"_comment": "The glyph key under the stats (the chart's visual language).",
|
||
"items": [
|
||
{
|
||
"glyph": "planet",
|
||
"label": "WORLD"
|
||
},
|
||
{
|
||
"glyph": "station",
|
||
"label": "STATION"
|
||
},
|
||
{
|
||
"glyph": "gate",
|
||
"label": "JUMP GATE"
|
||
},
|
||
{
|
||
"glyph": "rock",
|
||
"label": "ROCKS"
|
||
},
|
||
{
|
||
"glyph": "tether",
|
||
"label": "TETHER RANGE"
|
||
},
|
||
{
|
||
"glyph": "ship",
|
||
"label": "SHIP"
|
||
}
|
||
]
|
||
},
|
||
"sweep": {
|
||
"_comment": "The scan band crawling across the chart (the CRT pass of light).",
|
||
"enabled": true,
|
||
"everyMs": [
|
||
5200,
|
||
9800
|
||
],
|
||
"durationMs": 1500
|
||
},
|
||
"glitch": {
|
||
"_comment": "Ambient glitch bursts over the window (slice bars + title RGB split, the ResearchWindow model).",
|
||
"enabled": true,
|
||
"intervalMs": [
|
||
5000,
|
||
11000
|
||
],
|
||
"durationMs": [
|
||
200,
|
||
420
|
||
]
|
||
},
|
||
"hover": {
|
||
"_comment": "Plate hover: the object under the cursor gets a highlight ring + tooltip. radiusSlop = extra screen-px hit slop (tiny map objects need room).",
|
||
"enabled": true,
|
||
"radiusSlop": 9
|
||
},
|
||
"clickToast": {
|
||
"_comment": "Plate interaction copy.",
|
||
"coursePlotted": "COURSE PLOTTED — {name}",
|
||
"noCourse": "NO NAV LOCK — OBJECT NOT CHARTED"
|
||
}
|
||
} |