Hodgepodge
[!INFO] Git Commit:
7972d3089f9c6993f8de131626368943924ee250| Updated: 2026-10-02
Hodgepodge 是 GTNewHorizons 的 1.7.10 整合包兼容与优化库,由 mitchej123 与 GTNewHorizons Team 维护。它不注册任何方块、物品、实体、TileEntity 或配方 —— 全部内容是 457 个配置开关、401 个 Mixin 注册条目(引用 566 个 Mixin 类)、12 个 ASM 字节码变换器、4 个指令、3 个网络封包和 1 个游戏规则。
modid 与目录名一致:@Mod(modid = Hodgepodge.MODID),而 Hodgepodge.MODID = "hodgepodge"(Hodgepodge.java:34,42),与本分类目录名 hodgepodge 完全相同。仓库路径为 GTNewHorizons/Hodgepodge,模块名 Hodgepodge。
本模组用 GTNHMixins 框架把补丁按三个相位(PREINIT / EARLY / LATE)注入 Minecraft、Forge 与 60 多个第三方模组,通过 TargetedMod 枚举(62 项)决定每个补丁的生效条件。它同时替换 Paulscode 的 OpenAL 库与 OGG 解码器,是全站少数带完整自研音频子系统的配置类模组。
基本信息
| 属性 | 值 |
|---|---|
| modid | hodgepodge |
| 分类名一致性 | 一致(目录名 = modid) |
| Minecraft | 1.7.10 |
| Forge | 10.13.4.1614 |
| 语言 | 纯 Java(739 个 .java,0 个 .scala,0 个 .kt) |
@Mod 类数 |
1(com.mitchej123.hodgepodge.Hodgepodge,无第二个 modid) |
| coremod | com.mitchej123.hodgepodge.core.HodgepodgeCore |
| RetroFuturaBootstrap 插件 | com.mitchej123.hodgepodge.core.rfb.HodgepodgeRfbPlugin |
| 硬依赖 | gtnhmixins@[2.0.1,)、unimixins@[0.0.20,)、gtnhlib@[0.9.41,) |
| 客户端版本闸门 | 拒绝 < 2.5.36 的客户端加入(@NetworkCheckHandler) |
| 注册内容 | 0 方块 / 0 物品 / 0 实体 / 0 TileEntity / 0 配方 / 1 游戏规则 / 4 指令 / 3 封包 / 1 键位 |
| 配置 | 8 个 @Config 分类,457 个叶子开关 |
| 许可 | LGPL v3 |
注册内容统计
| 类别 | 数量 | 备注 |
|---|---|---|
| 方块 / 物品 / 实体 / TileEntity / 配方 | 0 | 全仓 GameRegistry.registerBlock / registerItem / registerTileEntity 命中 0 次 |
| 游戏规则 | 1 | disableHunger |
| 服务端指令 | 1 | /hp(3 子指令) |
| 客户端指令 | 3 | /allocationshud /packetstats /dumptextureatlas |
| 网络封包 | 3 | ID 0–2,全部 S2C |
| 客户端键位 | 1 | Fast Block Placing(默认 KEY_NONE) |
| 配置叶子开关 | 457 | 见下表 |
| Mixin 注册条目 | 401 | 引用 566 个类,全部可解析(缺失 0) |
| ASM 变换器 | 12 | 9 早期 + 1 晚期 + 2 由 coremod 直接注册 |
| 目标模组条目 | 62 | TargetedMod 枚举 |
配置分类分布
| 分类 | 叶子开关 | 门控的 Mixin 条目 | GUI 可见 |
|---|---|---|---|
fixes |
226 | 217 | 是 |
tweaks |
110 | 89 | 是 |
speedups |
52 | 48 | 是 |
memory |
29 | 22 | 否 |
sound |
24 | 1 | 是 |
asm |
10 | 4 | 是 |
debug |
6 | 4 | 是 |
general |
0 | 0 | 是(空分组) |
| 合计 | 457 | 387 | — |
关键实现特征
- Mixin JSON 无
mixins数组:三个mixins.hodgepodge*.json都不列出任何 Mixin,真正的注册表是Mixins.java枚举(401 项),由 GTNHMixins 在运行时读出。只看 JSON 会得出「未注册任何 Mixin」的错误结论。 GeneralConfig是空类:仍被传入 GUI,因此界面上有一个空的 general 分组。MemoryConfig不在 GUI 列表:8 个配置分类中只有 7 个能在游戏内看到,memory 的 29 个开关只能手改config/hodgepodge.cfg。- 两级音频后端:HRTF / 输出限制器 / 立体声空间化 / 输出设备管理需要 lwjgl3ify(Java 17+);环境混响与立体声下混在 Java 8 的 LWJGL2 后端也可工作。
- Bukkit / Thermos 是显式不支持的配置:
HodgepodgeCore检测到org.bukkit.World后打四行 WARN 声明。
配置列表
- 模组配置界面 - GTNHLib 提供的游戏内配置 GUI,暴露 7 个分类,并有两处已核实的缺口
- 早期配置 -
hodgepodgeEarly.properties与 3 个 JVM-D开关,在 Forge 加载前生效 - Fixes 配置 - 226 个缺陷修复开关,88 项无分节 + 43 项水更新递归上限 + 92 项按模组分节
- Tweaks 配置 - 110 个行为变更开关,含 10 项区块生成与人口配置
- Speedups 配置 - 52 个性能优化开关,含完整的区块生成调度参数
- Memory 配置 - 29 个内存泄漏与分配优化开关,游戏内 GUI 不可见
- Sound 配置 - 24 个音频开关,区分 lwjgl3ify 必需与两级通用
- ASM 配置 - 10 个字节码改写层开关
- Debug 配置 - 6 个诊断开关
指令列表
- 指令 - 4 个诊断指令:
/hp(3 子指令)、/allocationshud、/packetstats(2 子指令)、/dumptextureatlas
音频列表
客户端列表
- 按键与 F3 快捷键 - 1 个自建键位、9 个 F3 组合键、4 组第三方键位解绑
- 聊天与 HUD - 聊天压缩、F3 屏扩展、分配速率 HUD、QuickPlay
核心与引导列表
- Coremod 引导 -
HodgepodgeCore:9 步引导、Bukkit / CoFH 探测、FML 排除收窄 - ASM 变换器 - 9 个早期 + 1 个晚期字节码变换器
- RetroFuturaBootstrap 插件 - 改写 Forge 内部的 2 个生产变换器 + 2 个调试变换器