Cake(蛋糕方块总览)
事实基准:
harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。⚠️ 本页已整篇重写。 旧版内容取自 MC 1.12.2 的非 GTNH fork,其引用的
BlockPamCake.java:99-107、:112-122、:152、:31、BlockRegistry.java:389-428等行号在 1.7.10 版中全部越界(BlockPamCake.java只有 107 行)。 详见页末「订正记录」。
本页是 10 个蛋糕方块的汇总索引,不是第 11 个方块。
计数
| 项 | 数量 | 证据 |
|---|---|---|
BlockPamCake 方块 |
10 | BlockRegistry.java:625-634 连续 10 行 new BlockPamCake(...);:815-824 连续 10 行 registerBlock |
ItemPamCakeFood 物品 |
10 | ItemRegistry.java 10 处 new ItemPamCakeFood(...) |
| 片数取值范围 | 3 / 4 / 5 / 6 四种 | 逐个构造参数核对,非统一 6 片 |
| 语言文件交叉验证 | tile.pam*Cake.name 恰好 10 条 |
en_US.lang:224-233 |
全部 10 个蛋糕
片数取自 BlockRegistry.java 各行构造器第 1 参数;
「整块吃完总计」= 每片 2 食物值 / 0.1 饱和度 × 片数(BlockPamCake.java:83、:99)。
| 方块 | 注册名 | 注册行 | 构造行 | 整块总计 | 片数(= meta 数) | 物品字段 | 物品声明行 |
|---|---|---|---|---|---|---|---|
Carrot Cake |
pamcarrotCake |
815 |
625 | 8 | 0.4 / 4 | carrotcakeItem |
1229 |
Cheese Cake |
pamcheeseCake |
816 |
626 | 10 | 0.5 / 5 | cheesecakeItem |
1351 |
Cherry Cheese Cake |
pamcherrycheeseCake |
817 |
627 | 12 | 0.6 / 6 | cherrycheesecakeItem |
1352 |
Pineapple Upside Down Cake |
pampineappleupsidedownCake |
818 |
628 | 10 | 0.5 / 5 | pineappleupsidedowncakeItem |
1372 |
Chocolate Sprinkles Cake |
pamchocolatesprinkleCake |
819 |
629 | 8 | 0.4 / 4 | chocolatesprinklecakeItem |
1460 |
Red Velvet Cake |
pamredvelvetCake |
820 |
630 | 8 | 0.4 / 4 | redvelvetcakeItem |
1461 |
Lamington |
pamlamingtonCake |
821 |
631 | 6 | 0.3 / 3 | lamingtonItem |
1633 |
Pavlova |
pampavlovaCake |
822 |
632 | 10 | 0.5 / 5 | pavlovaItem |
1639 |
Holiday Cake |
pamholidayCake |
823 |
633 | 10 | 0.5 / 5 | holidaycakeItem |
1676 |
Pumpkin Cheese Cake |
pampumpkincheeseCake |
824 |
634 | 12 | 0.6 / 6 | pumpkincheesecakeItem |
1701 |
片数在 1.7.10 版是构造期硬编码,
Config.java中没有任何蛋糕配置项,即不可配置。
共有的数值与机制
| 项 | 值 | 来源 |
|---|---|---|
| 每片食物值 | 2 | BlockPamCake.java:83(无 AppleCore)/ :99(有 AppleCore) |
| 每片饱和度 | 0.1f | 同上 |
| 回血 / 药水效果 | 无 —— 全文无 addPotionEffect |
BlockPamCake.java |
| 硬度 | 0.5f(全部 10 个) | BlockRegistry.java:625-634 |
| metadata 取值 | 0 ~ 片数-1,共 片数 个形态 |
BlockPamCake.java:36-48 |
| 碰撞箱宽度 | 0.0625 + 0.875 * (meta / 片数) |
BlockPamCake.java:39 |
| 高度 | 0.5 |
BlockPamCake.java:40 |
| 吃完后 | meta + 1;nextMeta >= 片数 时整个方块消失 |
BlockPamCake.java:85-90 |
| 满饥饿可食 | 不能(isEdibleAtMaxHunger 恒为 false) |
BlockPamCake.java:28、:77 |
| TileEntity / 多方块 | 均无 | — |
配方(全部为 ShapelessOreRecipe 无序矿物词典配方)
| 蛋糕 | 配方行 | 材料 |
|---|---|---|
| Carrot Cake | PamFoodRecipes.java:129 |
toolBakeware + cropCarrot + listAllsugar + foodDough |
| Cheese Cake | :301 |
toolBakeware + foodFlour + listAllheavycream + listAllsugar + listAllegg |
| Cherry Cheese Cake | :302 |
cropCherry + foodCheesecake |
| Pineapple Upside Down Cake | :328 |
toolBakeware + cropPineapple + foodDough + cropCherry + cropWalnut |
| Chocolate Sprinkles Cake | :438 |
toolBakeware + foodCocoapowder + listAllsugar + foodDough + dyeRed + dyeGreen + dyeYellow |
| Red Velvet Cake | :439 |
toolBakeware + listAllmilk + foodFlour + listAllheavycream + listAllsugar + listAllegg + dyeRed × 2 |
| Lamington | :623 |
toolBakeware + foodDough + foodChocolatebar + foodToastedcoconut |
| Pavlova | :634 与 :635 重复 |
toolBakeware + listAllegg + listAllsugar + cropLemon + listAllheavycream + cropStrawberry |
| Holiday Cake | :653 |
toolBakeware + listAllegg + listAllsugar + cropCherry + listAllheavycream + cropSpiceleaf |
| Pumpkin Cheese Cake | :677 |
Blocks.field_150423_aK + foodCheesecake |
Blocks.field_150423_aK是未反混淆的原版方块,但本 mod 在PamFoodOreDictionaryRegistry.java:22把它登记为cropPumpkin、:19登记为listAllveggie,据此可确定为南瓜方块(这是 mod 自身的矿物词典证据,不是猜测)。
源码缺陷
ItemPamCakeFood的食物参数全部是死参数。 其构造器体内只有super(cake);(ItemPamCakeFood.java:11-13),amount/saturation/isWolfFood没有传给任何父类构造器。ItemRegistry.java中 10 处调用传入的饥饿值 (3~12 不等)与饱和度全部无效。顺带订正:
ItemPamCakeFood继承的是ItemReed(ItemPamCakeFood.java:10), 不是ItemBlock。它靠持有方块来提供getItemStackFromBlock, 因此实际仍承担了「方块的物品形态」这一角色。setEdibleAtMaxHunger无任何调用者(BlockPamCake.java:93-95)—— 全 mod 搜索只命中声明与定义本身,isEdibleAtMaxHunger恒为false。- 帕夫洛娃配方重复登记:
PamFoodRecipes.java:634与:635是完全相同的两条。 - 无
PropertyInteger:metadata 用world.func_72805_g()直接读取原始值。
订正记录(旧版基于 MC 1.12.2 fork,全部作废)
| 旧版说法 | 裁定 | 依据 |
|---|---|---|
注册名形如 harvestcraft:carrotcake |
不成立 | 1.7.10 注册名是 harvestcraft:pamcarrotCake(BlockRegistry.java:815),旧名是 1.12.2 的 |
「必须放置在正下方为实心材质」「移除时自毁」,引 BlockPamCake.java:105-107、:99-103 |
不成立 | BlockPamCake.java 共 107 行,没有 canBlockStay / neighborChanged 覆写;该行为继承原版 BlockCake |
「永远不掉落物品」,引 :112-122 |
不成立 | 行号越界(全文 107 行);且本类没有任何掉落方法覆写 |
「红石比较器输出 (7 - BITES) * 2」,引 :152 |
不成立 | 行号越界;且本类没有比较器覆写 |
「BITES 属性范围 0-6」,引 BlockPamCake.java:31 |
不成立 | 本类没有 PropertyInteger;:31 是 func_149672_a 声音设置 |
「片数硬编码于 BlockRegistry.java:389-428」 |
不成立 | 1.7.10 的构造在 BlockRegistry.java:625-634 |
| Pumpkin Cheese Cake = 4 片 | 不成立 | 实际 6 片(BlockRegistry.java:634) |
| Red Velvet Cake = 6 片 | 不成立 | 实际 4 片(BlockRegistry.java:630) |
| 每片 2 饥饿 + 0.1 饱和度 | 成立 | BlockPamCake.java:83、:99 |
| 片数 3~6 且不可配置 | 成立 | 10 个构造参数逐一核对;Config.java 无蛋糕配置项 |
相关条目
- Crops(作物方块总览) — 60 个作物方块
- ItemPamCakeFood — 蛋糕的物品形态基类
- Market — 市场(可购买部分蛋糕材料)