-- Generate uniform size minisprites foreach_rule{ display="pad g6 minisprite %f", input="src/%{canon}/minisprites/gen6/%{dir}/*.png", command=pad{w=40, h=30}, output="build/gen6-minisprites-padded/%{canon}/%{dir}/%b", dimensions={ canon={"canonical", "noncanonical", "cap"}, dir={"asymmetrical", "misc", "pokemon"} } } -- PS spritesheet rule{ display="ps pokemon sheet", input={"ps-pokemon.sheet.mjs"}, command={ "node tools/sheet %f %o", compresspng{config="SPRITESHEET"} }, output={"build/ps/pokemonicons-sheet.png"} } rule{ display="ps trainers sheet", input={"ps-trainers.sheet.mjs"}, command={ "node tools/sheet %f %o", compresspng{config="SPRITESHEET"} }, output={"build/ps/trainers-sheet.png"} } rule{ display="ps items sheet", input={"ps-items.sheet.mjs"}, command={ "node tools/sheet %f %o", compresspng{config="SPRITESHEET"} }, output={"build/ps/itemicons-sheet.png"} } -- PS pokeball icons local balls = { "src/noncanonical/ui/battle/Ball-Normal.png", "src/noncanonical/ui/battle/Ball-Sick.png", "src/noncanonical/ui/battle/Ball-Null.png", } rule{ display="pokemonicons-pokeball-sheet", input=balls, command={ "convert -background transparent -gravity center -extent 40x30 %f +append %o", compresspng{config="SPRITESHEET"} }, output={"build/ps/pokemonicons-pokeball-sheet.png"} } -- Smogdex social images foreach_rule{ display="fbsprite %f", input={"src/cap/models/front/*", "src/cap/sprites/gen5/front/*", "src/canonical/models/front/*"}, key="%B", command={ "tools/fbsprite.sh %f %o", compresspng{config="MODELS"} }, output="build/smogon/fbsprites/xy/%B.png" } foreach_rule{ display="twittersprite %f", input={"src/cap/models/front/*", "src/cap/sprites/gen5/front/*", "src/canonical/models/front/*"}, key="%B", command={ "tools/twittersprite.sh %f %o", compresspng{config="MODELS"} }, output="build/smogon/twittersprites/xy/%B.png" } -- Trainers foreach_rule{ display="pad trainer %f", input={"src/canonical/trainers/*"}, command={ pad{w=80, h=80}, compresspng{config="TRAINERS"} }, output={"build/padded-trainers/canonical/%b"} } -- Padded Dex foreach_rule{ display="pad dex %f", input="src/%{canon}/dex/%{dir}/*", command={ pad{w=120, h=120}, compresspng{config="DEX"} }, output="build/padded-dex/%{canon}/%{dir}/%b", dimensions={ canon={"canonical", "cap"}, dir={"front", "front-cosmetic", "front-shiny", "front-shiny-cosmetic"} } } -- Build missing CAP dex foreach_rule{ input={"src/cap/sprites/gen5/%{folder}/*.gif", "src/cap/models/%{folder}/*.gif"}, display="missing dex cap %B -> %{folder}/%f", command={ "convert %f'[0]' -trim %o", "mogrify -background transparent -gravity center -extent 120x120 %o", compresspng{config="DEX"} }, key="%B", filter=function() return not glob_matches("src/cap/dex/%{folder}/%B.png") end, output="build/padded-dex/cap/%{folder}/%B.png", dimensions={ folder={"front", "front-shiny", "front-cosmetic", "front-shiny-cosmetic"} } }