碎片铸件 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 变体,源码对它们分别注册了两条完全相同的配方,输出都是本物品。