Add the entities.png manifest, paste-in template and sprite loader
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>
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user