From 267781ea84defb52e225c5edaa22aa50d664d404 Mon Sep 17 00:00:00 2001 From: snus xD Date: Sun, 17 Aug 2025 15:19:48 +0300 Subject: [PATCH] add delete function --- .gitignore | 2 +- _sprites/cut.txt | 15 ------- _sprites/delete.txt | 11 +++++ _sprites/unique.txt | 22 +++++----- scripts/sort.ts | 6 +-- scripts/{unready.ts => unready_delete.ts} | 52 +++++++++++++---------- 6 files changed, 55 insertions(+), 53 deletions(-) delete mode 100644 _sprites/cut.txt create mode 100644 _sprites/delete.txt rename scripts/{unready.ts => unready_delete.ts} (62%) diff --git a/.gitignore b/.gitignore index ab6b0cc..9354bd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ *.DS_Store .vscode/ -node_modules/ +node_modules/ \ No newline at end of file diff --git a/_sprites/cut.txt b/_sprites/cut.txt deleted file mode 100644 index 318e869..0000000 --- a/_sprites/cut.txt +++ /dev/null @@ -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 diff --git a/_sprites/delete.txt b/_sprites/delete.txt new file mode 100644 index 0000000..6648dc0 --- /dev/null +++ b/_sprites/delete.txt @@ -0,0 +1,11 @@ +!! CAUTION !! +Deleting files listed here is IRREVERSIBLE. You won’t be able to restore a deleted file just by removing it from the list. Choose files wisely and don’t regret what you’ve 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: \ No newline at end of file diff --git a/_sprites/unique.txt b/_sprites/unique.txt index a0c592c..9621239 100644 --- a/_sprites/unique.txt +++ b/_sprites/unique.txt @@ -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 it’s an animation folder or just a single sprite) +chapter2/anim2 – Adds sprite `anim2` to the `chapter2` folder (whether it’s 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 \ No newline at end of file diff --git a/scripts/sort.ts b/scripts/sort.ts index 61ae1ce..cd98f24 100644 --- a/scripts/sort.ts +++ b/scripts/sort.ts @@ -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 diff --git a/scripts/unready.ts b/scripts/unready_delete.ts similarity index 62% rename from scripts/unready.ts rename to scripts/unready_delete.ts index a404ba8..1cd8775 100644 --- a/scripts/unready.ts +++ b/scripts/unready_delete.ts @@ -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, - }); - } -}