Files

78 lines
4.5 KiB
Lua

-- gen_extras.lua — 5 background critters (each 32x24: 2-frame walk loop)
-- squirrel / hedgehog / fox / pig / chick (profile, facing left)
local ROOT = "/Users/leidianyayi/Documents/GitHub/ModelTest20260714/Kimi-K3/"
local H = dofile(ROOT .. "tools/aseprite/helpers.lua")
local function squirrel(t, f)
t.discn(11, 9, 4, "honey_d"); t.discn(12, 6, 3, "honey"); t.pn(13, 4, "honey_l") -- bushy tail
t.ellipsen(6, 15, 5, 4, "honey")
t.ellipsen(6, 16, 3, 2, "cream")
t.discn(4, 10, 3, "honey")
t.pn(2, 7, "honey"); t.pn(3, 7, "honey"); t.pn(2, 8, "honey_d") -- ear
t.pn(2, 10, "ink"); t.pn(1, 12, "brown_d") -- eye / nose
if f == 0 then t.rectn(4, 19, 2, 3, "brown_d"); t.rectn(8, 19, 2, 3, "brown_d")
else t.rectn(3, 19, 2, 3, "brown_d"); t.rectn(9, 19, 2, 2, "brown_d") end
end
local function hedgehog(t, f)
t.discn(8, 13, 7, "brown_d") -- spiny body
t.discn(8, 13, 6, "brown_l")
for _, p in ipairs({ { 4, 8 }, { 7, 7 }, { 10, 8 }, { 12, 10 }, { 5, 11 }, { 9, 11 }, { 12, 13 } }) do
t.pn(p[1], p[2], "brown_dd") -- spines
end
t.discn(3, 14, 3, "cream_d") -- face
t.pn(2, 13, "ink"); t.pn(0, 15, "brown_dd") -- eye / nose
t.pn(3, 16, "brown_d")
if f == 0 then t.rectn(5, 19, 2, 2, "brown_d"); t.rectn(9, 19, 2, 2, "brown_d")
else t.rectn(4, 19, 2, 2, "brown_d"); t.rectn(10, 19, 2, 2, "brown_d") end
end
local function fox(t, f)
t.discn(12, 13, 4, "honey_d"); t.pn(14, 12, "cream"); t.pn(15, 13, "cream") -- tail, white tip
t.ellipsen(7, 15, 5, 4, "honey") -- body
t.rectn(3, 6, 2, 3, "honey"); t.rectn(6, 6, 2, 3, "honey") -- ears
t.pn(3, 6, "brown_d"); t.pn(6, 6, "brown_d")
t.discn(4, 10, 4, "honey") -- head
t.rectn(1, 11, 3, 3, "honey") -- snout
t.pn(1, 12, "ink"); t.pn(3, 9, "ink") -- nose / eye
t.rectn(1, 13, 3, 2, "cream") -- cheek
if f == 0 then t.rectn(5, 19, 2, 3, "brown_d"); t.rectn(9, 19, 2, 3, "brown_d")
else t.rectn(4, 19, 2, 3, "brown_d"); t.rectn(10, 19, 2, 2, "brown_d") end
end
local function pig(t, f)
t.ellipsen(8, 14, 6, 5, "pink") -- round body
t.pn(13, 12, "pink_d"); t.pn(14, 11, "pink_d"); t.pn(14, 13, "pink_d") -- curly tail
t.discn(4, 10, 4, "pink") -- head
t.rectn(2, 6, 2, 3, "pink"); t.rectn(6, 6, 2, 3, "pink"); t.pn(2, 6, "pink_d"); t.pn(6, 6, "pink_d") -- ears
t.rectn(1, 11, 3, 3, "pink_d") -- snout
t.pn(2, 12, "pink_dd"); t.pn(3, 12, "pink_dd") -- nostrils
t.pn(3, 9, "ink") -- eye
if f == 0 then t.rectn(5, 19, 2, 3, "pink_d"); t.rectn(9, 19, 2, 3, "pink_d")
else t.rectn(4, 19, 2, 3, "pink_d"); t.rectn(10, 19, 2, 2, "pink_d") end
end
local function chick(t, f)
t.discn(8, 13, 5, "yellow") -- body
t.discn(5, 9, 3, "yellow") -- head
t.pn(5, 6, "yellow"); t.pn(6, 7, "yellow") -- tuft
t.discn(9, 13, 2, "yellow_d") -- wing
t.pn(2, 9, "honey"); t.pn(1, 9, "honey_d") -- beak
t.pn(4, 8, "ink") -- eye
t.pn(11, 11, "yellow_d"); t.pn(12, 10, "yellow_d") -- tail
if f == 0 then t.vln(6, 18, 3, "honey_d"); t.vln(9, 18, 3, "honey_d")
else t.vln(5, 18, 3, "honey_d"); t.vln(10, 18, 2, "honey_d") end
end
local extras = {
{ "squirrel", squirrel }, { "hedgehog", hedgehog }, { "fox", fox },
{ "pig", pig }, { "chick", chick },
}
for _, n in ipairs(extras) do
local spr, img = H.new(32, 24)
n[2](H.at(img, 0, 0), 0)
n[2](H.at(img, 16, 0), 1)
spr:saveAs(ROOT .. "public/assets/sprites/extra_" .. n[1] .. ".png")
print("extra_" .. n[1] .. ".png done")
end