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 不提供任何游戏内容。它做两件事:

  1. 把原版四个区块/方块同步封包(S21、S22、S23、S26)的编解码方法整体改写成 「原版字段 + 遍历外部注册的 handler 追加自定义数据」,使其他 mod 能把自己的数据 搭原版封包传输,而不必新增封包 ID 或自己写 mixin。
  2. 提供 @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)