Spaces:
Running on Zero
Running on Zero
| """The Compendium: Claude-authored freeform voxel creatures used as the | |
| starting roster for the all-freeform app. | |
| Each entry is a box-layout in the voxelizer's convention: | |
| x, z = box CENTER; y = box BOTTOM (grows up); y=0 = ground; +z = front (face). | |
| sizes 1-8 per box; left-right symmetric; one dominant body colour + accents. | |
| Content is broad, original creatures (no real-world IP / branded characters): | |
| generic animals, mythical beasts, plants, aquatic life, bugs, aliens, robots. | |
| Common animal body-plans are built parametrically (the `_quad`/`_biped`/… helpers) | |
| so the roster stays coherent and easy to grow; distinctive/weird forms are | |
| hand-authored below. Adding entries needs nothing else — the module, report tool, | |
| and compendium screen all read COMPENDIUM. Keep ids unique. | |
| """ | |
| from __future__ import annotations | |
| _DARK = "#16161f" | |
| _WHITE = "#fbfbff" | |
| def _box(x, y, z, w, h, d, color): | |
| return {"x": int(x), "y": int(y), "z": int(z), | |
| "w": int(w), "h": int(h), "d": int(d), "color": color} | |
| def _shade(hex_color, f=0.7): | |
| """A darker shade of a #rrggbb colour for legs/feet/accents.""" | |
| h = hex_color.lstrip("#") | |
| r, g, b = (int(h[i:i + 2], 16) for i in (0, 2, 4)) | |
| return "#" + "".join(f"{int(c * f):02x}" for c in (r, g, b)) | |
| # --- parametric body plans --------------------------------------------------- | |
| def _quad(body, *, accent=None, eye=_DARK, body_dim=(4, 3, 6), leglen=2, | |
| ears=False, horn=False, tail=True, snout=False): | |
| """A grounded quadruped: 4 corner legs, body, front head with eyes, options.""" | |
| acc = accent or _shade(body) | |
| bw, bh, bd = body_dim | |
| b = [] | |
| lx, lz = max(1, bw // 2), max(1, bd // 2 - 1) | |
| for sx in (-lx, lx): | |
| for sz in (-lz, lz): | |
| b.append(_box(sx, 0, sz, 1, leglen, 1, acc)) | |
| by = leglen | |
| b.append(_box(0, by, 0, bw, bh, bd, body)) | |
| hz = bd // 2 + 1 | |
| hyB = by + max(0, bh - 2) | |
| b.append(_box(0, hyB, hz, 3, 3, 3, body)) | |
| top = hyB + 3 | |
| frontZ = hz + 2 | |
| for sx in (-1, 1): | |
| b.append(_box(sx, hyB + 1, frontZ, 1, 1, 1, eye)) | |
| if snout: | |
| b.append(_box(0, hyB, frontZ, 1, 1, 1, acc)) | |
| if ears: | |
| for sx in (-1, 1): | |
| b.append(_box(sx, top, hz, 1, 1, 1, body)) | |
| if horn: | |
| b.append(_box(0, top, hz + 1, 1, 2, 1, "#fff3c0")) | |
| if tail: | |
| b.append(_box(0, by + 1, -(bd // 2 + 1), 1, 1, 2, body)) | |
| return b | |
| def _biped(body, *, accent=None, eye=_DARK, body_dim=(4, 4, 3), leglen=2, | |
| ears=False, arms=True, tail=False): | |
| acc = accent or _shade(body) | |
| bw, bh, bd = body_dim | |
| b = [] | |
| for sx in (-1, 1): | |
| b.append(_box(sx, 0, 0, 1, leglen, bd - 1, acc)) | |
| by = leglen | |
| b.append(_box(0, by, 0, bw, bh, bd, body)) | |
| hyB = by + bh | |
| b.append(_box(0, hyB, 0, bw, 3, bd, body)) | |
| top = hyB + 3 | |
| fz = bd // 2 + 1 | |
| for sx in (-1, 1): | |
| b.append(_box(sx, hyB + 1, fz, 1, 1, 1, eye)) | |
| if arms: | |
| for sx in (-(bw // 2 + 1), bw // 2 + 1): | |
| b.append(_box(sx, by + 1, 0, 1, 2, 1, body)) | |
| if ears: | |
| for sx in (-1, 1): | |
| b.append(_box(sx, top, 0, 1, 2, 1, body)) | |
| if tail: | |
| b.append(_box(0, by, -(bd // 2 + 1), 1, 2, 1, acc)) | |
| return b | |
| def _bird(body, *, accent=None, beak="#ff8a3d", eye=_DARK, body_dim=(4, 4, 4), | |
| crest=False, longtail=False): | |
| acc = accent or _shade(body) | |
| bw, bh, bd = body_dim | |
| b = [] | |
| for sx in (-1, 1): | |
| b.append(_box(sx, 0, 0, 1, 1, 1, beak)) | |
| by = 1 | |
| b.append(_box(0, by, 0, bw, bh, bd, body)) | |
| for sx in (-(bw // 2 + 1), bw // 2 + 1): | |
| b.append(_box(sx, by + 1, 0, 1, 2, 2, acc)) | |
| fz = bd // 2 + 1 | |
| for sx in (-1, 1): | |
| b.append(_box(sx, by + bh - 1, fz, 1, 1, 1, eye)) | |
| b.append(_box(0, by + bh - 2, fz, 1, 1, 2, beak)) | |
| if crest: | |
| b.append(_box(0, by + bh, 0, 1, 2, 1, accent or beak)) | |
| if longtail: | |
| b.append(_box(0, by + 1, -(bd // 2 + 1), 1, 1, 3, acc)) | |
| return b | |
| def _blob(body, *, accent=None, eye=_WHITE, pupil=_DARK, body_dim=(6, 5, 6), feet=True): | |
| acc = accent or _shade(body) | |
| bw, bh, bd = body_dim | |
| b = [_box(0, 0, 0, bw, bh, bd, body)] | |
| fz = bd // 2 | |
| for sx in (-1, 1): | |
| b.append(_box(sx, bh - 2, fz, 1, 2, 1, eye)) | |
| b.append(_box(sx, bh - 2, fz, 1, 1, 1, pupil)) | |
| if feet: | |
| for sx in (-(bw // 2 - 1), bw // 2 - 1): | |
| b.append(_box(sx, 0, fz - 1, 1, 1, 1, acc)) | |
| return b | |
| def _bug(body, *, accent=None, eye=_DARK, body_dim=(5, 2, 6), legs=3, horn=False, spots=None): | |
| acc = accent or _shade(body) | |
| bw, bh, bd = body_dim | |
| b = [_box(0, 1, 0, bw, bh, bd, body)] | |
| b.append(_box(0, 1 + bh, -1, bw - 2, 1, bd - 2, acc)) | |
| hz = bd // 2 + 1 | |
| b.append(_box(0, 1, hz, 3, 2, 2, acc)) | |
| for sx in (-1, 1): | |
| b.append(_box(sx, 2, hz + 1, 1, 1, 1, eye)) | |
| zs = [(-(bd // 2 - 1)) + i * ((bd) // max(1, legs - 1)) for i in range(legs)] | |
| for sz in zs: | |
| for sx in (-(bw // 2 + 1), bw // 2 + 1): | |
| b.append(_box(sx, 0, sz, 1, 1, 1, acc)) | |
| if horn: | |
| b.append(_box(0, 3, hz + 1, 1, 2, 1, "#fff3c0")) | |
| if spots: | |
| for (sx, sz) in ((-1, -1), (1, 1)): | |
| b.append(_box(sx, 1 + bh, sz, 1, 1, 1, spots)) | |
| return b | |
| def _fish(body, *, accent=None, eye=_WHITE, pupil=_DARK, body_dim=(5, 4, 3)): | |
| acc = accent or _shade(body) | |
| bw, bh, bd = body_dim | |
| b = [_box(0, 1, 0, bw, bh, bd, body)] | |
| b.append(_box(-(bw // 2 + 1), 1, 0, 1, 3, 2, acc)) # tail fin (back = -x) | |
| b.append(_box(0, 1 + bh, 0, 1, 1, 2, acc)) # top fin | |
| ex = bw // 2 | |
| b.append(_box(ex, 2, 1, 1, 1, 1, eye)) | |
| b.append(_box(ex, 2, 1, 1, 1, 1, pupil)) | |
| return b | |
| def _serpent(body, *, accent=None, eye=_DARK, segs=4, horn=False): | |
| acc = accent or _shade(body) | |
| b = [] | |
| for i in range(segs): | |
| z = -segs + 1 + i * 2 | |
| y = i // 2 | |
| b.append(_box(0, y, z, 2, 2, 2, body if i % 2 else acc)) | |
| hz = -segs + 1 + (segs - 1) * 2 + 2 | |
| hy = (segs - 1) // 2 + 1 | |
| b.append(_box(0, hy, hz, 3, 3, 3, body)) | |
| for sx in (-1, 1): | |
| b.append(_box(sx, hy + 2, hz + 1, 1, 1, 1, eye)) | |
| if horn: | |
| for sx in (-1, 1): | |
| b.append(_box(sx, hy + 3, hz, 1, 1, 1, "#fff3c0")) | |
| return b | |
| def _c(cid, name, theme, boxes): | |
| return {"id": cid, "name": name, "theme": theme, "boxes": boxes} | |
| # --- hand-authored distinctive forms (alien / mythical / plant / aquatic) ---- | |
| _SPECIALS = [ | |
| _c("zorblax", "Zorblax", "alien", [ | |
| _box(-1, 0, 0, 1, 2, 1, "#3fcf7a"), _box(1, 0, 0, 1, 2, 1, "#3fcf7a"), | |
| _box(0, 2, 0, 3, 4, 2, "#4be08a"), _box(0, 6, 0, 3, 3, 3, "#4be08a"), | |
| _box(0, 7, 2, 1, 1, 1, _WHITE), _box(0, 7, 2, 1, 1, 1, _DARK), | |
| _box(-1, 9, 0, 1, 2, 1, "#3fcf7a"), _box(1, 9, 0, 1, 2, 1, "#3fcf7a"), | |
| _box(-1, 11, 0, 1, 1, 1, "#ffd24a"), _box(1, 11, 0, 1, 1, 1, "#ffd24a"), | |
| _box(-2, 3, 0, 1, 1, 1, "#3fcf7a"), _box(2, 3, 0, 1, 1, 1, "#3fcf7a"), | |
| ]), | |
| _c("nebulon", "Nebulon", "alien", [ | |
| _box(0, 0, 0, 5, 4, 5, "#7c5cff"), _box(0, 4, 0, 3, 2, 3, "#8f74ff"), | |
| _box(0, 5, 2, 1, 1, 1, _WHITE), _box(-2, 3, 2, 1, 1, 1, _WHITE), _box(2, 3, 2, 1, 1, 1, _WHITE), | |
| _box(0, 5, 2, 1, 1, 1, _DARK), _box(-2, 3, 3, 1, 1, 1, _DARK), _box(2, 3, 3, 1, 1, 1, _DARK), | |
| _box(-2, 0, 2, 1, 1, 1, "#5b3fd6"), _box(2, 0, 2, 1, 1, 1, "#5b3fd6"), | |
| ]), | |
| _c("emberwing", "Emberwing", "mythical", [ | |
| _box(-1, 0, -2, 1, 2, 1, "#b8351f"), _box(1, 0, -2, 1, 2, 1, "#b8351f"), | |
| _box(-1, 0, 2, 1, 2, 1, "#b8351f"), _box(1, 0, 2, 1, 2, 1, "#b8351f"), | |
| _box(0, 2, 0, 3, 3, 6, "#d34328"), _box(0, 4, 4, 3, 3, 2, "#d34328"), | |
| _box(-1, 6, 5, 1, 1, 1, "#ffd24a"), _box(1, 6, 5, 1, 1, 1, "#ffd24a"), | |
| _box(-4, 4, 0, 2, 1, 3, "#8f2415"), _box(4, 4, 0, 2, 1, 3, "#8f2415"), | |
| _box(0, 3, -4, 1, 1, 3, "#ffd24a"), | |
| ]), | |
| _c("griffadon", "Griffadon", "mythical", [ | |
| _box(-1, 0, -2, 1, 2, 1, "#caa05a"), _box(1, 0, -2, 1, 2, 1, "#caa05a"), | |
| _box(-1, 0, 2, 1, 2, 1, "#e8d098"), _box(1, 0, 2, 1, 2, 1, "#e8d098"), | |
| _box(0, 2, 0, 4, 3, 6, "#caa05a"), _box(0, 4, 4, 3, 3, 3, "#f0e8d0"), | |
| _box(-1, 6, 6, 1, 1, 1, _DARK), _box(1, 6, 6, 1, 1, 1, _DARK), | |
| _box(0, 5, 6, 1, 1, 1, "#ff8a3d"), | |
| _box(-4, 3, 0, 1, 3, 4, "#e8d098"), _box(4, 3, 0, 1, 3, 4, "#e8d098"), | |
| ]), | |
| _c("sproutling", "Sproutling", "plant", [ | |
| _box(0, 0, 0, 1, 4, 1, "#5a8f3a"), _box(-2, 2, 0, 2, 1, 2, "#6fae48"), _box(2, 2, 0, 2, 1, 2, "#6fae48"), | |
| _box(0, 4, 0, 3, 3, 3, "#ffd24a"), _box(0, 5, 2, 1, 1, 1, _DARK), | |
| _box(-1, 7, 0, 1, 1, 1, "#ff7eb0"), _box(1, 7, 0, 1, 1, 1, "#ff7eb0"), | |
| _box(0, 7, -1, 1, 1, 1, "#ff7eb0"), _box(0, 7, 1, 1, 1, 1, "#ff7eb0"), | |
| ]), | |
| _c("mushlet", "Mushlet", "plant", [ | |
| _box(0, 0, 0, 2, 3, 2, "#f0e6d2"), _box(0, 3, 0, 6, 2, 6, "#d83a3a"), | |
| _box(0, 5, 0, 4, 1, 4, "#e85a5a"), | |
| _box(-2, 3, 2, 1, 1, 1, _WHITE), _box(2, 3, 2, 1, 1, 1, _WHITE), _box(0, 4, 3, 1, 1, 1, _WHITE), | |
| _box(-1, 1, 1, 1, 1, 1, _DARK), _box(1, 1, 1, 1, 1, 1, _DARK), | |
| ]), | |
| _c("squidlet", "Squidlet", "aquatic", [ | |
| _box(0, 3, 0, 4, 4, 4, "#c75cc7"), | |
| _box(-1, 5, 2, 1, 1, 1, _WHITE), _box(1, 5, 2, 1, 1, 1, _WHITE), | |
| _box(-1, 5, 2, 1, 1, 1, _DARK), _box(1, 5, 2, 1, 1, 1, _DARK), | |
| _box(-2, 0, -1, 1, 3, 1, "#b04bb0"), _box(2, 0, -1, 1, 3, 1, "#b04bb0"), | |
| _box(-2, 0, 1, 1, 3, 1, "#b04bb0"), _box(2, 0, 1, 1, 3, 1, "#b04bb0"), | |
| _box(0, 0, 2, 1, 3, 1, "#b04bb0"), | |
| ]), | |
| _c("jellybub", "Jellybub", "aquatic", [ | |
| _box(0, 4, 0, 5, 3, 5, "#8fd6e8"), _box(0, 3, 0, 5, 1, 5, "#a8e2f0"), | |
| _box(-1, 5, 2, 1, 1, 1, _DARK), _box(1, 5, 2, 1, 1, 1, _DARK), | |
| _box(-2, 0, -1, 1, 3, 1, "#6fc0d6"), _box(2, 0, 1, 1, 3, 1, "#6fc0d6"), | |
| _box(0, 0, -2, 1, 3, 1, "#6fc0d6"), _box(0, 1, 2, 1, 2, 1, "#6fc0d6"), | |
| _box(-1, 0, 1, 1, 3, 1, "#6fc0d6"), _box(1, 0, -1, 1, 3, 1, "#6fc0d6"), | |
| ]), | |
| _c("gloop", "Gloop", "mythical", [ | |
| _box(0, 0, 0, 5, 4, 5, "#5fd17a"), _box(0, 4, 0, 3, 1, 3, "#74e08f"), | |
| _box(-1, 2, 2, 1, 2, 1, _WHITE), _box(1, 2, 2, 1, 2, 1, _WHITE), | |
| _box(-1, 2, 2, 1, 1, 1, _DARK), _box(1, 2, 2, 1, 1, 1, _DARK), | |
| _box(2, 0, -1, 1, 1, 1, "#74e08f"), _box(-2, 0, 1, 1, 1, 1, "#74e08f"), | |
| ]), | |
| _c("boolet", "Boolet", "mythical", [ | |
| _box(0, 1, 0, 4, 5, 4, _WHITE), _box(0, 0, -1, 1, 1, 1, "#e8e8f0"), | |
| _box(0, 0, 1, 1, 1, 1, "#e8e8f0"), _box(-1, 0, 0, 1, 1, 1, "#e8e8f0"), _box(1, 0, 0, 1, 1, 1, "#e8e8f0"), | |
| _box(-1, 4, 2, 1, 1, 1, _DARK), _box(1, 4, 2, 1, 1, 1, _DARK), | |
| _box(0, 3, 2, 1, 1, 1, "#b0b0c8"), | |
| ]), | |
| _c("monoeye", "Monoeye", "alien", [ | |
| _box(0, 0, 0, 4, 4, 4, "#ff6f59"), | |
| _box(0, 1, 2, 2, 2, 1, _WHITE), _box(0, 1, 2, 1, 1, 1, _DARK), | |
| _box(0, 4, 0, 1, 2, 1, "#c44a37"), _box(0, 6, 0, 1, 1, 1, "#ffd24a"), | |
| _box(-2, 0, 0, 1, 1, 2, "#c44a37"), _box(2, 0, 0, 1, 1, 2, "#c44a37"), | |
| ]), | |
| ] | |
| # --- broad animals via body-plan builders ------------------------------------ | |
| _ANIMALS = [ | |
| # quadruped mammals | |
| _c("catkin", "Catkin", "mammal", _quad("#c8923f", ears=True, tail=True)), | |
| _c("pupper", "Pupper", "mammal", _quad("#a4663a", body_dim=(4, 3, 6), ears=True, snout=True)), | |
| _c("foxkit", "Foxkit", "mammal", _quad("#e8722e", accent=_WHITE, ears=True, tail=True)), | |
| _c("bearcub", "Bearcub", "mammal", _quad("#6e4a2f", body_dim=(5, 4, 6), leglen=1, ears=True, tail=False)), | |
| _c("fawnix", "Fawnix", "mammal", _quad("#caa06a", body_dim=(3, 3, 6), leglen=3, horn=True, tail=True)), | |
| _c("liontail", "Liontail", "mammal", _quad("#d6a23f", accent="#8a5a22", ears=True, tail=True, snout=True)), | |
| _c("pigwig", "Pigwig", "mammal", _quad("#f0a0b8", body_dim=(5, 3, 5), leglen=1, ears=True, snout=True)), | |
| _c("moocow", "Moocow", "mammal", _quad("#f4f0ea", accent="#3a2f2a", body_dim=(5, 4, 7), horn=True, tail=True)), | |
| _c("woolly", "Woolly", "mammal", _quad("#f3efe6", accent="#caa06a", body_dim=(5, 4, 5), leglen=2, ears=True)), | |
| _c("mousekin", "Mousekin", "mammal", _quad("#b0a8b8", body_dim=(3, 2, 4), leglen=1, ears=True, tail=True)), | |
| _c("pando", "Pando", "mammal", _quad(_WHITE, accent=_DARK, body_dim=(5, 4, 6), leglen=1, ears=True)), | |
| _c("trunky", "Trunky", "mammal", _quad("#9aa6b0", body_dim=(6, 5, 7), leglen=2, ears=True, snout=True, tail=True)), | |
| _c("hoglet", "Hoglet", "mammal", _quad("#8a6a4a", accent="#3a2a1a", body_dim=(4, 3, 5), leglen=1, snout=True)), | |
| _c("bunbun", "Bunbun", "mammal", _biped("#f0ece4", accent="#d8c8b8", body_dim=(3, 3, 3), ears=True, tail=True)), | |
| # bipeds | |
| _c("roborto", "Roborto", "robot", _biped("#8fa8c0", accent="#5a6e84", body_dim=(4, 4, 3), arms=True, ears=True)), | |
| _c("frostfur", "Frostfur", "mythical", _biped("#dff0ff", accent="#9ec7e8", body_dim=(5, 5, 4), arms=True, ears=False)), | |
| _c("toadling", "Toadling", "amphibian", _biped("#6fae48", accent="#4f8a32", body_dim=(5, 3, 4), leglen=1, arms=True)), | |
| _c("geckle", "Geckle", "reptile", _quad("#5fc06a", body_dim=(3, 2, 6), leglen=1, tail=True)), | |
| # birds | |
| _c("hootley", "Hootley", "bird", _bird("#8a6a4a", body_dim=(4, 4, 3), crest=True)), | |
| _c("quackers", "Quackers", "bird", _bird("#f4e04a", beak="#ff8a3d", body_dim=(4, 3, 4))), | |
| _c("tweetle", "Tweetle", "bird", _bird("#5fb0e8", body_dim=(3, 3, 3), crest=True)), | |
| _c("waddle", "Waddle", "bird", _bird("#2b2b3a", accent=_WHITE, beak="#ff8a3d", body_dim=(4, 5, 3))), | |
| _c("squawk", "Squawk", "bird", _bird("#e8443f", accent="#2fa7d6", body_dim=(3, 4, 3), crest=True, longtail=True)), | |
| # blobs / round | |
| _c("roundmochi", "Roundmochi", "mascot", _blob("#ff9bc7")), | |
| _c("puffball", "Puffball", "mascot", _blob("#b48fe8", body_dim=(5, 5, 5))), | |
| _c("orbit", "Orbit", "alien", _blob("#5fd6c0", body_dim=(5, 4, 5), feet=False)), | |
| _c("yolkie", "Yolkie", "mascot", _blob("#ffd24a", accent="#e8a82e", body_dim=(5, 4, 5))), | |
| # bugs | |
| _c("beetlebot", "Beetlebot", "bug", _bug("#3a7d44", horn=True)), | |
| _c("buzzby", "Buzzby", "bug", _bug("#f4c430", accent=_DARK, body_dim=(4, 3, 5), spots=_DARK)), | |
| _c("spotbug", "Spotbug", "bug", _bug("#d83a3a", accent=_DARK, body_dim=(5, 3, 5), spots=_DARK)), | |
| _c("snailby", "Snailby", "bug", _bug("#caa06a", accent="#8a6a3a", body_dim=(3, 2, 5), legs=2)), | |
| # aquatic | |
| _c("bubblefin", "Bubblefin", "aquatic", _fish("#2fa7d6")), | |
| _c("chompfin", "Chompfin", "aquatic", _fish("#7a8a98", body_dim=(6, 4, 3))), | |
| _c("goldie", "Goldie", "aquatic", _fish("#ff8a3d", body_dim=(4, 4, 3))), | |
| _c("crabbo", "Crabbo", "aquatic", [ | |
| _box(0, 1, 0, 7, 2, 5, "#e8612e"), | |
| _box(-3, 0, 2, 1, 1, 1, "#b8431c"), _box(3, 0, 2, 1, 1, 1, "#b8431c"), | |
| _box(-3, 0, -2, 1, 1, 1, "#b8431c"), _box(3, 0, -2, 1, 1, 1, "#b8431c"), | |
| _box(-4, 2, 3, 2, 2, 2, "#ff7a45"), _box(4, 2, 3, 2, 2, 2, "#ff7a45"), | |
| _box(-1, 3, 3, 1, 2, 1, "#b8431c"), _box(1, 3, 3, 1, 2, 1, "#b8431c"), | |
| _box(-1, 4, 3, 1, 1, 1, _DARK), _box(1, 4, 3, 1, 1, 1, _DARK), | |
| ]), | |
| # reptiles / serpents | |
| _c("slinky", "Slinky", "reptile", _serpent("#69c074", segs=4)), | |
| _c("wyrmlet", "Wyrmlet", "mythical", _serpent("#7c5cff", segs=5, horn=True)), | |
| _c("shellby", "Shellby", "reptile", [ | |
| _box(-2, 0, 2, 1, 1, 1, "#3f6e2a"), _box(2, 0, 2, 1, 1, 1, "#3f6e2a"), | |
| _box(-2, 0, -2, 1, 1, 1, "#3f6e2a"), _box(2, 0, -2, 1, 1, 1, "#3f6e2a"), | |
| _box(0, 1, 0, 5, 2, 6, "#86c46a"), _box(0, 3, 0, 4, 2, 5, "#5a8f3a"), | |
| _box(0, 1, 4, 2, 2, 2, "#86c46a"), | |
| _box(-1, 2, 5, 1, 1, 1, _DARK), _box(1, 2, 5, 1, 1, 1, _DARK), | |
| _box(0, 1, -4, 1, 1, 2, "#86c46a"), | |
| ]), | |
| # plants | |
| _c("prickle", "Prickle", "plant", [ | |
| _box(0, 0, 0, 3, 6, 3, "#4f9c5a"), | |
| _box(-2, 2, 0, 1, 2, 1, "#4f9c5a"), _box(2, 3, 0, 1, 2, 1, "#4f9c5a"), | |
| _box(-1, 5, 2, 1, 1, 1, _DARK), _box(1, 5, 2, 1, 1, 1, _DARK), | |
| _box(0, 6, 0, 1, 1, 1, "#ff7eb0"), | |
| ]), | |
| _c("sunny", "Sunny", "plant", [ | |
| _box(0, 0, 0, 1, 4, 1, "#4f8a32"), | |
| _box(-1, 2, 0, 2, 1, 1, "#6fae48"), _box(1, 2, 0, 2, 1, 1, "#6fae48"), | |
| _box(0, 4, 0, 4, 4, 1, "#5a8f3a"), _box(0, 4, 1, 4, 4, 1, "#ffd24a"), | |
| _box(0, 5, 2, 2, 2, 1, "#8a5a22"), | |
| _box(-1, 6, 3, 1, 1, 1, _DARK), _box(1, 6, 3, 1, 1, 1, _DARK), | |
| ]), | |
| _c("barkle", "Barkle", "plant", [ | |
| _box(-1, 0, 0, 1, 3, 1, "#6e4a2f"), _box(1, 0, 0, 1, 3, 1, "#6e4a2f"), | |
| _box(0, 3, 0, 4, 4, 3, "#7a5a3a"), | |
| _box(0, 7, 0, 5, 2, 4, "#4f9c5a"), _box(0, 9, 0, 3, 1, 3, "#5fb56a"), | |
| _box(-1, 5, 2, 1, 1, 1, _WHITE), _box(1, 5, 2, 1, 1, 1, _WHITE), | |
| _box(-1, 5, 2, 1, 1, 1, _DARK), _box(1, 5, 2, 1, 1, 1, _DARK), | |
| _box(-3, 4, 0, 1, 1, 1, "#7a5a3a"), _box(3, 4, 0, 1, 1, 1, "#7a5a3a"), | |
| ]), | |
| ] | |
| COMPENDIUM: list[dict] = _SPECIALS + _ANIMALS | |