diff --git a/Tupfile.lua b/Tupfile.lua index f68cc7b0..4a60e63a 100644 --- a/Tupfile.lua +++ b/Tupfile.lua @@ -100,14 +100,36 @@ tup.foreach_rule( -- Padded Dex -for dir in iter{"front", "front-cosmetic", "front-shiny", "front-shiny-cosmetic"} do - tup.foreach_rule( - rep{"src/canonical/dex/{dir}/*", dir=dir}, - makecmd{ - display="pad dex %f", - pad{w=120, h=120}, - compresspng{config="DEX"} - }, - rep{"build/padded-dex/canonical/{dir}/%b", dir=dir} - ) +for canon in iter{"canonical", "cap"} do + for dir in iter{"front", "front-cosmetic", "front-shiny", "front-shiny-cosmetic"} do + tup.foreach_rule( + rep{"src/{canon}/dex/{dir}/*", canon=canon, dir=dir}, + makecmd{ + display="pad dex %f", + pad{w=120, h=120}, + compresspng{config="DEX"} + }, + rep{"build/padded-dex/{canon}/{dir}/%b", canon=canon, dir=dir} + ) + end +end + +-- Build missing CAP dex + +for folder in iter({"front", "front-shiny", "front-cosmetic", "front-shiny-cosmetic"}) do + for file in iter(mergededup(glob(rep{"src/cap/models/{folder}/*.gif", folder=folder}), + glob(rep{"src/cap/sprites/gen5/{folder}/*.gif", folder=folder}), + tup.base)) do + if not fileexists(rep{"src/cap/dex/{folder}/{base}.png", folder=folder, base=tup.base(file)}) then + tup.rule( + file, + makecmd{ + display=rep{"missing dex cap {base} -> {folder}/{file}", folder=folder, base=tup.base(file), file=file}, + "convert %f'[0]' -trim %o", + "mogrify -background transparent -gravity center -extent 120x120 %o" + }, + rep{"build/padded-dex/cap/{folder}/{base}.png", folder=folder,base=tup.base(file)} + ) + end + end end diff --git a/ps.deploy.js b/ps.deploy.js index 03cb878f..d83857bf 100644 --- a/ps.deploy.js +++ b/ps.deploy.js @@ -88,12 +88,16 @@ transform(toPSSpriteID, () => { sel( "build/padded-dex/canonical/front", "build/padded-dex/canonical/front-cosmetic", + "build/padded-dex/cap/front", + "build/padded-dex/cap/front-cosmetic", ); dest("dex-shiny"); sel( "build/padded-dex/canonical/front-shiny", "build/padded-dex/canonical/front-shiny-cosmetic", + "build/padded-dex/cap/front", + "build/padded-dex/cap/front-cosmetic", ); dest("misc"); diff --git a/util/tup-ext.lua b/util/tup-ext.lua index 0112c3d4..50ef471a 100644 --- a/util/tup-ext.lua +++ b/util/tup-ext.lua @@ -58,3 +58,8 @@ function makecmd(cmds) end return cmd end + +function fileexists(file) + local matched = glob(file) + return #matched > 0 +end