合金炉熔炼

GT_Values.RA.addAlloySmelterRecipe(input1, input2, output, duration, voltage) 在本 mod 只用于两个方向的转换,且两条默认都开启—— 这是本 mod 默认配置下唯一"开箱即用"的 GT 机器配方组。

配方矩阵

# 配方 输入 输出 时长 开关 默认
1 部件 + 碎片铸件 → 碎片 1 部件 + 1 碎片铸件 n(price) × 碎片 80 + mDurability × price reverseSmelting true
2 碎片 + 锭铸件 → 锭 2 × 碎片 + MetalPatterns.ingot pattern 1 × 锭 max(160, mDurability) shardToIngotSmelting true

配方 1:回炉(reverseSmelting)

stack = getChunk(m, price);                       // n(price) 个碎片
if (stack != null) {
    if (addReverseSmelting)
        addAlloySmelterRecipe(input.copy(),        // 部件
                              new ItemStack(TGregworks.shardCast, 0, 0),   // 碎片铸件
                              stack.copy(),         // n(price) 个碎片
                              80 + (m.mDurability * price),
                              powerRequired);
}
  • price 与挤压机配方是同一份 PartTypes.price,所以回炉得到的碎片数恰好等于做出该部件所需的锭数;
  • 时长用 80 + …(加法)而挤压机/流固机用 max(80, …)。因此高耐久材料的回炉时间 会比制作时间长 80 tick,不能靠回炉刷时间差;
  • 回炉配方在 if (stack != null) 里但不在 if (ingotStack != null) 之外—— 它位于 if (stack != null) 原始输入非空的分支内,所以没有锭也没有宝石的材料回炉不了;
  • 碎片铸件的 new ItemStack(shardCast, 0, 0) stackSize 写的是 0(三处回炉/挤压配方都这样), GT 匹配配方时按物品类型处理,实际不影响使用。

配方 2:2 碎片合 1 锭

ItemStack stack = getChunk(m, 2);                          // 2 个碎片
ItemStack ingotStack = GT_OreDictUnificator.get(OrePrefixes.ingot, m, 1);
if (addGemToolPartRecipes && ingotStack == null)
    ingotStack = GT_OreDictUnificator.get(OrePrefixes.gem, m, 1);
if (stack != null && ingotStack != null) {
    if (addShardToIngotSmelting)
        addAlloySmelterRecipe(stack.copy(),
                              new ItemStack(MetalPatterns.ingot.getPatternItem(), 0, MetalPatterns.ingot.ordinal()),
                              ingotStack.copy(),
                              Math.max(160, m.mDurability),
                              powerRequired);
}

这条位于部件循环之外(for 材料 的尾部),所以:

  • pattern 是 TiC 的锭铸件(MetalPatterns.ingot,metadata = ordinal() = 0), 不是本 mod 的 碎片铸件;
  • 2 碎片 → 1 锭,与部件价格无关;
  • 允许宝石回退:锭取不到时若 gemToolPartRecipes 打开就用宝石(此时产出也是宝石);
  • 这是唯一一条不要求"材料有锭形态"就能触发的碎片相关配方(getChunk 永远非空, 但 ingotStack != null 仍要求锭或宝石存在)。

与碎片↔锭的完整转换图

方向 机器 配方 开关 默认
1 锭 → 2 碎片 GT 挤压机 + 碎片铸件 ingotToShardRecipe 挤压机配方 true
2 碎片 → 1 锭 GT 合金炉 + 锭铸件 shardToIngotSmelting 本条目 true
144 mB 熔融 → 1 碎片 GT 流固机 + 碎片铸件 moltenToShardRecipe 流固机配方 false
1 碎片 → 144 mB 熔融 GT 流体抽取机 shardExtractorRecipes 流体抽取机配方 false

默认配置下唯一可用的一对是"锭 ↔ 2 碎片"(都在合金炉/挤压机上,不需要熔融形态), 这让"先用机器把锭压成碎片 → 碎片当维修材料"成为开箱玩法。

电压

getPowerRequired(m) = mToolQuality < 3 ? 30 : 120 × general.energyUsageMultiplier, 两条配方用同一个值。

相关条目