61 lines
4.0 KiB
JSON
61 lines
4.0 KiB
JSON
{
|
||
"_comment": "Planet visuals + home-planet rules + star rules (the central body of every non-home system) + the solar system's layout. texture is a spritesheet of frameWidth×frameHeight frames (frame 0 = top-left); frames maps a planet kind to the sheet frames it may be drawn as — the generator picks one per planet (seed-deterministic). homePlanet is the player's world — present ONLY at the origin of the system they start in (the starting system's central body); every other system's central body is its star (`star` below). scale = world pixels per sheet pixel (1.0 = 1:1, so a Terran world is 1024 px across on screen). A planet is a solid disc: the ship may approach to shipClearance px (edge-to-edge) from its rim but can never cross it. spawnDistanceFromEdge = how far (edge-to-edge) the ship starts from the home world's rim. classScale = size multiplier per planet class (1.0 = 1024 px across); classTint = optional canvas tint per class (multiplicative — the terran art stands in for every kind until real art lands). compassColor = the compass-arrow accent for planets (the home world + the system's worlds — data/stations.json's stations and data/asteroids.json's clusters carry their own; the scan signal compass reads it too). solarSystem = the top-down LAYOUT BAND (js/galaxy/SystemGenerator.js → layoutSystem): every PAIR of layout objects — planets, free-space stations, and the central body (the star, or the home world in the starting system — at the local origin) — sits at least minSpacing and at most the maximum apart, center to center. Normal systems: [minSpacing, maxSpacing] = 6400..15360 px. The home system: [minSpacing, homeMaxSpacing] = 6400..10240 px, and it is capped at 3 objects — 5 points (home world + 4) cannot sit 6400..10240 px apart: the tightest 5-point spacing needs a max/min ratio ≥ φ ≈ 1.618 > 1.6. Normal systems lay out as a regular N-gon ring; the home system as a regular (N+1)-polygon with the home world as one vertex. The rotation biases toward the jump-gate directions (data/gates.json). minSpacing/maxSpacing/homeMaxSpacing are center-to-center px (the same unit as the 1024 px world disc).",
|
||
"texture": "assets/images/planets.png",
|
||
"frameWidth": 1024,
|
||
"frameHeight": 1024,
|
||
"scale": 1.0,
|
||
"frames": {
|
||
"terran": [0, 1, 2],
|
||
"rocky": [6, 7, 8],
|
||
"gas": [3, 4, 5],
|
||
"ice": [0, 1, 2],
|
||
"lava": [0, 1, 2]
|
||
},
|
||
"classScale": {
|
||
"rocky": 1.0,
|
||
"gas": 1.45,
|
||
"ice": 0.85,
|
||
"lava": 0.95
|
||
},
|
||
"classTint": {
|
||
"rocky": "#e8d9b8",
|
||
"gas": "#ffb066",
|
||
"ice": "#cfeaff",
|
||
"lava": "#ff8a5c"
|
||
},
|
||
"compassColor": "#3dff88",
|
||
"typeLabels": {
|
||
"terran": "Home World",
|
||
"rocky": "Rocky World",
|
||
"gas": "Gas Giant",
|
||
"ice": "Ice World",
|
||
"lava": "Lava World"
|
||
},
|
||
"homePlanet": "terran",
|
||
"homeName": "Terra",
|
||
"homeTypeLabel": "Home World",
|
||
"star": {
|
||
"_comment": "The central body of a NON-HOME system — the system's star (content.star from the generator; class = the spectral type G/K/M/…). The starting system's central body is the home world (homePlanet) and only there — a star is drawn in every other system. size = the SOLID disc's diameter px (1024 = a Terran world; the halo is visual only, outside the keep-out). classColor = the disc's hue per spectral class (a white core melts into it, js/entities/Star.js). glow.radiusFactor = halo radius as a multiple of the disc radius; glow.alpha = halo strength at the rim.",
|
||
"size": 1536,
|
||
"classColor": { "O": "#9db4ff", "B": "#9db4ff", "A": "#cfd8ff", "F": "#fff4e0", "G": "#ffe9b0", "K": "#ffc07a", "M": "#ff8a64" },
|
||
"glow": { "radiusFactor": 1.55, "alpha": 0.5 }
|
||
},
|
||
"starTypeLabels": {
|
||
"O": "O-type Star",
|
||
"B": "B-type Star",
|
||
"A": "A-type Star",
|
||
"F": "F-type Star",
|
||
"G": "G-type Star",
|
||
"K": "K-type Star",
|
||
"M": "M-type Star"
|
||
},
|
||
"shipClearance": 50,
|
||
"spawnDistanceFromEdge": 150,
|
||
"solarSystem": {
|
||
"enabled": true,
|
||
"minSpacing": 6400,
|
||
"maxSpacing": 15360,
|
||
"homeMaxSpacing": 10240
|
||
}
|
||
}
|