added unique frames support

This commit is contained in:
snus xD
2025-08-16 17:16:48 +03:00
parent 355a9c6819
commit d09e7a4c1e
2 changed files with 29 additions and 15 deletions

View File

@@ -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
УНИКАЛЬНОЕ КОЛ-ВО КАДРОВ:

View File

@@ -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