From 80693085e1f2629ac03dcc678a3b7cc78278463a Mon Sep 17 00:00:00 2001 From: Fulldroper <40297614+Fulldroper@users.noreply.github.com> Date: Sat, 3 Oct 2026 02:59:49 +0300 Subject: [PATCH] 0.5.0: Cyrillic CC terminal font (CCCyrillic, MIT) via kubejs/assets Co-Authored-By: Claude Opus 5.5 --- index.toml | 8 ++++++++ .../computercraft/textures/gui/CREDITS.txt | 2 ++ .../computercraft/textures/gui/term_font.png | Bin 0 -> 6833 bytes pack.toml | 4 ++-- tools/export-mrpack.mjs | 4 +++- 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 kubejs/assets/computercraft/textures/gui/CREDITS.txt create mode 100644 kubejs/assets/computercraft/textures/gui/term_font.png diff --git a/index.toml b/index.toml index 9ea3291..9ffc625 100644 --- a/index.toml +++ b/index.toml @@ -804,6 +804,14 @@ hash = "d438aea41ca41e93697e059f523686935c0add482f6abe96b532bbf10c6ed80a" file = "config/yacl.json5" hash = "121b93764159be6fb7dab523b29a844e2bb78400ce8c48f52135a097e9b0006e" +[[files]] +file = "kubejs/assets/computercraft/textures/gui/CREDITS.txt" +hash = "19b844245d03fcdd488a7a791e287447191a74acd0f14995209339d768c5e6ce" + +[[files]] +file = "kubejs/assets/computercraft/textures/gui/term_font.png" +hash = "db4c4a8ab49265f6e8e456f495800ea148b133b18a3242aabca30b98ab7f784f" + [[files]] file = "mods/3dskinlayers.pw.toml" hash = "82becc6910845ae1a68884e6f7a3dcdc861d79a087ae81b1d7e120e82884372d" diff --git a/kubejs/assets/computercraft/textures/gui/CREDITS.txt b/kubejs/assets/computercraft/textures/gui/CREDITS.txt new file mode 100644 index 0000000..6df273c --- /dev/null +++ b/kubejs/assets/computercraft/textures/gui/CREDITS.txt @@ -0,0 +1,2 @@ +term_font.png — "CCCyrillic" by sashafiesta (MIT), https://modrinth.com/resourcepack/cccyrillic +Windows-1251 Cyrillic glyphs for the CC:Tweaked terminal font. The server's terminal programs write text in 1251. diff --git a/kubejs/assets/computercraft/textures/gui/term_font.png b/kubejs/assets/computercraft/textures/gui/term_font.png new file mode 100644 index 0000000000000000000000000000000000000000..701410e44ed1825bab7eba82bf95873ac71b7515 GIT binary patch literal 6833 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.mrpack // Mods are referenced by their Modrinth CDN URL (sha1/sha512/size from the Modrinth API); -// config/ goes into overrides/. Zipping uses Windows' bsdtar (tar -a) or `zip` on Linux. +// config/ and kubejs/ go into overrides/. Zipping uses Windows' bsdtar (tar -a) or `zip` on Linux. import fs from 'fs'; import path from 'path'; import { execFileSync } from 'child_process'; @@ -60,6 +60,8 @@ fs.rmSync(stage, { recursive: true, force: true }); fs.mkdirSync(path.join(stage, 'overrides'), { recursive: true }); fs.writeFileSync(path.join(stage, 'modrinth.index.json'), JSON.stringify(index, null, 2)); fs.cpSync(path.join(root, 'config'), path.join(stage, 'overrides', 'config'), { recursive: true }); +// kubejs/assets: always-on client resources (CC terminal font with Cyrillic) +if (fs.existsSync(path.join(root, 'kubejs'))) fs.cpSync(path.join(root, 'kubejs'), path.join(stage, 'overrides', 'kubejs'), { recursive: true }); const out = path.join(root, 'dist', `CreateRP-${packVersion}.mrpack`); fs.rmSync(out, { force: true });