-
Notifications
You must be signed in to change notification settings - Fork 0
Drawing Outlines
A blueprint appears in the drawing table only when it has an outline with the same ID.
For blueprint example:machine:
data/example/blueprint_outlines/machine.json
assets/example/textures/blueprint/machine.png
Subdirectories are supported and must match between the blueprint and outline IDs.
{
"texture": "example:textures/blueprint/machine.png",
"resolution": 128,
"cells": 2200,
"mask": "<base64 bit mask>"
}| Field | Meaning |
|---|---|
texture |
Client-side 256×256 transparent guide texture |
resolution |
Square mask resolution; positive multiple of 8 |
cells |
Number of set bits expected in the mask |
mask |
Base64 bytes, one bit per cell in row-major order |
The decoded mask length must be resolution × resolution ÷ 8 bytes. An empty mask is rejected. A wrong cells value logs a warning but the counted mask value is used.
Do not write the base64 mask by hand. Axiomata includes a generator:
tools/build_blueprint_outlines.py
It converts black ink on white paper into:
- a transparent 256×256 guide texture;
- a 128×128 server mask;
- the outline JSON with the correct cell count and namespace.
It requires Pillow and takes the source directory, texture output directory, data output directory and namespace:
python tools/build_blueprint_outlines.py <source> <textures> <data> <namespace>
Subdirectories under <source> are preserved in both outputs.
The texture and mask must come from the same source image or the visible guide and server scoring will disagree.