Foundation
[!INFO] Git Commit:
40d3cfd| Updated: 2025-05-28
GTNewHorizons Foundation(modid foundation,根包 com.gtnewhorizons.foundation,
作者 Cleptomania)是 Minecraft 1.7.10 / Forge 10.13.4.1614 上的 coremod + mixin
基础设施层,mcmod.info 自我描述为 “A library for chunk data management”。仓库
共 26 个 Java 文件,硬依赖 gtnhlib@[0.6.22,)。
定位
本 mod 不提供任何游戏内容。它做两件事:
- 把原版四个区块/方块同步封包(S21、S22、S23、S26)的编解码方法整体改写成 「原版字段 + 遍历外部注册的 handler 追加自定义数据」,使其他 mod 能把自己的数据 搭原版封包传输,而不必新增封包 ID 或自己写 mixin。
- 提供
@Overwrite/ ASM 重写能力(自身也重度依赖这一点)与一个 coremod 入口。
代价是 S21/S22/S23/S26 以及 Chunk.fillChunk、NetHandlerPlayClient.handleMultiBlockChange
的方法体被独占改写——其他 mod 若对同一方法做注入,视为不兼容。
机制列表
- 转换器链 - coremod
FoundationCore如何注册并调度FoundationTransformer,以及唯一的S22ConstructorTransformer如何重写 S22 构造 - Mixin 清单 - 全部 6 个 mixin 的目标类、注入签名、EARLY/LATE 阶段与被修补的原版行为
- Mixin 配置 - 两份 mixin JSON、UniMixins 版本下限、refmap 与 Gradle 开关
- 处理器注册表 -
HandlerRegistry的长度前缀分片协议、api包 SPI 与注册顺序约束 - 内置区块处理器 - 6 个内置 handler 的
maxBytesPerChunk()预算与逐个编解码行为 - 封包数据流 - S21/S22/S23/S26 四条链路的端到端改写细节与
BlockPacketInfo - 兼容性与门控 - gtnhlib 硬依赖、
TargetedMod.VANILLA与 Side 门控、对外扩展面
本 mod 不具备的内容维度
以下维度经全仓库 grep 确认无任何内容,因此未建立对应目录:
| 维度 | 结论 | 证据 |
|---|---|---|
| 方块 | 无 | grep "registerBlock|registerTileEntity|new Block(|extends Block\b" 零命中;唯一 register 前缀命中是 HandlerRegistry.registerBlockPacketHandler(封包处理器,非方块) |
| 物品 | 无 | grep "registerItem|new Item(|extends Item\b" 零命中 |
| 实体 | 无 | grep "registerEntity|extends Entity[A-Z]" 零命中 |
| 多方块 | 无 | grep "Multiblock|TileMultiblock" 零命中 |
| 附魔 | 无 | grep "Enchantment" 零命中 |
| 维度 | 无 | grep "WorldProvider|DimensionManager|registerDimension" 零命中 |
| 热键 | 无 | grep "new KeyBinding|KeyBinding|registerKeyBinding" 零命中 |
| Buff/Debuff | 无 | grep "PotionEffect" 零命中 |
| 群系 | 无 | 存在 BiomeHandler,但它只是搬运 chunk.getBiomeArray() 已有的群系 ID(grep "BiomeGen" 零命中,无任何群系注册) |
| 结构 | 无 | grep "StructureStart|Multiblock" 零命中 |
| 成就 | 无 | grep "Achievement" 零命中 |
| 物品效果 | 无 | 无物品,且 grep "PotionEffect" 零命中 |
| 指令 / 权限等级 | 无 | grep "ICommand|CommandBase|addChatCommand|getCommandName" 零命中 |
| 配置项 | 无 | grep "@Config|Configuration|@Property" 零命中;无 .cfg 配置文件 |
| 其他 mod 集成 | 无 | grep "isModLoaded|ModList\.|Loader\." 零命中;nei/ rei/ jei/ IC2 CoFH 等第三方 import 零命中 |
源码规模
| 项 | 值 |
|---|---|
| Java 文件 | 26 |
@Mod 类 |
1(com.gtnewhorizons.foundation.Foundation,modid 常量 foundation) |
| coremod 入口 | 1(com.gtnewhorizons.foundation.core.FoundationCore) |
| ASM 转换器 | 1(S22ConstructorTransformer) |
| mixin 类 | 6(全部 EARLY,0 个 LATE) |
| mixin JSON | 2(实际仅加载 mixins.foundation.early.json) |
| 内置 handler | 6(chunk)+ 2(block,与前两者同实例) |
| mixin 注入点接口 | 2(IMixinS22PacketMultiBlockChange、IMixinS23PacketBlockChange) |