CodeChickenCore
[!INFO] Git Commit:
a9643db| Updated: 2026-10-02
CodeChickenCore 是 ChickenBones / GTNH 团队的 coremod 基础库,为整个 CodeChicken 系列(ForgeMultipart、EnderStorage、ChickenChunks、Translocator 等)提供公共底座。mcmod.info 对它的描述是 Base common code for all chickenbones mods(src/main/resources/mcmod.info:6),作者署名 ChickenBones、GTNH Team。
modid 与命名
本分类名 codechickencore 与实际 modId 不一致,必须注意。 modId 从两处源码独立读出且一致:
gradle.properties:10→modId = CodeChickenCore(首字母大写,连续三个大写 C)CodeChickenCoreModContainer.java:34→modMetadata.modId = "CodeChickenCore"
由此派生出一组互不相同的字符串,引用时务必区分:
| 用途 | 取值 | 出处 |
|---|---|---|
| modId | CodeChickenCore |
gradle.properties:10、CodeChickenCoreModContainer.java:34 |
| 资源域(assets) | codechickencore(全小写) |
src/main/resources/assets/codechickencore/(目录枚举核实) |
| 语言键前缀 | codechickencore. |
LocalizedColours.java:7 KEY_PREFIX;en_US.lang 全部键 |
| ASM 资源路径 | /assets/codechickencore/asm/tweaks.asm |
TweakTransformer.java:30 |
| 根包名 | codechicken |
gradle.properties:14 modGroup |
| 分类目录 | codechickencore |
本 wiki |
加载形态:没有 @Mod 的模组
grep -rn '@Mod' --include='*.java' src/ 命中 0 处。本 jar 不包含任何 @Mod 注解类。
这与 gradle.properties:129 containsMixinsAndOrCoreModOnly = true 一致。它通过 gradle.properties:125 coreModClass = core.launch.CodeChickenCorePlugin(配合 modGroup = codechicken 拼成 codechicken.core.launch.CodeChickenCorePlugin)以 coremod 身份加载,再由 getModContainerClass() 返回的 CodeChickenCoreModContainer(一个 DummyModContainer 子类)把自己伪装成普通模组,好让它出现在 Forge 模组列表与事件总线上。
gradle.properties:104 usesMixins = false 且 src/main/resources 下无任何 mixins.*.json,因此本模组没有 Mixin——它的字节码改写全部走 ASM。
注册内容:0
| 项目 | 数量 | 证据 |
|---|---|---|
| 方块 | 0 | grep -rn 'GameRegistry\.|registerBlock|registerItem|registerTileEntity|EntityRegistry' --include='*.java' src/main/java/ → 0 行 |
| 物品 | 0 | 同上 |
| 实体 | 0 | 同上 |
| TileEntity | 0 | 同上 |
| 事件订阅类 | 5 | grep -rln '@SubscribeEvent' --include='*.java' src/ |
| 语言键(en_US) | 25 | 其中 24 个为 codechickencore.color.*,1 个为 codechickencore.update |
| 语言文件 | 5 | de_DE、en_US、it_IT、ru_RU、uk_UA;除 en_US(25 键)外其余各 1 键 |
源码规模:178 个 .java 文件,0 个 .scala,0 个 .kt——纯 Java。公开类型 176 个。
版本与环境
| 项目 | 值 | 证据 |
|---|---|---|
| Minecraft | 1.7.10 | gradle.properties:24 minecraftVersion = 1.7.10 |
| Forge | 10.13.4.1614 | gradle.properties:27 forgeVersion = 10.13.4.1614 |
| 构建系统 | RetroFuturaGradle | settings.gradle:2 注释 // RetroFuturaGradle + com.gtnewhorizons.gtnhsettingsconvention |
版本门在源码中有三处互相独立的声明:
gradle.properties:24minecraftVersion = 1.7.10(gradle 侧)CodeChickenCorePlugin.java:34@IFMLLoadingPlugin.MCVersion("1.7.10")(coremod 侧)CodeChickenCoreModContainer.java:76-78acceptableMinecraftVersionRange()返回VersionParser.parseRange(CodeChickenCorePlugin.mcVersion),而mcVersion = "[1.7.10]"(CodeChickenCorePlugin.java:39)(FML 容器侧)
依赖
Gradle 侧无任何 Minecraft 侧依赖。 dependencies.gradle 中只有 JUnit 5 测试依赖(junit-bom:5.14.1、junit-jupiter、junit-platform-launcher),全部为 testImplementation / testRuntimeOnly。在所有 .gradle 文件中 grep implementation|compileOnly|runtimeOnly 只命中这一处。
运行时的依赖约束来自 CodeChickenCoreModContainer.getDependants() 的 6 条硬编码版本引用(详见 CodeChickenCoreModContainer),与 Gradle 声明是两回事。
外部模组对它的依赖是真实存在的:ForgeMultipart 在自己的 dependencies.gradle:4 声明 implementation("com.github.GTNewHorizons:CodeChickenCore:1.4.19:dev")。
本仓范围说明
本镜像为 depth-1 浅克隆(git rev-list --count HEAD = 1,.git/shallow 存在),历史上仅有一个轻量 tag 1.4.22,且指向当前 HEAD。
因此未采用 git describe 作为版本依据(浅克隆 + 轻量 tag 的组合无法反映真实历史)。本分类引用 commit a9643db(a9643dba1cfa0ab8f19c299096f79e377d672d7d,已用 git cat-file -t 核实为 commit),其提交信息为 Add initial Ukrainian (uk_UA) localization for CodeChickenCore (#55),日期 2026-09-19。
树中不存在其他 Minecraft 版本的分支或内容,无跨版本内容混入本分类。
coremod 列表
- CodeChickenCorePlugin - coremod 入口,注册 2 个无条件转换器、版本门、配置文件创建
- CodeChickenCoreModContainer - DummyModContainer,让无
@Mod的 coremod 出现在模组列表中 - TweakTransformer - 用文本 ASM 指令清单改写原版机制,默认启用 2 项 tweak
- DelegatedTransformer - 扫描 mods 目录读取
CCTransformermanifest 属性,接入第三方转换器 - RedirectorTransformer 与 ClassHeirachyManager - 把老 mod 字节码中对
CCRenderState静态成员的访问改写为线程局部实例访问 - DefaultImplementationTransformer - 接口默认方法注入扩展点,本仓零调用、仅供外部模组使用
API 列表
本模组的价值主要在此。全部为 codechicken.lib.* / codechicken.core.* 下的库代码。
- ASM 工具包 - 14 类,文本 ASM DSL、模块化转换器、混淆名映射;是其余所有变换器的基础
- 几何、颜色与数学库 - 34 类,
vec/colour/math/raytracer/lighting;BlockCoord是外部模组使用最频繁的类型 - 渲染管线与 GUI 组件 - 38 类,线程局部渲染状态机
CCRenderState与配套 GUI 控件 - 网络与序列化 - 7 类,
MCDataInput/Output与PacketCustom - 容器、库存与流体 - 17 类,自动同步容器基类与库存实现
- 世界与区块扩展 - 6 类,为区块生命周期补上原版缺失的钩子
- 配置库 - 5 类,带注释的树形配置解析器
设置列表
- CodeChickenCore.cfg - 主配置:
checks组 6 项 +tweaks组 6 项活跃开关 + 1 项已移除 - CodeChickenLib.cfg - ASM 调试配置:
dump_asm/textify/mappingDir
处理器列表
- 功能 hack - 虚拟实体钩子、反射改写物品注册表、液体贴图替换
- 客户端运行时与事件 -
CCCEventHandler、模组列表增强、本地化颜色重载;并记录了CCUpdateChecker为空壳这一事实
兼容性列表
- CodeChicken 生态契约 - 对外 API 清单、
ClassDiscoverer发现机制,以及 ForgeMultipart 的实际 import 频次实证