IIC2(appeng.integration.abstraction.IIC2)

基本信息

属性 值
源码 appeng/integration/abstraction/IIC2.java
接口声明 16
总行数 25
实现 appeng/integration/modules/IC2.java:22(implements IIC2, IIntegrationModule)
对应 modID IC2(IntegrationType.java:15)

4 个方法

方法 行号 类型依赖 语义
addToEnergyNet(TileEntity appEngTile) 18 仅 MC 把 AE2 方块接入 IC2 电网
removeFromEnergyNet(TileEntity appEngTile) 20 仅 MC 移出 IC2 电网
getItem(String string) 22 仅 MC 按名字取 IC2 物品
maceratorRecipe(ItemStack in, ItemStack out) 24 仅 MC 往 IC2 粉碎机塞配方

签名里没有一行 IC2 的类型

四个方法的参数与返回值全部是 net.minecraft.*(TileEntity / ItemStack) 或 String / void。这是本层的设计约束 —— AE2 核心在没装 IC2 的环境下也必须能加载这些接口。

真正的 IC2 调用在实现里:

// integration/modules/IC2.java:87-89
public ItemStack getItem(final String name) {
    return ic2.api.item.IC2Items.getItem(name);
}

// integration/modules/IC2.java:92-94
public void maceratorRecipe(final ItemStack in, final ItemStack out) {
    ic2.api.recipe.Recipes.macerator.addRecipe(new RecipeInputItemStack(in, in.stackSize), null, out);
}

注入的东西

动作 位置 内容
part layer IC2.java:48 appeng.parts.layers.LayerIEnergySink ← ic2.api.energy.tile.IEnergySink
part layer IC2.java:49 appeng.parts.layers.LayerIEnergySource ← ic2.api.energy.tile.IEnergySource
P2P 调律 IC2.java:56-66 11 种 IC2 电缆 → TunnelType.IC2_POWER
可搬运白名单 IC2.java:70 Class.forName("ic2.core.crop.TileEntityCrop") → movable().whiteListTileEntity(...)

11 个被调律的 IC2 物品(IC2.java:56-66,全部经 getItem(name)):

copperCableItem / insulatedCopperCableItem / goldCableItem / insulatedGoldCableItem / ironCableItem / insulatedIronCableItem / insulatedTinCableItem / glassFiberCableItem / tinCableItem / detectorCableItem / splitterCableItem

⚠️ getItem(IC2.java:88)没有判空。它只在 IC2 已加载时 (IntegrationNode 的 Loader.isModLoaded("IC2") 已通过)被调用, 所以安全;但如果 IC2 版本删了某个物品名,返回 null 会直接 addNewAttunement(null, ...)。

mod 没装时是否安全跳过

是。链条:

  1. IntegrationNode.call(PRE_INIT)(IntegrationNode.java:77-78) Loader.isModLoaded("IC2") → false
  2. throw new ModNotInstalled(modID)(IntegrationNode.java:87)
  3. catch (Throwable)(:102)→ state = FAILED
  4. isEnabled(IntegrationType.IC2) 返回 false (IntegrationRegistry.java:73-76)

类加载层面也安全:modules/IC2.java 里的 ic2.api.energy.tile.IEnergySink 等 import 只在类被真正加载时才解析, 而类只在 enabled 时才 loadClass(IntegrationNode.java:82)。

AE2 侧消费者

消费者 位置
P2P 电力隧道 appeng/parts/p2p/PartP2PIC2Power.java。注册名是 PartType.P2PTunnelEU(items/parts/PartType.java:183),显示名 GuiText.EUTunnel
IC2 能源方块桥 appeng/tile/powersink/(不在本分片)

⚠️ 命名陷阱:类名叫 PartP2PIC2Power,但注册名与显示名都是 EU (PartType.P2PTunnelEU / GuiText.EUTunnel)。 写条目时不要把它当成独立于 EU 隧道的另一种隧道。

对应条目:P2P 隧道(EU)、 feature 侧 AEFeature.P2PTunnelEU。

相关条目