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 垫片。三点依据:

  1. gradle.properties / dependencies.gradle 中以 api 方式依赖 StructureLib:1.4.18:dev;
  2. @Mod(dependencies = "required-after:structurelib"),mcmod.info 亦声明 requiredMods: ["structurelib"];
  3. 主类 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 的能量预算、距离校验与视图单元过滤逻辑。

设定列表