碎片铸件 Shard Cast

本 mod 唯一一个自己 new 出来并注册的物品(28 个工具部件走 TGregRegistry.registerItems() 的循环, 注册名是 tGregToolPart* 前缀的 28 个 ItemTGregPart;本物品在 TGregworks.preInit 里单独注册)。

基本信息

属性 值
注册名 TGregworks:tgregworks.shardcast
类 ShardPattern(Mantle CraftingItem + TiC IPattern)
图案名 cast_shard(getPatternNames() 只返回这一个元素)
本地化名 tgregworks.shardcast = Shard Cast / zh_CN 碎片铸件
纹理 tgregworks:items/cast_shard(全 mod 唯一的物品贴图,其余 28 个部件共用 items/parts/*.png)
最大堆叠 1(setMaxStackSize(1))
耐久 0(setMaxDamage(0))
subtype setHasSubtypes(false)
创造栏 tabTGregworks
注册位置 TGregworks.preInit,在 CastLegacy.preInit() 之后

⚠️ 注册名带点:GameRegistry.registerItem(shardCast, "tgregworks.shardcast") 把 modid 又写了一遍, 完整注册名是 TGregworks:tgregworks.shardcast 而不是通常的 TGregworks:shardcast。 这是全 mod 唯一一个资源名与 modid 冗余的注册名(同样带点的还有 TGregworks:tgregworks.shardcast 的 setUnlocalizedName)。

作为 pattern 的行为

ShardPattern 只实现了 IPattern 的两个方法:

  • getPatternCost(pattern) → 恒返回 1;
  • getPatternOutput(pattern, input, set) → 恒返回 null。

也就是说本物品永远不会被 TiC 的浇铸台/砧台消化——它不是"铸件",而是给 GregTech 机器用的 GT 配方图样:GT 的 RA.addExtruderRecipe(input, pattern, output, …) / addAlloySmelterRecipe / addFluidSolidifierRecipe 把 pattern 当作"第二输入槽"来匹配,getPatternOutput 返回 null 正好 让 TiC 侧不产生任何输出。

配方

机器 输入 产出 时长 耗电 开关
工作台(GT 风格) 黄铜板 + 硬锤 + 刀 + 锉 1 × 本物品 — — gregtechcastrecipe=true
GT 挤压机 1 × 黑曜石碎片 + blankPattern(meta 1) 1 × 本物品 800 30 × 倍率 tinkersconstructcastrecipe=true
GT 挤压机 1 × 黑曜石碎片 + blankPattern(meta 2) 1 × 本物品 800 30 × 倍率 同上
GT 挤压机 1 × 黄铜板 + 1 × 黑曜石碎片 1 × 本物品 800 30 × 倍率 同上,且 castExtruderRecipes 关闭
GT 挤压机 1 × 黄铜板/金板 + 本物品 2 × 本材料碎片 800 30 或 120 × 倍率 castExtruderRecipes=true
GT 流固机 144/288 mB 熔融黄铜/金 + 本物品 2 × 本材料碎片 800 同上 castSolidifierRecipes=false

工作台配方原文

TGregRecipeRegistry.addGregTechPartRecipes 结尾注册的 ShapedOreRecipe:

行 1 2 3
上 空 craftingToolHardHammer craftingToolKnife
中 plateBrass craftingToolFile 空
下 空 空 空

三个工具槽是 GT 的 ToolDictNames(craftingToolHardHammer / craftingToolKnife / craftingToolFile), plateBrass 是 OreDictionary 名。所以这个配方在 GTNH 上等同于"黄铜板 + 硬锤 + 刀 + 锉"。

碎片产量说明

第三、第四、第五行是同一个物品的三条并行获取路径,不是叠加关系:源码里 if (brassstack != null && !addCastExtruderRecipes) 明确要求 castExtruderRecipes 关闭时 才注册"黄铜板 + 黑曜石碎片"这一条,为的是在没有铸件系统的场景下也能做出碎片铸件。 第五条(黄铜板 + 碎片铸件 → 碎片)只在 castExtruderRecipes 打开时存在。

blankPattern 的两个 metadata(1 / 2)分别是 TiC 1.7.10 的 blankPattern 铸件与 redstonePrint 等价的两个 pattern 变体,源码对它们分别注册了两条完全相同的配方,输出都是本物品。

相关条目