diff --git a/Tupfile.lua b/Tupfile.lua index 2521d90a..14a6b82d 100644 --- a/Tupfile.lua +++ b/Tupfile.lua @@ -56,10 +56,12 @@ function twittersprite(input, output) ) end -local files = - {"src/canonical/models/front/*", "src/cap/models/front/*", - -- TODO: only pick noncanonical that aren't already in models/ - "src/cap/sprites/gen5/front/*"} +-- TODO: nicer API +local files = mergededup( + glob("src/cap/sprites/gen5/front/*"), + glob{"src/canonical/models/front/*", "src/cap/models/front/*"}, + tup.base +) fbsprite(files, "build/smogon/fbsprites/xy/%B.png") twittersprite(files, "build/smogon/twittersprites/xy/%B.png") diff --git a/ps.deploy.js b/ps.deploy.js index eb881c00..74b73959 100644 --- a/ps.deploy.js +++ b/ps.deploy.js @@ -5,32 +5,50 @@ transform(toPSSpriteID, () => { "src/canonical/models/front", "src/canonical/models/front-cosmetic", "src/canonical/models/front-misc/Substitute.gif", - "src/cap/models/front", - "src/cap/sprites/gen5/front" ); + overwrite(() => { + sel( + "src/cap/sprites/gen5/front", + "src/cap/models/front" + ); + }); dest("ani-back"); sel( "src/canonical/models/back", "src/canonical/models/back-cosmetic", "src/canonical/models/back-misc/Substitute.gif", - "src/cap/models/back", - "src/cap/sprites/gen5/back" ); + overwrite(() => { + sel( + "src/cap/sprites/gen5/back", + "src/cap/models/back" + ); + }); dest("ani-shiny"); sel( "src/canonical/models/front-shiny", "src/canonical/models/front-shiny-cosmetic", - "src/cap/models/front-shiny", ); + overwrite(() => { + sel( + "src/cap/sprites/gen5/front-shiny", + "src/cap/models/front-shiny" + ); + }); dest("ani-back-shiny"); sel( "src/canonical/models/back-shiny", "src/canonical/models/back-shiny-cosmetic", - "src/cap/models/back-shiny", ); + overwrite(() => { + sel( + "src/cap/sprites/gen5/back-shiny", + "src/cap/models/back-shiny" + ); + }); dest("gen5ani"); sel( diff --git a/src/cap/sprites/gen5/back-shiny/Aurumoth.gif b/src/cap/sprites/gen5/back-shiny/Aurumoth.gif new file mode 100644 index 00000000..3101bb0b Binary files /dev/null and b/src/cap/sprites/gen5/back-shiny/Aurumoth.gif differ diff --git a/src/cap/sprites/gen5/back-shiny/Cawmodore.gif b/src/cap/sprites/gen5/back-shiny/Cawmodore.gif new file mode 100644 index 00000000..a9366875 Binary files /dev/null and b/src/cap/sprites/gen5/back-shiny/Cawmodore.gif differ diff --git a/src/canonical/models/back-shiny/Malaconda.gif b/src/cap/sprites/gen5/back-shiny/Malaconda.gif similarity index 100% rename from src/canonical/models/back-shiny/Malaconda.gif rename to src/cap/sprites/gen5/back-shiny/Malaconda.gif diff --git a/src/cap/sprites/gen5/back-shiny/Mollux.gif b/src/cap/sprites/gen5/back-shiny/Mollux.gif new file mode 100644 index 00000000..f605331b Binary files /dev/null and b/src/cap/sprites/gen5/back-shiny/Mollux.gif differ diff --git a/src/canonical/models/back-shiny/Necturna.gif b/src/cap/sprites/gen5/back-shiny/Necturna.gif similarity index 100% rename from src/canonical/models/back-shiny/Necturna.gif rename to src/cap/sprites/gen5/back-shiny/Necturna.gif diff --git a/src/cap/sprites/gen5/back-shiny/Plasmanta.gif b/src/cap/sprites/gen5/back-shiny/Plasmanta.gif new file mode 100755 index 00000000..c417a536 Binary files /dev/null and b/src/cap/sprites/gen5/back-shiny/Plasmanta.gif differ diff --git a/src/cap/sprites/gen5/back-shiny/Tomohawk.gif b/src/cap/sprites/gen5/back-shiny/Tomohawk.gif new file mode 100644 index 00000000..210ce34a Binary files /dev/null and b/src/cap/sprites/gen5/back-shiny/Tomohawk.gif differ diff --git a/src/cap/sprites/gen5/back-shiny/Volkraken.gif b/src/cap/sprites/gen5/back-shiny/Volkraken.gif new file mode 100755 index 00000000..cc61be0f Binary files /dev/null and b/src/cap/sprites/gen5/back-shiny/Volkraken.gif differ diff --git a/src/cap/sprites/gen5/back/Aurumoth.gif b/src/cap/sprites/gen5/back/Aurumoth.gif new file mode 100644 index 00000000..a1a8048f Binary files /dev/null and b/src/cap/sprites/gen5/back/Aurumoth.gif differ diff --git a/src/cap/sprites/gen5/back/Cawmodore.gif b/src/cap/sprites/gen5/back/Cawmodore.gif new file mode 100644 index 00000000..6eb33b8d Binary files /dev/null and b/src/cap/sprites/gen5/back/Cawmodore.gif differ diff --git a/src/cap/sprites/gen5/back/Mollux.gif b/src/cap/sprites/gen5/back/Mollux.gif new file mode 100644 index 00000000..b360cd66 Binary files /dev/null and b/src/cap/sprites/gen5/back/Mollux.gif differ diff --git a/src/cap/sprites/gen5/back/Plasmanta.gif b/src/cap/sprites/gen5/back/Plasmanta.gif new file mode 100755 index 00000000..2c9fd4b6 Binary files /dev/null and b/src/cap/sprites/gen5/back/Plasmanta.gif differ diff --git a/src/cap/sprites/gen5/back/Tomohawk.gif b/src/cap/sprites/gen5/back/Tomohawk.gif new file mode 100644 index 00000000..159d7deb Binary files /dev/null and b/src/cap/sprites/gen5/back/Tomohawk.gif differ diff --git a/src/cap/sprites/gen5/back/Volkraken.gif b/src/cap/sprites/gen5/back/Volkraken.gif new file mode 100755 index 00000000..19f51ad9 Binary files /dev/null and b/src/cap/sprites/gen5/back/Volkraken.gif differ diff --git a/src/cap/sprites/gen5/front-shiny/Aurumoth.gif b/src/cap/sprites/gen5/front-shiny/Aurumoth.gif new file mode 100644 index 00000000..78e5bf2c Binary files /dev/null and b/src/cap/sprites/gen5/front-shiny/Aurumoth.gif differ diff --git a/src/cap/sprites/gen5/front-shiny/Cawmodore.gif b/src/cap/sprites/gen5/front-shiny/Cawmodore.gif new file mode 100644 index 00000000..d4f6df1b Binary files /dev/null and b/src/cap/sprites/gen5/front-shiny/Cawmodore.gif differ diff --git a/src/canonical/models/front-shiny/Malaconda.gif b/src/cap/sprites/gen5/front-shiny/Malaconda.gif similarity index 100% rename from src/canonical/models/front-shiny/Malaconda.gif rename to src/cap/sprites/gen5/front-shiny/Malaconda.gif diff --git a/src/cap/sprites/gen5/front-shiny/Mollux.gif b/src/cap/sprites/gen5/front-shiny/Mollux.gif new file mode 100644 index 00000000..2f4e0e9e Binary files /dev/null and b/src/cap/sprites/gen5/front-shiny/Mollux.gif differ diff --git a/src/canonical/models/front-shiny/Necturna.gif b/src/cap/sprites/gen5/front-shiny/Necturna.gif similarity index 100% rename from src/canonical/models/front-shiny/Necturna.gif rename to src/cap/sprites/gen5/front-shiny/Necturna.gif diff --git a/src/cap/sprites/gen5/front-shiny/Plasmanta.gif b/src/cap/sprites/gen5/front-shiny/Plasmanta.gif new file mode 100755 index 00000000..9c587503 Binary files /dev/null and b/src/cap/sprites/gen5/front-shiny/Plasmanta.gif differ diff --git a/src/cap/sprites/gen5/front-shiny/Tomohawk.gif b/src/cap/sprites/gen5/front-shiny/Tomohawk.gif new file mode 100644 index 00000000..9640c5a1 Binary files /dev/null and b/src/cap/sprites/gen5/front-shiny/Tomohawk.gif differ diff --git a/src/cap/sprites/gen5/front-shiny/Volkraken.gif b/src/cap/sprites/gen5/front-shiny/Volkraken.gif new file mode 100755 index 00000000..52871c91 Binary files /dev/null and b/src/cap/sprites/gen5/front-shiny/Volkraken.gif differ diff --git a/src/cap/sprites/gen5/front/Aurumoth.gif b/src/cap/sprites/gen5/front/Aurumoth.gif new file mode 100644 index 00000000..109dc34a Binary files /dev/null and b/src/cap/sprites/gen5/front/Aurumoth.gif differ diff --git a/src/cap/sprites/gen5/front/Cawmodore.gif b/src/cap/sprites/gen5/front/Cawmodore.gif new file mode 100644 index 00000000..8f123817 Binary files /dev/null and b/src/cap/sprites/gen5/front/Cawmodore.gif differ diff --git a/src/cap/sprites/gen5/front/Mollux.gif b/src/cap/sprites/gen5/front/Mollux.gif new file mode 100644 index 00000000..6a63c5db Binary files /dev/null and b/src/cap/sprites/gen5/front/Mollux.gif differ diff --git a/src/cap/sprites/gen5/front/Plasmanta.gif b/src/cap/sprites/gen5/front/Plasmanta.gif new file mode 100755 index 00000000..f444bd6d Binary files /dev/null and b/src/cap/sprites/gen5/front/Plasmanta.gif differ diff --git a/src/cap/sprites/gen5/front/Tomohawk.gif b/src/cap/sprites/gen5/front/Tomohawk.gif new file mode 100644 index 00000000..5a205e7f Binary files /dev/null and b/src/cap/sprites/gen5/front/Tomohawk.gif differ diff --git a/src/cap/sprites/gen5/front/Volkraken.gif b/src/cap/sprites/gen5/front/Volkraken.gif new file mode 100755 index 00000000..e2da1418 Binary files /dev/null and b/src/cap/sprites/gen5/front/Volkraken.gif differ diff --git a/util/lua-ext.lua b/util/lua-ext.lua index 5fc4c5f9..40ab95d9 100644 --- a/util/lua-ext.lua +++ b/util/lua-ext.lua @@ -51,4 +51,19 @@ function rep(str, vars) end)) end - +-- Merge, preferring elem2 when f(elem1) == f(elem2) +function mergededup(table1, table2, f) + local seen = {} + for v in iter(table1) do + seen[f(v)] = v + end + for v in iter(table2) do + seen[f(v)] = v + end + local result = {} + -- Can't be iter, because non-numeric keys + for _, v in pairs(seen) do + table.insert(result, v) + end + return result +end