世界转换(Extra Utilities / Postea)
基本信息
| 属性 | 值 |
|---|---|
| 兼容目标 | Extra Utilities(EU)与 Postea |
| 代码位置 | com.fouristhenumber.utilitiesinexcess.compat.exu(3 个类,共 623 行) |
| 门控 | Mods.ExtraUtilities.isLoaded() 与 Mods.Postea.isLoaded()(modid postea) |
| 主要文件 | PosteaTransforms.java(480 行)、ExuWorldConversionWarning.java(59 行)、ExtendedConfirmationGui.java(84 行) |
功能
本模组是 Extra Utilities 的 GTNH 移植版(mcmod.info 描述:“Port of Extra Utilities - adds assorted useful things.”)。为了让从 EU 迁移过来的存档继续可用,本模组用 Postea 的替换管理器把 EU 的方块 / 物品 / TileEntity 映射到 UIE 的对应实现。
PosteaTransforms.postInit() 分四步执行(PosteaTransforms.java:28-33):
transformItems()— 物品替换transformBlocks()— 方块替换transformTileEntities()— TileEntity 替换ignoreMissingMappings()— 忽略无法映射的残留
postInit() 的唯一调用点是 CommonProxy 的 postInit 阶段(CommonProxy.java:150),即 Mods.Postea / Mods.ExtraUtilities 探测通过后执行。
自定义转换器按 Postea 的三个管理器分为 1 个方块 + 4 个物品 + 9 个 TileEntity = 14 个(PosteaTransforms.java 的 import 列表逐条统计),另有 138 处 ItemStackReplacementManager.addSimpleReplacement 直接映射。
数值 — 物品替换
PosteaTransforms.transformItems() 中有 138 处 ItemStackReplacementManager.addSimpleReplacement 简单映射,另加 4 个自定义物品转换器。PosteaTransforms.java:35-52 的映射片段如下(这部分仅摘录本条目核对过的条目):
| Extra Utilities 源 | UIE 目标 |
|---|---|
ExtraUtilities:glove |
ModItems.GLOVE |
ExtraUtilities:angelRing meta 0 |
ModItems.HEAVENLY_RING_MAGIC |
ExtraUtilities:angelRing meta 1 |
ModItems.HEAVENLY_RING_FEATHER |
ExtraUtilities:angelRing meta 2 |
ModItems.HEAVENLY_RING_FAIRY |
ExtraUtilities:angelRing meta 3 |
ModItems.HEAVENLY_RING_DRAGON |
ExtraUtilities:angelRing meta 4 |
ModItems.HEAVENLY_RING_METAL |
ExtraUtilities:heatingElement |
ModItems.FIRE_BATTERY |
ExtraUtilities:builderswand |
ModItems.BUILDERS_WAND |
ExtraUtilities:creativebuilderswand |
ModItems.SUPER_BUILDERS_WAND |
5 个天界之环的 meta 映射是可核实的关键细节:EU 的 angelRing 0–4 依次对应 UIE 的魔法、羽毛、妖精、龙、金属——与 UIE 自己的注册顺序(羽毛、龙、妖精、金属、魔法)完全不同,因此映射是显式逐条定义的,不能靠顺序推断。
138 条完整映射清单本条目未逐一抄录——只列出了上面已核对的部分。其余 129 条的具体对应关系请查 PosteaTransforms.transformItems()。
4 个自定义物品转换器:
| 转换器类 | 目标 |
|---|---|
DivisionSigilTransformation |
反转徽章(ModItems.INVERSION_SIGIL_*) |
GoldenBagTransformation |
黄金袋(ModItems.GOLDEN_BAG) |
GoldenLassoTransformation |
黄金套索(EU 物品,UIE 无同名注册项) |
ForgeMicroblockItemTransformer |
ForgeMicroblock 部件物品 |
数值 — TileEntity 替换
TileEntityReplacementManager 下的转换器共 9 个:
| 转换器类 | 目标 UIE TileEntity |
|---|---|
CollectorTransformation |
采集器 |
DrumTransformation |
鼓 |
EnderQuarryTransform |
虚空采掘场 |
FilingCabinetTransformation |
文件柜 |
FullChestTransformation |
箱子(marginally_maximised_chest) |
MiniChestTransformation |
箱子(radically_reduced_chest) |
GeneratorTransformation |
发电机家族 |
QEDTransformation |
量子纠缠装置(QED)——UIE 中无对应注册项 |
SpikeTransformation |
尖刺 |
FullChestTransformation 与 MiniChestTransformation 证明 EU 的"大箱子 / 小箱子"被映射到 UIE 的箱子三档。
QEDTransformation 与 GoldenLassoTransformation 是两个没有对应 UIE 注册内容的转换器——UIE 的 101 个方块 / 32 个物品中都不存在这两项。这两个类的完整行为本条目未核实。
交互 — 世界转换警告
ExuWorldConversionWarning implements IWorldConversionWarning(ExuWorldConversionWarning.java:15)向 Postea 注册一个转换前确认提示:
| 成员 | 行 | 说明 |
|---|---|---|
public static boolean show |
:17 |
静态开关,控制是否弹出确认 |
shouldShow() |
:20 |
是否显示警告 |
getServerMessage() |
:25 |
服务端提示文本 |
getClientMessage() |
:32 |
客户端提示文本 |
getGui(StartupQuery) |
:39 |
返回自定义确认 GUI |
doWorldConversion() |
:43 |
实际执行转换 |
onMissingMapping(FMLMissingMappingsEvent) |
:47 |
缺失映射处理 |
自定义 GUI 由 ExtendedConfirmationGui.java(84 行)实现,对 Postea 的标准确认界面做了扩展。
ignoreMissingMappings() 存在的意义是:EU 有一些内容 UIE 没有移植(如 QED、Golden Lasso),这些条目在转换时会产生缺失映射,本步骤将其静默忽略以免刷屏。
合成配方
无——本维度是兼容层,不注册配方。