refactor: just updated scripts for better reading
This commit is contained in:
28
scripts/shared.ts
Normal file
28
scripts/shared.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import fs from "node:fs";
|
||||||
|
|
||||||
|
const PATHS = {
|
||||||
|
ORIGINAL: "../_sprites/original",
|
||||||
|
TRANSLATION: "../_sprites/translation",
|
||||||
|
UNREADY: "../_sprites/unready",
|
||||||
|
SORTED: "../_sprites/sorted",
|
||||||
|
};
|
||||||
|
|
||||||
|
const DATA = JSON.parse(fs.readFileSync("./data.json", "utf-8"));
|
||||||
|
const CHAPTERS = Object.keys(DATA);
|
||||||
|
|
||||||
|
const UNIQUES = fs
|
||||||
|
.readFileSync("../_sprites/unique.txt", "utf-8")
|
||||||
|
.split("UNIQUE FOR SORTING:")
|
||||||
|
.at(-1)
|
||||||
|
?.split("UNIQUE FRAME COUNT:");
|
||||||
|
|
||||||
|
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();
|
||||||
|
|
||||||
|
export { PATHS, DATA, CHAPTERS, UNIQUES_NAMES, UNIQUES_FRAMES };
|
||||||
@@ -1,76 +1,60 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
|
import { PATHS, DATA, CHAPTERS, UNIQUES_NAMES, UNIQUES_FRAMES } from "./shared";
|
||||||
import { spawn } from "child_process";
|
import { spawn } from "child_process";
|
||||||
|
|
||||||
const SPECIALS = ["sp", "spm"];
|
const SPECIALS = ["sp", "spm"];
|
||||||
const DATA = JSON.parse(fs.readFileSync("./data.json", "utf-8"));
|
|
||||||
const chapters = fs.readdirSync("../_sprites/original");
|
|
||||||
|
|
||||||
const UNIQUES = fs
|
function add_singles(chapter: string, sprite_name: string) {
|
||||||
.readFileSync("../_sprites/unique.txt", "utf-8")
|
|
||||||
.split("UNIQUE FOR SORTING:")
|
|
||||||
.at(-1)
|
|
||||||
?.split("UNIQUE FRAME COUNT:");
|
|
||||||
|
|
||||||
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`;
|
const img_name = `${sprite_name}.png`;
|
||||||
if (!fs.existsSync(`../_sprites/translation/${img_name}`)) return;
|
if (!fs.existsSync(`${PATHS.TRANSLATION}/${img_name}`)) return;
|
||||||
|
|
||||||
fs.copyFileSync(
|
fs.copyFileSync(
|
||||||
`../_sprites/translation/${img_name}`,
|
`${PATHS.TRANSLATION}/${img_name}`,
|
||||||
`../_sprites/sorted/${chapter}/${img_name}`
|
`${PATHS.SORTED}/${chapter}/${img_name}`
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const special of SPECIALS) {
|
for (const special of SPECIALS) {
|
||||||
if (fs.existsSync(`../_sprites/translation/${special}_${img_name}`)) {
|
if (fs.existsSync(`${PATHS.TRANSLATION}/${special}_${img_name}`)) {
|
||||||
fs.copyFileSync(
|
fs.copyFileSync(
|
||||||
`../_sprites/translation/${special}_${img_name}`,
|
`${PATHS.TRANSLATION}/${special}_${img_name}`,
|
||||||
`../_sprites/sorted/${chapter}/${special}_${img_name}`
|
`${PATHS.SORTED}/${chapter}/${special}_${img_name}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_animations(chapter, sprite_name) {
|
function add_animations(chapter: string, sprite_name: string) {
|
||||||
if (
|
if (
|
||||||
fs.existsSync(`../_sprites/translation/${sprite_name}`) &&
|
fs.existsSync(`${PATHS.TRANSLATION}/${sprite_name}`) &&
|
||||||
!fs.existsSync(`../_sprites/sorted/${chapter}/${sprite_name}`)
|
!fs.existsSync(`${PATHS.SORTED}/${chapter}/${sprite_name}`)
|
||||||
) {
|
) {
|
||||||
if (UNIQUES_FRAMES.includes(sprite_name))
|
if (UNIQUES_FRAMES.includes(sprite_name))
|
||||||
fs.cpSync(
|
fs.cpSync(
|
||||||
`../_sprites/translation/${sprite_name}`,
|
`${PATHS.TRANSLATION}/${sprite_name}`,
|
||||||
`../_sprites/sorted/${chapter}/${sprite_name}`,
|
`${PATHS.SORTED}/${chapter}/${sprite_name}`,
|
||||||
{ recursive: true, force: true }
|
{ recursive: true, force: true }
|
||||||
);
|
);
|
||||||
else
|
else
|
||||||
fs.cpSync(
|
fs.cpSync(
|
||||||
`../_sprites/original/${chapter}/${sprite_name}`,
|
`../_sprites/original/${chapter}/${sprite_name}`,
|
||||||
`../_sprites/sorted/${chapter}/${sprite_name}`,
|
`${PATHS.SORTED}/${chapter}/${sprite_name}`,
|
||||||
{ recursive: true, force: true }
|
{ recursive: true, force: true }
|
||||||
);
|
);
|
||||||
} else return;
|
} else return;
|
||||||
|
|
||||||
for (const special of SPECIALS) {
|
for (const special of SPECIALS) {
|
||||||
if (fs.existsSync(`../_sprites/translation/${special}_${sprite_name}`)) {
|
if (fs.existsSync(`${PATHS.TRANSLATION}/${special}_${sprite_name}`)) {
|
||||||
fs.cpSync(
|
fs.cpSync(
|
||||||
`../_sprites/original/${chapter}/${sprite_name}`,
|
`../_sprites/original/${chapter}/${sprite_name}`,
|
||||||
`../_sprites/sorted/${chapter}/${special}_${sprite_name}`,
|
`${PATHS.SORTED}/${chapter}/${special}_${sprite_name}`,
|
||||||
{ recursive: true, force: true }
|
{ recursive: true, force: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const file of fs.readdirSync(
|
for (const file of fs.readdirSync(
|
||||||
`../_sprites/sorted/${chapter}/${special}_${sprite_name}`
|
`${PATHS.SORTED}/${chapter}/${special}_${sprite_name}`
|
||||||
)) {
|
)) {
|
||||||
const oldPath = `../_sprites/sorted/${chapter}/${special}_${sprite_name}/${file}`;
|
const oldPath = `${PATHS.SORTED}/${chapter}/${special}_${sprite_name}/${file}`;
|
||||||
const newPath = `../_sprites/sorted/${chapter}/${special}_${sprite_name}/${special}_${file}`;
|
const newPath = `${PATHS.SORTED}/${chapter}/${special}_${sprite_name}/${special}_${file}`;
|
||||||
|
|
||||||
fs.renameSync(oldPath, newPath);
|
fs.renameSync(oldPath, newPath);
|
||||||
}
|
}
|
||||||
@@ -82,35 +66,34 @@ function add_animations(chapter, sprite_name) {
|
|||||||
const sprite_frames = DATA[chapter][sprite_name];
|
const sprite_frames = DATA[chapter][sprite_name];
|
||||||
for (let frame of sprite_frames) {
|
for (let frame of sprite_frames) {
|
||||||
const img_name = `${sprite_name}_${frame}.png`;
|
const img_name = `${sprite_name}_${frame}.png`;
|
||||||
if (!fs.existsSync(`../_sprites/translation/${sprite_name}/${img_name}`))
|
if (!fs.existsSync(`${PATHS.TRANSLATION}/${sprite_name}/${img_name}`))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (const special of SPECIALS) {
|
for (const special of SPECIALS) {
|
||||||
if (
|
if (
|
||||||
fs.existsSync(
|
fs.existsSync(
|
||||||
`../_sprites/translation/${special}_${sprite_name}/${special}_${img_name}`
|
`${PATHS.TRANSLATION}/${special}_${sprite_name}/${special}_${img_name}`
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
fs.copyFileSync(
|
fs.copyFileSync(
|
||||||
`../_sprites/translation/${special}_${sprite_name}/${special}_${img_name}`,
|
`${PATHS.TRANSLATION}/${special}_${sprite_name}/${special}_${img_name}`,
|
||||||
`../_sprites/sorted/${chapter}/${special}_${sprite_name}/${special}_${img_name}`
|
`${PATHS.SORTED}/${chapter}/${special}_${sprite_name}/${special}_${img_name}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fs.copyFileSync(
|
fs.copyFileSync(
|
||||||
`../_sprites/translation/${sprite_name}/${img_name}`,
|
`${PATHS.TRANSLATION}/${sprite_name}/${img_name}`,
|
||||||
`../_sprites/sorted/${chapter}/${sprite_name}/${img_name}`
|
`${PATHS.SORTED}/${chapter}/${sprite_name}/${img_name}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const chapter of chapters) {
|
for (const chapter of CHAPTERS) {
|
||||||
if (!chapter.endsWith(".DS_Store")) {
|
if (!chapter.endsWith(".DS_Store")) {
|
||||||
if (!fs.existsSync(`../_sprites/sorted`))
|
if (!fs.existsSync(`${PATHS.SORTED}`)) fs.mkdirSync(`${PATHS.SORTED}`);
|
||||||
fs.mkdirSync(`../_sprites/sorted`);
|
if (!fs.existsSync(`${PATHS.SORTED}/${chapter}`))
|
||||||
if (!fs.existsSync(`../_sprites/sorted/${chapter}`))
|
fs.mkdirSync(`${PATHS.SORTED}/${chapter}`);
|
||||||
fs.mkdirSync(`../_sprites/sorted/${chapter}`);
|
|
||||||
|
|
||||||
for (const sprite of Object.keys(DATA[chapter])) {
|
for (const sprite of Object.keys(DATA[chapter])) {
|
||||||
const frames: any[] = DATA[chapter][sprite];
|
const frames: any[] = DATA[chapter][sprite];
|
||||||
@@ -126,26 +109,26 @@ if (UNIQUES_NAMES != undefined) {
|
|||||||
const uniqueChapter = unique.split("/")[0];
|
const uniqueChapter = unique.split("/")[0];
|
||||||
const uniqueName = unique.split("/")[1];
|
const uniqueName = unique.split("/")[1];
|
||||||
|
|
||||||
if (fs.existsSync(`../_sprites/translation/${uniqueName}.png`))
|
if (fs.existsSync(`${PATHS.TRANSLATION}/${uniqueName}.png`))
|
||||||
fs.copyFileSync(
|
fs.copyFileSync(
|
||||||
`../_sprites/translation/${uniqueName}.png`,
|
`${PATHS.TRANSLATION}/${uniqueName}.png`,
|
||||||
`../_sprites/sorted/${uniqueChapter}/${uniqueName}.png`
|
`${PATHS.SORTED}/${uniqueChapter}/${uniqueName}.png`
|
||||||
);
|
);
|
||||||
|
|
||||||
if (fs.existsSync(`../_sprites/translation/${uniqueName}`))
|
if (fs.existsSync(`${PATHS.TRANSLATION}/${uniqueName}`))
|
||||||
fs.cpSync(
|
fs.cpSync(
|
||||||
`../_sprites/translation/${uniqueName}`,
|
`${PATHS.TRANSLATION}/${uniqueName}`,
|
||||||
`../_sprites/sorted/${uniqueChapter}/${uniqueName}`,
|
`${PATHS.SORTED}/${uniqueChapter}/${uniqueName}`,
|
||||||
{ recursive: true, force: true }
|
{ recursive: true, force: true }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const chapter of chapters) {
|
for (const chapter of CHAPTERS) {
|
||||||
spawn("python3", [
|
spawn("python3", [
|
||||||
"merge.py",
|
"merge.py",
|
||||||
`../_sprites/sorted/${chapter}`,
|
`${PATHS.SORTED}/${chapter}`,
|
||||||
`../_sprites/sorted-merged/${chapter}`,
|
`${PATHS.SORTED}-merged/${chapter}`,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,41 +1,29 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
|
import { PATHS, CHAPTERS, UNIQUES_FRAMES } from "./shared";
|
||||||
|
|
||||||
const CHAPTERS = JSON.parse(fs.readFileSync("./data.json", "utf-8"));
|
if (!fs.existsSync(PATHS.UNREADY)) fs.mkdirSync(PATHS.UNREADY);
|
||||||
|
|
||||||
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");
|
|
||||||
|
|
||||||
for (const chapter of Object.keys(CHAPTERS)) {
|
for (const chapter of Object.keys(CHAPTERS)) {
|
||||||
const OriginalPath = `../_sprites/original/${chapter}`;
|
const original_path = `${PATHS.ORIGINAL}/${chapter}`;
|
||||||
const UnreadyPath = `../_sprites/unready`;
|
if (!fs.existsSync(PATHS.UNREADY)) fs.mkdirSync(PATHS.UNREADY);
|
||||||
|
|
||||||
if (!fs.existsSync(UnreadyPath)) fs.mkdirSync(UnreadyPath);
|
fs.cpSync(original_path, PATHS.UNREADY, { recursive: true, force: true });
|
||||||
|
|
||||||
fs.cpSync(OriginalPath, UnreadyPath, { recursive: true, force: true });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const TRANSLATED = fs.readdirSync("../_sprites/translation");
|
const TRANSLATED = fs.readdirSync(PATHS.TRANSLATION);
|
||||||
const UNREADY = fs.readdirSync("../_sprites/unready");
|
const UNREADY = fs.readdirSync(PATHS.UNREADY);
|
||||||
|
|
||||||
for (const sprite of TRANSLATED) {
|
for (const sprite of TRANSLATED) {
|
||||||
if (sprite.endsWith(".png")) {
|
if (sprite.endsWith(".png")) {
|
||||||
if (UNREADY.includes(sprite)) fs.rmSync(`../_sprites/unready/${sprite}`);
|
if (UNREADY.includes(sprite)) fs.rmSync(`${PATHS.UNREADY}/${sprite}`);
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
fs.existsSync(`../_sprites/unready/${sprite}`) &&
|
fs.existsSync(`${PATHS.UNREADY}/${sprite}`) &&
|
||||||
(UNIQUES_FRAMES.includes(sprite) ||
|
(UNIQUES_FRAMES.includes(sprite) ||
|
||||||
fs.readdirSync(`../_sprites/unready/${sprite}`).length ==
|
fs.readdirSync(`${PATHS.UNREADY}/${sprite}`).length ==
|
||||||
fs.readdirSync(`../_sprites/translation/${sprite}`).length)
|
fs.readdirSync(`${PATHS.TRANSLATION}/${sprite}`).length)
|
||||||
)
|
)
|
||||||
fs.rmSync(`../_sprites/unready/${sprite}`, {
|
fs.rmSync(`${PATHS.UNREADY}/${sprite}`, {
|
||||||
recursive: true,
|
recursive: true,
|
||||||
force: true,
|
force: true,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,41 +1,32 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
|
import { PATHS } from "./shared";
|
||||||
|
|
||||||
const PATHS = {
|
let DATA: { [key: string]: any } = {};
|
||||||
ORIGINAL: "../_sprites/original",
|
|
||||||
TRANSLATE: "../_sprites/translation",
|
|
||||||
};
|
|
||||||
|
|
||||||
let DATA = {};
|
for (const chapter of fs.readdirSync(PATHS.ORIGINAL)) DATA[chapter] = {};
|
||||||
|
|
||||||
// Сбор списка глав
|
function add_singles(path: string) {
|
||||||
for (const chapter of fs.readdirSync(PATHS.ORIGINAL)) {
|
const chapter_sprites = fs.readdirSync(path, "utf-8");
|
||||||
if (chapter != ".DS_Store") DATA[chapter] = {};
|
const temp: { [key: string]: any } = {};
|
||||||
}
|
|
||||||
|
|
||||||
// Внос всех одно-кадровых спрайтов
|
for (const sprite of chapter_sprites)
|
||||||
function add_singles(path) {
|
|
||||||
const chapter_dir = fs.readdirSync(path, "utf-8");
|
|
||||||
let temp = {};
|
|
||||||
|
|
||||||
for (const sprite of chapter_dir)
|
|
||||||
if (sprite.includes(".png")) temp[sprite.slice(0, -4)] = [0];
|
if (sprite.includes(".png")) temp[sprite.slice(0, -4)] = [0];
|
||||||
|
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Внос всех много-кадровых спрайтов
|
function add_animations(path: string) {
|
||||||
function add_animations(path) {
|
const chapter_sprites = fs.readdirSync(path, "utf-8");
|
||||||
const chapter_dir = fs.readdirSync(path, "utf-8");
|
const temp: { [key: string]: any } = {};
|
||||||
let temp = {};
|
|
||||||
|
|
||||||
for (const sprite of chapter_dir) {
|
for (const sprite of chapter_sprites) {
|
||||||
if (!(sprite.endsWith(".png") || sprite.endsWith(".DS_Store"))) {
|
if (!sprite.endsWith(".png")) {
|
||||||
let frames = new Array();
|
const frames = new Array();
|
||||||
|
|
||||||
const animation_dir = fs.readdirSync(`${path}/${sprite}`, "utf-8");
|
const animated_sprite = fs.readdirSync(`${path}/${sprite}`, "utf-8");
|
||||||
for (let frame of animation_dir) {
|
for (let frame of animated_sprite) {
|
||||||
let frame_number = frame.split("_").at(-1) ?? "fuck";
|
let frame_number = frame.split("_").at(-1);
|
||||||
if (frame.endsWith(".png"))
|
if (frame.endsWith(".png") && frame_number !== undefined)
|
||||||
frames.push(Number(frame_number.slice(0, -4)));
|
frames.push(Number(frame_number.slice(0, -4)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user