碎片与锭的互换

本页汇总碎片(PartTypes.Chunk)作为中间物的全部配方路径, 是理解"维修材料从哪来"的核心。碎片在 TiC 里叫 Shard,在本 mod 里是第 23 个部件(getID() = 22)。

碎片是什么

属性 值
注册名 TGregworks:tGregToolPartChunk
PartTypes Chunk,getID() = 22,price = 1
pattern null —— 28 个部件里唯一一个,因此没有任何"pattern 型"配方
纹理 tgregworks:items/parts/chunk
本地化名 tgregworks.toolpart.shard(zh_CN「碎片」)
TiC 对应物 TinkerTools.toolShard(PartTypes.getCounterpart())

因为 pattern == null,addGregTechPartRecipes 的部件循环 if (pattern != null) 对它整体跳过——碎片不能由 pattern 加工出来, 只能由锭/熔融材料直接转换。

完整的转换图

方向 机器 配方槽 数量 时长 开关 默认
1 锭 → 2 碎片 GT 挤压机 1 × 锭 ingot<材料> + 碎片铸件 2 max(160, mDurability) ingotToShardRecipe true
2 碎片 → 1 锭 GT 合金炉 2 × 碎片 + MetalPatterns.ingot 铸件 1 max(160, mDurability) shardToIngotSmelting true
144 mB 熔融 → 1 碎片 GT 流固机 碎片铸件 + 144 mB 熔融 1 max(160, mDurability) moltenToShardRecipe false
1 碎片 → 144 mB 熔融 GT 流体抽取机 1 × 碎片 144 mB max(160, mDurability) shardExtractorRecipes false
部件 → n(price) 碎片 GT 合金炉 1 × 部件 + 碎片铸件 n(price) 80 + mDurability × price reverseSmelting true
黄铜/金板 + 碎片铸件 → 2 碎片 GT 挤压机 1 × 黄铜板/金板 + 碎片铸件 2 800 castExtruderRecipes 条件
熔融黄铜/金 + 碎片铸件 → 2 碎片 GT 流固机 1000 mB 熔融 + 碎片铸件 2 800 castSolidifierRecipes false
n(price) 碎片 → 1 部件 GT 挤压机 n(price) × 碎片 + pattern 1 80 + mDurability × price extruderRecipes 且 shardToToolPartRecipe true

n(price) 见 挤压机配方:price 奇数取 price/2+1,偶数取 price/2。

数量比例

  • 1 锭 = 2 碎片(压缩比 2:1)
  • 反向制作时,部件所需的碎片数 = 该部件所需锭数(n(price) 两处共用同一个 price) → 锭与碎片在"做部件"这条路径上是等价的,不存在损耗
  • 唯一的比例差是回炉:回炉得到的碎片数也等于锭数,所以同样是等价往返

实际约束:材料必须有锭或宝石

锭↔碎片这一对(以及回炉、碎片制部件)都包在:

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) { … }

stack(碎片)永远非空,但 ingotStack 可能为 null → 没有锭形态、也没有宝石形态的材料完全无法进入碎片经济, 既不能做部件也不能修工具(除非走 锭修复 之外的路径)。 gemToolPartRecipes 打开时宝石可以顶替锭,且产出也随之变成宝石。

碎片作为维修材料

registerRepairMaterials()(addShardRepair,默认 true)对每个材料:

ItemStack shard = TGregUtils.newItemStack(m, PartTypes.Chunk, 1);
if (PatternBuilder.instance.materialSets.containsKey(mat.materialName))
    PatternBuilder.instance.registerMaterial(shard, 1, mat.materialName);
else
    PatternBuilder.instance.registerFullMaterial(shard, 1, mat.materialName, shard, shardRod, matID);
TGregworks.repair.registerShardRepairMaterial(m, 1);      // 价值 1

即碎片被注册成 TiC PatternBuilder 的材料,价值 1。 材料已存在时只补一个"最小可修材料"(registerMaterial), 不存在时补齐整套(registerFullMaterial:碎片 1 个、手柄 1 个、ID = matID)。 注意 registerFullMaterial 的第三个参数是碎片自己、第四个是 PartTypes.ToolRod 的碎片手柄—— 不是锭。

完整修复公式见 修复修饰符。

相关条目