fertig-classic-games/data/mastervega-artwork.json

78 lines
2.6 KiB
JSON

{
"_readme": "Master of Vega — drop-in artwork manifest. Every sheet starts with path:null, which means VegaArt.js paints a procedural stand-in at exactly the same frame geometry. To use real art, drop the PNG in assets/images/mastervega/ and set its path here — no code changes. Frame layouts are documented in src/games/mastervega/sprites.md and are APPEND-ONLY.",
"_kindReadme": "kind selects the procedural painter in VegaArt.PROC_PAINTERS. Painters are keyed by kind, never by sheet name, so adding a sheet later needs no code change.",
"sheets": {
"ships": {
"key": "vega-ships",
"path": null,
"kind": "ship",
"frameWidth": 96,
"frameHeight": 96,
"cols": 8,
"rows": 10,
"_layout": "One row per species (species.shipFrame), one column per hull (hull.frame). Frame = shipFrame * 8 + hull.frame. Ships face UP at frame rest."
},
"planets": {
"key": "vega-planets",
"path": null,
"kind": "planet",
"frameWidth": 192,
"frameHeight": 192,
"cols": 5,
"rows": 3,
"_layout": "One frame per planetType.frame, 0-14, in the order planetTypes appears in the rules file."
},
"stars": {
"key": "vega-stars",
"path": null,
"kind": "star",
"frameWidth": 192,
"frameHeight": 192,
"cols": 3,
"rows": 3,
"_layout": "One frame per starClass, in rules order: blue, white, yellow, orange, red, brown, binary, pulsar, blackhole."
},
"portraits": {
"key": "vega-portraits",
"path": null,
"kind": "portrait",
"frameWidth": 256,
"frameHeight": 256,
"cols": 5,
"rows": 2,
"_layout": "One frame per species.portraitFrame, 0-9, in rules order."
},
"leaders": {
"key": "vega-leaders",
"path": null,
"kind": "portrait",
"frameWidth": 160,
"frameHeight": 160,
"cols": 4,
"rows": 4,
"_layout": "One frame per leader.portraitFrame, 0-15, in rules order."
},
"buildings": {
"key": "vega-buildings",
"path": null,
"kind": "icon",
"frameWidth": 64,
"frameHeight": 64,
"cols": 8,
"rows": 2,
"_layout": "One frame per building.frame, 0-15, in rules order."
},
"techicons": {
"key": "vega-techicons",
"path": null,
"kind": "icon",
"frameWidth": 48,
"frameHeight": 48,
"cols": 10,
"rows": 7,
"_layout": "Frames 0-5 are the six tech FIELDS (techFields[].iconFrame); frames 6-65 are the individual techs (techs[].iconFrame). 66-69 spare."
}
}
}