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); } } } // :P