pixelclaw 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,64 @@
1
+ # The manifest (manifest.json)
2
+
3
+ The asset plan a project is built from. Write it with the `plan` tool (`plan(manifest=…)`) or
4
+ `pixelclaw plan <project> --manifest <file>`; either checks it against the schema first and writes
5
+ nothing when it has problems (each reported with its path, like `assets[3].size`).
6
+
7
+ ```json
8
+ {
9
+ "format": "pixelclaw-manifest",
10
+ "version": 1,
11
+ "theme": "One paragraph: the game's place, mood, light and materials.",
12
+ "sets": {
13
+ "ground": { "description": "floors and terrain" },
14
+ "props": { "description": "things that stand on the ground" }
15
+ },
16
+ "export": { "profile": "png" },
17
+ "assets": [
18
+ { "name": "clay", "kind": "tile", "size": "24x24", "set": "ground", "description": "packed red clay", "flat": "clay2" },
19
+ { "name": "bank", "kind": "family", "size": "24x24", "set": "ground", "scheme": "blob47", "inside": "clay", "outside": "grass", "band": "2:outside 1:ink 2:clay0 radius=2" },
20
+ { "name": "urn", "kind": "sprite", "size": "24x24", "set": "props", "height": 14, "description": "a squat glazed urn" },
21
+ { "name": "urn_blue", "kind": "sprite", "size": "24x24", "set": "props", "recolourOf": "urn", "height": 14 },
22
+ { "name": "potter", "kind": "sprite", "size": "24x24", "set": "folk", "frames": 2, "ticks": 12, "views": ["S", "N", "E", "W"], "mirror": { "W": "E" }, "height": 21 },
23
+ { "name": "kiln", "kind": "object", "size": "48x48", "set": "props", "cells": "2x1", "height": 44 },
24
+ { "name": "hollow", "kind": "map", "size": "40x30", "uses": ["bank", "kiln", "urn"] }
25
+ ]
26
+ }
27
+ ```
28
+
29
+ | Field | For | Meaning |
30
+ |---|---|---|
31
+ | `name` | all | a-z, 0-9, `_`, `-`; unique; the asset's name |
32
+ | `kind` | all | tile, sprite, sheet, icon, family, overlay, object, map, font |
33
+ | `size` | all | pixels `WxH` (a family: its tile, square and even; a map: cells `CxR`; a font: a glyph cell) |
34
+ | `set` | all | the group it is judged, reviewed and shown with (default: its kind); must be in `sets` when `sets` is given |
35
+ | `description` | all | what it is meant to read as (the reviewer's brief shows it) |
36
+ | `palette` | all | a project palette (default: the project's) |
37
+ | `scheme`, `inside`, `outside`, `band` | family | the autotile scheme (built in or `schemes/*.json`), the tiles on each side, the band profile |
38
+ | `frames`, `ticks` | animated | frames (per view), ticks per frame |
39
+ | `views`, `mirror` | sprite, object | directions (S, N, E, W) and mirrors (`{ "W": "E" }`) |
40
+ | `cells` | object | the footprint in cells `CxR` |
41
+ | `height` | props, figures | the drawn shape's height in pixels; `consistency` holds the art to it (± 2) |
42
+ | `variantOf`, `recolourOf` | all | a texture variant or a palette-swap recolour of another planned asset of the same kind |
43
+ | `uses` | map | the assets it is built from |
44
+ | `flat` | all | its colour in the flat templates: a palette entry name or `#rrggbb` |
45
+ | `chars` | font | its characters (the characters themselves, or `"32-126"`, `"U+0041-U+005A"`) |
46
+
47
+ Scenes (optional, top level): `"scenes": [{ "name": "kiln_yard", "description": "…", "uses":
48
+ ["clay", "urn", …], "map": "hollow" }]`: the places the game shows, the assets each needs, and the
49
+ map document that builds it (its own `uses` count too). The dashboard shows each scene's missing
50
+ assets; `plan(order="scene")` lists the work scene by scene.
51
+
52
+ What the manifest gives the tools:
53
+ - `new <kind> <name>` with no size, palette or scheme takes them from the asset's entry (and an
54
+ object's cell grid is the project's grid); the line records them, so replay never reads the
55
+ manifest.
56
+ - `consistency` compares an asset with the rest of its set (like with like: ground tiles, figures,
57
+ icons) and with its `height`; plan icons as one set so they share a stroke weight and box fill; a set's check
58
+ thresholds can be set in `project.json` `style.sets.<set>.checks`.
59
+ - `map gen …` on a map the manifest plans stands the objects its `uses` lists (drawn objects and
60
+ sprites, once each) on the generated ground; the line records them as `objects=… fp=…`.
61
+ - `review(set=…)` reviews a set's drawn assets, with a brief from the theme and descriptions.
62
+ - `plan(templates=true)` draws `templates/mockup.png` (one game screen in flat colours, the
63
+ camera's size), `mockup@2x.png` (labelled) and `mockup.txt`, and `<family>.coverage.png|txt`
64
+ (every variant of the scheme laid out in flat colours, to paint over or cut from).