The sheet becomes a fixed grid (one row per entity, one column slot per animation state) described by a sidecar entities.toml that only maps names to rows; the loader reads present states and frame counts off the pixels, so assembling the sheet by hand needs no bookkeeping. tools/mktemplate.py renders the labelled template with low-alpha slot guides. The CGA atlas is kept for larger UI text. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
117 lines
2.6 KiB
TOML
117 lines
2.6 KiB
TOML
# Sidecar manifest for entities.png.
|
||
#
|
||
# The sheet is a grid of 8×8 cells: one entity per row, one fixed column slot per
|
||
# state. States are Idle, Sit, Walk, Action 1, Action 2, Hit, Dead; a slot holds up to
|
||
# `max` frames, left to right. Frames present in a slot are detected from the PNG
|
||
# (a fully transparent cell ends the animation, an empty slot means the entity has no
|
||
# such state and Idle is shown instead) — so this file only says WHERE things are,
|
||
# never how many frames exist.
|
||
#
|
||
# `assets/tilesets/entities-template.png` (from `tools/mktemplate.py`) shows the
|
||
# same layout with labels and slot guides: paste sprites into it, save it as
|
||
# entities.png. The label column and header are outside `origin` and never loaded.
|
||
|
||
[layout]
|
||
cell = 8
|
||
origin = [64, 16] # x, y of the first sprite cell (right of the labels, below the header)
|
||
|
||
# state = [first column (cells, relative to origin), max frames]
|
||
[layout.states]
|
||
idle = [0, 2]
|
||
sit = [2, 2]
|
||
walk = [4, 4]
|
||
action1 = [8, 4]
|
||
action2 = [12, 2]
|
||
hit = [14, 2]
|
||
dead = [16, 2]
|
||
|
||
# name = row (0-based). Order is free, rows must be unique.
|
||
[entities]
|
||
player = 0
|
||
|
||
ghost1 = 1
|
||
ghost2 = 2
|
||
mutant_rat = 3
|
||
slime1 = 4
|
||
slime2 = 5
|
||
slime3 = 6
|
||
ent = 7
|
||
shroom = 8
|
||
floating_eye = 9
|
||
|
||
chick = 10
|
||
hen = 11
|
||
rooster = 12
|
||
fox_kit = 13
|
||
fox = 14
|
||
rabbit_kit = 15
|
||
rabbit = 16
|
||
mouse_pup = 17
|
||
mouse = 18
|
||
kitten1 = 19
|
||
cat1 = 20
|
||
kitten2 = 21
|
||
cat2 = 22
|
||
puppy = 23
|
||
dog = 24
|
||
foal1 = 25
|
||
horse1 = 26
|
||
foal2 = 27
|
||
horse2 = 28
|
||
foal3 = 29
|
||
horse3 = 30
|
||
foal4 = 31
|
||
horse4 = 32
|
||
|
||
baby_bird1 = 33
|
||
bird1 = 34
|
||
baby_bird2 = 35
|
||
bird2 = 36
|
||
cardinal_chick = 37
|
||
cardinal = 38
|
||
baby_eagle = 39
|
||
eagle = 40
|
||
baby_crow = 41
|
||
crow = 42
|
||
|
||
piglet = 43
|
||
pig = 44
|
||
calf = 45
|
||
cattle = 46
|
||
kid = 47
|
||
goat = 48
|
||
lamb = 49
|
||
sheep = 50
|
||
duckling = 51
|
||
duck = 52
|
||
wolf_pup = 53
|
||
wolf = 54
|
||
doe = 55
|
||
buck = 56
|
||
boar_piglet = 57
|
||
boar = 58
|
||
bear_cub = 59
|
||
bear = 60
|
||
squirrel_kit = 61
|
||
squirrel = 62
|
||
turkey_chick = 63
|
||
turkey = 64
|
||
opossum_joey = 65
|
||
opossum = 66
|
||
skunk_kit = 67
|
||
skunk = 68
|
||
raccoon_cub = 69
|
||
raccoon = 70
|
||
|
||
fish1 = 71
|
||
fish2 = 72
|
||
fish3 = 73
|
||
fish4 = 74
|
||
bees = 75
|
||
bugs1 = 76
|
||
bugs2 = 77
|
||
butterfly1 = 78
|
||
butterfly2 = 79
|
||
butterfly3 = 80
|
||
butterfly4 = 81
|