兼容适配

[!INFO] 注册真源:compat/DefaultCompat.java(由 BogoSorter.java 的 onPreInit 调用 DefaultCompat.init(BogoSortAPI.INSTANCE))

本模组不注册任何方块或物品,其「兼容」表现为:为其他 mod 的容器提供整理能力,以及为部分物品提供额外排序维度。

容器兼容(经 mixin 注入 Container)

以下容器通过 mixins/late/ 下的 mixin 暴露槽位,从而可被整理:

目标 mod mixin 类
CompactStorage mixins/late/compactstorage/MixinContainerChest.java、MixinContainerChestBuilder.java
Controlling mixins/late/controlling/MixinGuiNewKeyBindingList.java(+ GuiNewKeyBindingListKeyEntryAccessor)
EnderIO mixins/late/enderio/MixinBuffer.java、MixinVacuumChest.java
Et Futurum mixins/late/etfuturum/MixinContainerChestGeneric.java
GalacticCraft(核心) mixins/late/galacticraft/core/MixinContainerRocketInventory.java
GalacticCraft(行星) mixins/late/galacticraft/planets/MixinContainerSlimeling.java
Iron Chests mixins/late/ironchests/MixinIronChestContainer.java
Thermal Expansion mixins/late/thermal/MixinContainerSatchel.java、MixinContainerStrongbox.java
Witching Gadgets mixins/late/witchinggadgets/MixinContainerBag.java、MixinContainerCloak.java

原版容器 mixin(mixins/early/minecraft/,14 个类)

ContainerHorseInventoryMixin、CreativeSlotMixin、GuiEditSignMixin、MinecraftMixin 等 14 个类;GuiContainerAccessor、GuiScreenAccessor、SlotAccessor 为 @Accessor 接口,用于读取受保护的 GUI 字段。

非容器兼容

类 目标 行为
compat/Mods.java 41 个枚举项 / 38 个不同 modid mod 存在性判定,含版本谓词
compat/ThaumicEnergisticsHelper.java Thaumic Energistics 精华容器整理
compat/VendingMachineCompat.java Vending Machine 自动售货机容器整理
compat/adventurebackpack/AdventureBackpackPinnedSlots.java Adventure Backpack 固定槽位同步
compat/backpack/BackpackPinnedSlots.java Backpack 固定槽位同步
compat/ae2/Ae2TerminalGuiDetector.java / Ae2TerminalSearchAdapter.java AE2 终端检测与搜索适配
compat/nei/Ae2TooltipClient.java NEI / AE2 悬浮提示
compat/screen/WarningScreen.java 通用 警告界面

Mods 枚举中的版本判定(易被误读)

compat/Mods.java 共 41 个枚举项,但只对应 38 个不同 modid。三组用 Predicate<ModContainer> 区分同名/改名 mod,不是重复定义:

  • GT5u(gregtech,谓词 !Loader.isModLoaded("gregapi"))与 GT6(gregtech,谓词 Loader.isModLoaded("gregapi"))
  • IC2(IC2,谓词 mod.getName().endsWith("Classic") 取反)与 IC2Classic(同 modid IC2,谓词取正)
  • BetterStorage(版本范围 [,0.14))与 BetterStorageFixed([0.14,))—— 同一 modid 的新旧版本分派

[!NOTE] 「41 项 vs 38 modid」的差额正来自这三组同 modid 分派。按 modid 字符串去重统计会低估判定逻辑的数量。

关联:BogoSort API · Mixin 列表