Realign pack sheets into the entities layout and fill the sheet

tools/realign_sheet.py strips the blank spacer rows from a documented
Animals/Monsters sheet, drops the dark-box preview copies and moves the
light frames into the manifest's slot columns, so a sheet pastes into the
template as one block. Both sheets are pasted; the manifest gains the
fifth foal/horse pair the Animals sheet actually has.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-20 20:46:02 +02:00
co-authored by Claude Opus 5
parent 11de9b0205
commit 4b4e779b3e
11 changed files with 220 additions and 95 deletions
+7 -2
View File
@@ -23,8 +23,13 @@ many frames a row has, the loader (`game/src/sprites.rs`) reads off the pixels
(leading non-empty cells; empty slot → falls back to idle). `tools/mktemplate.py`
renders the paste-in template `entities-template.png` (labels, header, slot guides at
alpha 48 — invisible to the loader) and carries existing sprites over, so adding rows
is: edit the manifest, rerun the tool, paste, save as `entities.png`. Game code refers
to sprites by name (`sprites.id("hen")`); the id doubles as the entity's `type_id`.
is: edit the manifest, rerun the tool, paste, save as `entities.png`.
`tools/realign_sheet.py <pack sheet>` turns a documented Animals/Monsters sheet into
`assets/work/<Name>-aligned.png`: blank spacer rows removed, only the light frames,
already in the slot columns — one block paste per sheet (Monsters → rows 1–9, Animals
→ rows 10–83; the manifest order follows the sheets, including five foal/horse
pairs). Game code refers to sprites by name (`sprites.id("hen")`); the id doubles as
the entity's `type_id`.
History: this fork started from a client/server multiplayer architecture (authoritative UDP
server, thin client with prediction). The scope was cut to single player in September 2026;