StructureCompat
[!INFO] Git Commit:
93da3e1| Updated: 2026-10-01
StructureCompat (modid structurecompat) 是一个 StructureLib 的兼容插件 mod,面向 Minecraft 1.7.10 /
Forge 10.13.4.1614。本 mod 不向游戏内添加任何内容——0 方块、0 物品、0 实体、0 指令、0 配置文件。
它的全部作用是在 postInit 阶段把外部 mod 的实现登记进 StructureLib 的服务注册表。
它与 StructureLib 的关系
本 mod 是 StructureLib 的插件,不是 API 垫片。三点依据:
gradle.properties/dependencies.gradle中以api方式依赖StructureLib:1.4.18:dev;@Mod(dependencies = "required-after:structurelib"),mcmod.info亦声明requiredMods: ["structurelib"];- 主类
StructureCompat直接实现 StructureLib 的服务接口com.gtnewhorizon.structurelib.IStructureCompat。
因此本 mod 必须装在 StructureLib 之后。它不是 StructureLib 的 fork,也不提供 StructureLib
缺失的 1.7.10 结构 API——恰恰相反,它消费的是 StructureLib 已有的扩展点(IStructureCompat、
InventoryUtility、IMultiblockInfoContainer、IStructureElement),把别的 mod 适配到这些扩展点上,
从而让 StructureLib 的提示方块、自动放置与生存建造能识别外部 mod 的容器和多方块。
README 只有一行:Compatibility module for StructureLib.;mcmod.info 的描述是
Setup StructureLib with compat for other mods.
适配了哪些 mod
共 9 个 compat 类,通过 @Compat 注解声明门控 modid,由 FML 的 ASMDataTable 在 preInit 扫描、
postInit 反射实例化,无需中央列表:
| 目标 mod | 适配内容 |
|---|---|
| Baubles | 饰品栏物品提供者 |
| Forestry | 林业背包物品提取器(含 ItemInventoryBackpack 的 parent 空值补丁) |
| Backpack | 仅对末影背包开放自动取物(避免其余背包的磁盘 IO 卡顿) |
| Adventure Backpack | 穿戴背包物品提供者 + 物品提取器 |
| Applied Energistics 2 | 无线终端与便携式单元的 AE2 存储 / 电力提取器 |
| Wireless Crafting Terminal (ae2wct) | WCT 无线合成终端提取器 |
| AE2FluidCraft | AE2FC 无线终端提取器 |
| Railcraft | 6 组多方块结构信息(5 个固定 + 锅炉) |
| InventoryBogoSorter | 拦截中键整理,避免误触构造触发器的取通道热键 |
其中 AE2 系三个提取器共享两个基类(MEInventoryStackExtractor /
WirelessTerminalStackExtractor),共用 AE2 的能量预算、距离校验与视图单元过滤逻辑。
设定列表
- mod 元信息与打包数据 -
@Mod注解、modid 实读来源、StructureLib 依赖、mcmod.info、侧代理与日志 - compat 派发机制 -
@Compat注解、ASMDataTable扫描、反射实例化、9 个门控 modid - 容器兼容(InventoryUtility 注册) - 8 条 provider / extractor 注册、末影背包门控、Bogo 中键拦截
- AE2 物品提取器 - 能量预算钳制、无线终端网格解析、距离校验、视图单元过滤装饰器
- Railcraft 多方块结构 - 5 个固定多方块、锅炉 6 种尺寸与
width/height/boiler通道 - 客户端贴图钩子(Hodgepodge) -
IStructureCompat.markTextureUsed、Hodgepodge[2.0.0,3)版本探测