跳到正文
烈焰甘蔗Wiki

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 自身的矿物词典证据,不是猜测)。

源码缺陷

  1. ItemPamCakeFood 的食物参数全部是死参数。 其构造器体内只有 super(cake); (ItemPamCakeFood.java:11-13),amount / saturation / isWolfFood 没有传给任何父类构造器。ItemRegistry.java 中 10 处调用传入的饥饿值 (3~12 不等)与饱和度全部无效。

    顺带订正:ItemPamCakeFood 继承的是 ItemReed(ItemPamCakeFood.java:10), 不是 ItemBlock。它靠持有方块来提供 getItemStackFromBlock, 因此实际仍承担了「方块的物品形态」这一角色。

  2. setEdibleAtMaxHunger 无任何调用者(BlockPamCake.java:93-95)—— 全 mod 搜索只命中声明与定义本身,isEdibleAtMaxHunger 恒为 false。
  3. 帕夫洛娃配方重复登记:PamFoodRecipes.java:634 与 :635 是完全相同的两条。
  4. 无 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 无蛋糕配置项

相关条目

浏览全部模组