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}` ); } 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}` ); } else return; 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}` ); } } 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); } } }