add delete function

This commit is contained in:
snus xD
2025-08-17 15:19:48 +03:00
parent 5831bcb4a6
commit 267781ea84
6 changed files with 55 additions and 53 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,3 @@
*.DS_Store
.vscode/
node_modules/
node_modules/

View File

@@ -1,15 +0,0 @@
Для того, чтобы спрайт не шёл в учёт неготовых нужно написать его название в списке ниже!
Просто название спрайта, без каких-либо дополнительных символов.
Вырезня:
spr_ch3_gameshow_round
spr_ch3_GSA01G_tvtimescreenshot
spr_mansion_traffic_2fsign
bg_dw_music_ext_original
spr_board_tile_quiz
spr_ch3_chef_specialguestText
spr_gameshow_halloffame_left
spr_gameshow_halloffame_right
spr_gameshow_screen_halloffame
spr_board_tile_quiz
spr_dw_green_room_poster_left

11
_sprites/delete.txt Normal file
View File

@@ -0,0 +1,11 @@
!! CAUTION !!
Deleting files listed here is IRREVERSIBLE. You wont be able to restore a deleted file just by removing it from the list. Choose files wisely and dont regret what youve done.
You can still get the files back using Git, but it will be a bit harder.
To delete a file, write its full path.
Examples:
translation/sp_spr_btrouxls - will delete sprite `sp_spr_btrouxls` in `translation`
original/chapter2/bg_dw_bakery.png - will delete sprite `bg_dw_bakery` in `chapter2` inside `original`
DELETE:

View File

@@ -1,22 +1,22 @@
Для того, чтобы спрайт добавился в папку sorted, нужно написать его название и главу в списке «УНИКАЛЬНЫЕ ДЛЯ РУСИФИКАТОРА»!
Примеры:
chapter3/sprite1 - Добавит в папку ТРЕТЬЕЙ главы спрайт sprite1 (будь то папка с анимацией или просто спрайт)
chapter2/sprite3 - Добавит в папку ВТОРОЙ главы спрайт sprite3 (будь то папка с анимацией или просто спрайт)
To have a sprite added to the `sorted` folder, you must write its name and chapter in the “UNIQUE FOR SORTING" list!
Examples:
chapter3/img1 Adds sprite `img1` to the `chapter3` folder (whether its an animation folder or just a single sprite)
chapter2/anim2 Adds sprite `anim2` to the `chapter2` folder (whether its an animation folder or just a single sprite)
Если количество кадров у анимированного спрайта отличается от оригинала, то нужно написать его название в списке «УНИКАЛЬНОЕ КОЛ-ВО КАДРОВ»!
!! ВНИМАНИЕ !!
Такое нужно делать только в том случае, если у спрайта отличается ВСЯ анимация.
В случае, когда у спрайта, допустим, просто переведён один кадр, а остальные нужно оставить ТАКИМИИ ЖЕ, то заносить его в список НЕ НУЖНО!
If the frame count of an animated sprite differs from the original, you must write its name in the “UNIQUE FRAME COUNT” list!
!! ATTENTION !!
Do this only if the ENTIRE animation of the sprite is different.
If, for example, just one frame is translated and the rest should remain THE SAME, you DO NOT need to add it to the list!
УНИКАЛЬНЫЕ ДЛЯ РУСИФИКАТОРА:
UNIQUE FOR SORTING:
chapter1/spr_blockler_и
chapter1/spr_blockler_с
chapter3/spr_funnytext_loves
chapter3/spr_funnytext_star2
УНИКАЛЬНОЕ КОЛ-ВО КАДРОВ:
UNIQUE FRAME COUNT:
IMAGE_LOGO_CENTER_SEPARATE
spr_ch2_keyboard_tile_text
spr_funnytext_dark_fountain
@@ -24,4 +24,4 @@ spr_funnytext_game
spr_funnytext_game_over
spr_funnytext_toriel
spr_tvlandfont
IMAGE_LOGO_CENTER_SHATTER_PIECES
IMAGE_LOGO_CENTER_SHATTER_PIECES

View File

@@ -6,9 +6,9 @@ const chapters = fs.readdirSync("../_sprites/original");
const UNIQUES = fs
.readFileSync("../_sprites/unique.txt", "utf-8")
.split("УНИКАЛЬНЫЕ ДЛЯ РУСИФИКАТОРА:")
.split("UNIQUE FOR SORTING:")
.at(-1)
?.split("УНИКАЛЬНОЕ КОЛ-ВО КАДРОВ:");
?.split("UNIQUE FRAME COUNT:");
const UNIQUES_NAMES = UNIQUES != undefined ? UNIQUES[0].split("\n") : [];
UNIQUES_NAMES?.shift();
@@ -141,5 +141,3 @@ if (UNIQUES_NAMES != undefined) {
);
}
}
// LD

View File

@@ -1,16 +1,39 @@
import fs from "node:fs";
import { SHARED } from "./sort";
const CHAPTERS = JSON.parse(fs.readFileSync("./data.json", "utf-8"));
const CUTS = fs
.readFileSync("../_sprites/cut.txt", "utf-8")
.split("Вырезня:")
const DELETE = fs
.readFileSync("../_sprites/delete.txt", "utf-8")
.split("DELETE:")
.at(-1)
?.split("\n");
CUTS?.shift();
if (CUTS?.at(-1) == "") CUTS?.pop();
DELETE?.shift();
if (DELETE?.at(-1) == "") DELETE?.pop();
if (DELETE != undefined) {
for (const del of DELETE) {
if (fs.existsSync(`../_sprites/${del}`))
fs.rmSync(`../_sprites/${del}`, {
recursive: true,
force: true,
});
else if (fs.existsSync(`../_sprites/${del}.png`))
fs.rmSync(`../_sprites/${del}.png`, {
recursive: true,
force: true,
});
}
}
const UNIQUES = fs
.readFileSync("../_sprites/unique.txt", "utf-8")
.split("UNIQUE FOR SORTING:")
.at(-1)
?.split("UNIQUE FRAME COUNT:");
const UNIQUES_FRAMES = UNIQUES != undefined ? UNIQUES[1].split("\n") : [];
UNIQUES_FRAMES?.shift();
while (UNIQUES_FRAMES?.at(-1) == "") UNIQUES_FRAMES?.pop();
if (!fs.existsSync("../_sprites/unready")) fs.mkdirSync("../_sprites/unready");
@@ -32,7 +55,7 @@ for (const sprite of TRANSLATED) {
} else {
if (
fs.existsSync(`../_sprites/unready/${sprite}`) &&
(SHARED.includes(sprite) ||
(UNIQUES_FRAMES.includes(sprite) ||
fs.readdirSync(`../_sprites/unready/${sprite}`).length ==
fs.readdirSync(`../_sprites/translation/${sprite}`).length)
)
@@ -42,18 +65,3 @@ for (const sprite of TRANSLATED) {
});
}
}
if (CUTS != undefined) {
for (const cut of CUTS) {
if (fs.existsSync(`../_sprites/unready/${cut}`))
fs.rmSync(`../_sprites/unready/${cut}`, {
recursive: true,
force: true,
});
else if (fs.existsSync(`../_sprites/unready/${cut}.png`))
fs.rmSync(`../_sprites/unready/${cut}.png`, {
recursive: true,
force: true,
});
}
}