diff --git a/Tupfile.lua b/Tupfile.lua index 3cc77825..f907450c 100644 --- a/Tupfile.lua +++ b/Tupfile.lua @@ -26,7 +26,7 @@ rule{ display="ps trainers sheet", input={}, command={ - "node tools/ps-trainers-sheet src/canonical/trainers %o", + "node tools/ps-sheet trainers src/canonical/trainers %o", compresspng{config="SPRITESHEET"} }, output={"build/ps/trainers-sheet.png"} diff --git a/tools/ps-trainers-sheet/data.js b/tools/ps-sheet/data-trainers.js similarity index 98% rename from tools/ps-trainers-sheet/data.js rename to tools/ps-sheet/data-trainers.js index 5e80d497..a599f45b 100644 --- a/tools/ps-trainers-sheet/data.js +++ b/tools/ps-sheet/data-trainers.js @@ -1,4 +1,5 @@ +// Derived from pokemon-showdown-client/src/battle-dex-data.ts export default { 1: 'lucas', 2: 'dawn', diff --git a/tools/ps-sheet/index.js b/tools/ps-sheet/index.js new file mode 100644 index 00000000..fc294c73 --- /dev/null +++ b/tools/ps-sheet/index.js @@ -0,0 +1,29 @@ + +import cp from 'child_process'; +import path from 'path'; +import BattleAvatarNumbers from './data-trainers.js'; + +const type = process.argv[2]; +const dir = process.argv[3]; +const dest = process.argv[4]; + +if (!dir || !dest) { + throw new Error(`node tools/ps-sheet `); +} + +if (type === 'trainers') { + // Guaranteed to be in the right order by V8, but iirc not by other JS engines. + const trainers = Object.values(BattleAvatarNumbers).map(t => path.join(dir, t) + ".png"); + + cp.execFileSync("montage", [ + ...trainers, + "-background", "transparent", + "-geometry", "80x80>", + "-gravity", "center", + "-tile", "16x", + "-depth", "8", + dest + ]); +} else { + throw new Error(`unknown type: ${type}`); +} diff --git a/tools/ps-trainers-sheet/package.json b/tools/ps-sheet/package.json similarity index 100% rename from tools/ps-trainers-sheet/package.json rename to tools/ps-sheet/package.json diff --git a/tools/ps-trainers-sheet/index.js b/tools/ps-trainers-sheet/index.js deleted file mode 100644 index 9dd82bfd..00000000 --- a/tools/ps-trainers-sheet/index.js +++ /dev/null @@ -1,24 +0,0 @@ - -import cp from 'child_process'; -import path from 'path'; -import BattleAvatarNumbers from './data.js'; - -const dir = process.argv[2]; -const dest = process.argv[3]; - -if (!dir || !dest) { - throw new Error(`node tools/ps-trainers-sheet `); -} - -// Guaranteed to be in the right order by V8, but iirc not by other JS engines. -const trainers = Object.values(BattleAvatarNumbers).map(t => path.join(dir, t) + ".png"); - -cp.execFileSync("montage", [ - ...trainers, - "-background", "transparent", - "-geometry", "80x80>", - "-gravity", "center", - "-tile", "16x", - "-depth", "8", - dest -]);