83 lines
2.4 KiB
TypeScript
83 lines
2.4 KiB
TypeScript
import AdmZip from "adm-zip";
|
|
import fs from "node:fs";
|
|
|
|
const DATA = JSON.parse(fs.readFileSync("./data.json", "utf-8"));
|
|
const chapters = fs.readdirSync("../_sprites/original");
|
|
|
|
function add_singles(chapter, sprite_name) {
|
|
const img_name = `${sprite_name}.png`;
|
|
if (!fs.existsSync(`../_sprites/translation/${img_name}`)) return;
|
|
|
|
fs.copyFileSync(
|
|
`../_sprites/translation/${img_name}`,
|
|
`../_sprites/sorted/${chapter}/${img_name}`
|
|
);
|
|
|
|
if (fs.existsSync(`../_sprites/translation/sp_${img_name}`)) {
|
|
fs.copyFileSync(
|
|
`../_sprites/translation/sp_${img_name}`,
|
|
`../_sprites/sorted/${chapter}/sp_${img_name}`
|
|
);
|
|
}
|
|
}
|
|
|
|
function add_animations(chapter, sprite_name) {
|
|
if (
|
|
fs.existsSync(`../_sprites/translation/${sprite_name}`) &&
|
|
!fs.existsSync(`../_sprites/sorted/${chapter}/${sprite_name}`)
|
|
) {
|
|
fs.cpSync(
|
|
`../_sprites/original/${chapter}/${sprite_name}`,
|
|
`../_sprites/sorted/${chapter}/${sprite_name}`,
|
|
{ recursive: true, force: true }
|
|
);
|
|
} else return;
|
|
|
|
if (fs.existsSync(`../_sprites/translation/sp_${sprite_name}`)) {
|
|
fs.cpSync(
|
|
`../_sprites/original/${chapter}/${sprite_name}`,
|
|
`../_sprites/sorted/${chapter}/sp_${sprite_name}`,
|
|
{ recursive: true, force: true }
|
|
);
|
|
}
|
|
|
|
const sprite_frames = DATA[chapter][sprite_name];
|
|
for (let frame of sprite_frames) {
|
|
const img_name = `${sprite_name}_${frame}.png`;
|
|
if (!fs.existsSync(`../_sprites/translation/${sprite_name}/${img_name}`))
|
|
continue;
|
|
|
|
fs.copyFileSync(
|
|
`../_sprites/translation/${sprite_name}/${img_name}`,
|
|
`../_sprites/sorted/${chapter}/${sprite_name}/${img_name}`
|
|
);
|
|
|
|
if (
|
|
fs.existsSync(`../_sprites/translation/sp_${sprite_name}/sp_${img_name}`)
|
|
) {
|
|
fs.copyFileSync(
|
|
`../_sprites/translation/sp_${sprite_name}/sp_${img_name}`,
|
|
`../_sprites/sorted/${chapter}/sp_${sprite_name}/sp_${img_name}`
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
for (const chapter of chapters) {
|
|
if (!chapter.endsWith(".DS_Store")) {
|
|
if (!fs.existsSync(`../_sprites/sorted`))
|
|
fs.mkdirSync(`../_sprites/sorted`);
|
|
if (!fs.existsSync(`../_sprites/sorted/${chapter}`))
|
|
fs.mkdirSync(`../_sprites/sorted/${chapter}`);
|
|
|
|
for (const sprite of Object.keys(DATA[chapter])) {
|
|
const frames: any[] = DATA[chapter][sprite];
|
|
|
|
if (frames.length == 1) add_singles(chapter, sprite);
|
|
else add_animations(chapter, sprite);
|
|
}
|
|
}
|
|
}
|
|
|
|
// :D
|