mincedmeatItem(绞肉)
事实基准:
harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。
基本信息
| 属性 | 值 | 来源 |
|---|---|---|
| 注册名 | harvestcraft:mincedmeatItem |
ItemRegistry.java:2029 |
| 显示名 | (无 lang 条目) |
lang 文件中无此键 |
| Java 类 | ItemMincedMeat |
ItemRegistry.java:1794 |
| 字段 | ItemRegistry.mincedmeatrawItem |
ItemRegistry.java 字段声明 |
| 创造标签 | tabHarvestCraft3(HarvestCraft Food) |
ItemRegistry.java:1794 |
| 条件注册 | 是:if (BlockRegistry.enablemeatGrinder) |
ItemRegistry.java:2029 |
显示名特殊:本物品没有
item.mincedmeatItem.name这一条 lang 键。显示名由ItemMincedMeat.func_77667_c在运行时拼成item.mincedmeatrawItem.<meatType>(base/item/ItemMincedMeat.java:39-45),因此 8 个子类型各有独立显示名(en_US.lang:1125-1132)。
| 属性 | 值 | 来源 |
|---|---|---|
| 最大堆叠 | 64(未覆写,Item 默认) |
ItemMincedMeat.java 未调用 func_77625_d |
| 耐久度 | 无 —— 构造器里 func_77656_e(0) 是把耐久设为 0(不可损坏) |
ItemMincedMeat.java:23 |
| 有子类型 | 是(func_77627_a(true) = setHasSubtypes) |
ItemMincedMeat.java:24 |
| 创造标签 | tabHarvestCraft3(HarvestCraft Food) |
ItemMincedMeat.java:25 |
| 条件注册 | 是:if (BlockRegistry.enablemeatGrinder) —— 该配置默认 false |
ItemRegistry.java:2028-2029;默认值 BlockRegistry.java:343 |
子类型(meta 0–7)
| meta | meatTypes 常量 |
显示名 | lang 行 |
|---|---|---|---|
| 0 | beef |
Minced Beef | en_US.lang:1125 |
| 1 | pork |
Minced Pork | en_US.lang:1126 |
| 2 | chicken |
Minced Chicken | en_US.lang:1127 |
| 3 | fish |
Minced Fish | en_US.lang:1128 |
| 4 | mutton |
Minced Mutton | en_US.lang:1129 |
| 5 | rabbit |
Minced Rabbit | en_US.lang:1130 |
| 6 | turkey |
Minced Turkey | en_US.lang:1131 |
| 7 | venison |
Minced Venison | en_US.lang:1132 |
数组字面量在
base/item/ItemMincedMeat.java:18。越界的 meta 会被夹回 0(:41-43名称、:49-51贴图)。
加工
| 来源 | 产物 |
|---|---|
OvenRecipes.java:79-83 |
绞肉机(Grinder)+ 烤箱流程:生肉 → 绞肉 → 熟肉。该分支还需 enablemeatGrinder 与 forcecookinginmeatrecipes 同时开启 |
源码缺陷
- 注册名与字段名不一致:注册名是
mincedmeatItem(生),字段却是mincedmeatrawItem;对应的熟肉注册名是mincedmeatcookedItem、字段mincedmeatcookedItem(ItemRegistry.java:1794-1795, 2029, 2031)。两个字段是同一个类的两个实例,贴图按meatTypes区分而不是按生熟区分 —— 生熟只能靠 meta 无法区分,必须靠注册名。 - 默认配置下本物品不存在:
enablemeatGrinder默认false(BlockRegistry.java:343),整个GameRegistry.registerItem块被跳过。