diff --git a/_sprites/unique.txt b/_sprites/unique.txt index c479ee4..faa7469 100644 --- a/_sprites/unique.txt +++ b/_sprites/unique.txt @@ -1,10 +1,19 @@ -Для того, чтобы спрайт добавился в папку sorted нужно написать его название и главу в списке ниже! +Для того, чтобы спрайт добавился в папку sorted, нужно написать его название и главу в списке «УНИКАЛЬНЫЕ ДЛЯ РУСИФИКАТОРА»! Примеры: chapter3/sprite1 - Добавит в папку ТРЕТЬЕЙ главы спрайт sprite1 (будь то папка с анимацией или просто спрайт) chapter2/sprite3 - Добавит в папку ВТОРОЙ главы спрайт sprite3 (будь то папка с анимацией или просто спрайт) +Если количество кадров у анимированного спрайта отличается от оригинала, то нужно написать его название в списке «»! +!! ВНИМАНИЕ !! +Такое нужно делать только в том случае, если у спрайта отличается ВСЯ анимация. +В случае, когда у спрайта, допустим, просто переведён один кадр, а остальные нужно оставить ТАКИМИИ ЖЕ, то заносить его в список НЕ НУЖНО! + + УНИКАЛЬНЫЕ ДЛЯ РУСИФИКАТОРА: chapter1/spr_blockler_и chapter1/spr_blockler_с chapter3/spr_funnytext_loves chapter3/spr_funnytext_star2 + + +УНИКАЛЬНОЕ КОЛ-ВО КАДРОВ: \ No newline at end of file diff --git a/scripts/sort.ts b/scripts/sort.ts index 56760a3..957bc3f 100644 --- a/scripts/sort.ts +++ b/scripts/sort.ts @@ -1,4 +1,3 @@ -import AdmZip from "adm-zip"; import fs from "node:fs"; const SPECIALS = ["sp", "spm"]; @@ -9,10 +8,16 @@ const UNIQUES = fs .readFileSync("../_sprites/unique.txt", "utf-8") .split("УНИКАЛЬНЫЕ ДЛЯ РУСИФИКАТОРА:") .at(-1) - ?.split("\n"); + ?.split("УНИКАЛЬНОЕ КОЛ-ВО КАДРОВ:"); -UNIQUES?.shift(); -if (UNIQUES?.at(-1) == "") UNIQUES?.pop(); +const UNIQUES_NAMES = UNIQUES != undefined ? UNIQUES[0].split("\n") : []; +UNIQUES_NAMES?.shift(); + +const UNIQUES_FRAMES = UNIQUES != undefined ? UNIQUES[1].split("\n") : []; +UNIQUES_FRAMES?.shift(); + +while (UNIQUES_NAMES?.at(-1) == "") UNIQUES_NAMES?.pop(); +while (UNIQUES_FRAMES?.at(-1) == "") UNIQUES_FRAMES?.pop(); function add_singles(chapter, sprite_name) { const img_name = `${sprite_name}.png`; @@ -38,11 +43,14 @@ function add_animations(chapter, sprite_name) { 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 } - ); + if (UNIQUES_FRAMES.includes(sprite_name)) + fs.mkdirSync(`../_sprites/sorted/${chapter}/${sprite_name}`); + else + fs.cpSync( + `../_sprites/original/${chapter}/${sprite_name}`, + `../_sprites/sorted/${chapter}/${sprite_name}`, + { recursive: true, force: true } + ); } else return; for (const special of SPECIALS) { @@ -105,11 +113,10 @@ for (const chapter of chapters) { } } -if (UNIQUES != undefined) { - for (const unique of UNIQUES) { +if (UNIQUES_NAMES != undefined) { + for (const unique of UNIQUES_NAMES) { const uniqueChapter = unique.split("/")[0]; const uniqueName = unique.split("/")[1]; - console.log(uniqueChapter, uniqueName); if (fs.existsSync(`../_sprites/translation/${uniqueName}.png`)) fs.copyFileSync( @@ -125,5 +132,3 @@ if (UNIQUES != undefined) { ); } } - -// :D