跳到正文
烈焰甘蔗Wiki

Fruit Trees(果树总览)

计数(本页是汇总索引,不是第 37 个方块)

项 数量 证据
果实/结果方块 36 BlockRegistry.java:703-738 连续 36 行 registerBlock
树苗方块 36 BlockRegistry.java:667-702 连续 36 行 registerBlock
其中 BlockPamFruit(会结果实) 33 构造处 new BlockPamFruit(...)
其中 BlockPamFruitingLog(产木型) 3 pamCinnamon / pamMaple / pamPaperbark
温度分类合计 9 + 24 + 3 = 36 BlockRegistry.java:825-827

语言文件交叉验证:en_US.lang 中 tile.pam*Sapling.name 键恰好 36 条(:109-144)。

温度/湿度分类的确定方法

分类不是数调用点得出的,而是对三个数组做集合运算得到:

BlockRegistry.java:825  PamTemperateSaplings = { apple, avocado, cherry, chestnut, nutmeg, pear, plum, walnut, gooseberry }   // 9 个
BlockRegistry.java:826  PamWarmSaplings      = { almond, apricot, banana, cashew, coconut, date, dragonfruit, durian, fig, grapefruit, lemon, lime, mango, olive, orange, papaya, peach, pecan, peppercorn, persimmon, pistachio, pomegranate, starfruit, vanillabean }
                                  // 24 个
BlockRegistry.java:827  PamLogSaplings       = { cinnamon, maple, paperbark }        // 3 个

集合运算结果:

校验 结果
36 个已注册树苗 ∩ 三组并集 的差集 空(没有游离树苗)
三组并集 − 36 个已注册树苗 空(没有幽灵成员)
三组两两交集 全空(无重复归属)
9 + 24 + 3 36

独立交叉验证:分类与木材 metadata 完全对应,说明分组不是随意的 ——

分类 数量 木材 metadata 原版树种
温带 Temperate 9 0 全部橡木 Oak
暖带 Warm 24 3 全部丛林木 Jungle
产木 Log 3 1 / 3 / 3 云杉(枫树) + 丛林(肉桂、纸皮树)

完整对照表:果实 ↔ 树苗 ↔ 原版树种

「成熟果实」列即 PamTemperateFruits / PamWarmFruits / PamLogFruits 三个数组的对应元素(ItemRegistry.java:2597-2599),与树苗数组同下标平行。

但要注意:温带与暖带的配方是按下标循环写的(PamFoodRecipes.java:29、:32),产木型 3 条却是手写的(:34、:35、:36,树苗 meta 分别是 3/3/1)。所以「同下标 ⇒ 同一条配方」只对温带与暖带成立,详见各树苗条目。

# 树种 果实方块 树苗方块 分类 原版树种(木/叶 metadata) 成熟果实物品 自然生成
1 Almond pamAlmond pamalmondSapling 暖带/热带 Warm 丛林 Jungle(3/3) Almond 是
2 Apple pamApple pamappleSapling 温带 Temperate 橡木 Oak(0/0) Apple(原版) 是
3 Apricot pamApricot pamapricotSapling 暖带/热带 Warm 丛林 Jungle(3/3) Apricot 是
4 Avocado pamAvocado pamavocadoSapling 温带 Temperate 橡木 Oak(0/0) Avocado 是
5 Banana pamBanana pambananaSapling 暖带/热带 Warm 丛林 Jungle(3/3) Banana 是
6 Cashew pamCashew pamcashewSapling 暖带/热带 Warm 丛林 Jungle(3/3) Cashew 是
7 Cherry pamCherry pamcherrySapling 温带 Temperate 橡木 Oak(0/0) Cherry 是
8 Chestnut pamChestnut pamchestnutSapling 温带 Temperate 橡木 Oak(0/0) Chestnut 是
9 Cinnamon pamCinnamon pamcinnamonSapling 产木型 Log 丛林 Jungle(3/3) Cinnamon 是
10 Coconut pamCoconut pamcoconutSapling 暖带/热带 Warm 丛林 Jungle(3/3) Coconut 是
11 Date pamDate pamdateSapling 暖带/热带 Warm 丛林 Jungle(3/3) Date 是
12 Dragonfruit pamDragonfruit pamdragonfruitSapling 暖带/热带 Warm 丛林 Jungle(3/3) Dragonfruit 是
13 Durian pamDurian pamdurianSapling 暖带/热带 Warm 丛林 Jungle(3/3) Durian 是
14 Fig pamFig pamfigSapling 暖带/热带 Warm 丛林 Jungle(3/3) Fig 是
15 Gooseberry pamGooseberry pamgooseberrySapling 温带 Temperate 橡木 Oak(0/0) Gooseberry 是
16 Grapefruit pamGrapefruit pamgrapefruitSapling 暖带/热带 Warm 丛林 Jungle(3/3) Grapefruit 是
17 Lemon pamLemon pamlemonSapling 暖带/热带 Warm 丛林 Jungle(3/3) Lemon 是
18 Lime pamLime pamlimeSapling 暖带/热带 Warm 丛林 Jungle(3/3) Lime 是
19 Mango pamMango pammangoSapling 暖带/热带 Warm 丛林 Jungle(3/3) Mango 是
20 Maple pamMaple pammapleSapling 产木型 Log 云杉 Spruce(1/1) Maple Syrup 是
21 Nutmeg pamNutmeg pamnutmegSapling 温带 Temperate 橡木 Oak(0/0) Nutmeg 是
22 Olive pamOlive pamoliveSapling 暖带/热带 Warm 丛林 Jungle(3/3) Olive 否
23 Orange pamOrange pamorangeSapling 暖带/热带 Warm 丛林 Jungle(3/3) Orange 是
24 Papaya pamPapaya pampapayaSapling 暖带/热带 Warm 丛林 Jungle(3/3) Papaya 是
25 Paperbark pamPaperbark pampaperbarkSapling 产木型 Log 丛林 Jungle(3/3) Paper(原版) 是
26 Peach pamPeach pampeachSapling 暖带/热带 Warm 丛林 Jungle(3/3) Peach 是
27 Pear pamPear pampearSapling 温带 Temperate 橡木 Oak(0/0) Pear 是
28 Pecan pamPecan pampecanSapling 暖带/热带 Warm 丛林 Jungle(3/3) Pecan 是
29 Peppercorn pamPeppercorn pampeppercornSapling 暖带/热带 Warm 丛林 Jungle(3/3) Peppercorn 是
30 Persimmon pamPersimmon pampersimmonSapling 暖带/热带 Warm 丛林 Jungle(3/3) Persimmon 是
31 Pistachio pamPistachio pampistachioSapling 暖带/热带 Warm 丛林 Jungle(3/3) Pistachio 是
32 Plum pamPlum pamplumSapling 温带 Temperate 橡木 Oak(0/0) Plum 是
33 Pomegranate pamPomegranate pampomegranateSapling 暖带/热带 Warm 丛林 Jungle(3/3) Pomegranate 是
34 Starfruit pamStarfruit pamstarfruitSapling 暖带/热带 Warm 丛林 Jungle(3/3) Starfruit 是
35 Vanillabean pamVanillabean pamvanillabeanSapling 暖带/热带 Warm 丛林 Jungle(3/3) Vanilla Bean 是
36 Walnut pamWalnut pamwalnutSapling 温带 Temperate 橡木 Oak(0/0) Walnut 是

果实方块 ↔ 树苗 的 1:1 对应

  • 36 个果实方块的注册名是 pam + 首字母大写(pamApple、pamAlmond … pamWalnut),36 个树苗是 pam + 全小写 + Sapling(pamappleSapling、pamalmondSapling … pamgooseberrySapling)
  • 两者只差首字母大小写与 Sapling 后缀,树种集合完全相同(36 ↔ 36,无一遗漏、无一多余)

产木型(BlockPamFruitingLog)与普通果树的差异

BlockPamFruitingLog 继承 BlockRotatedPillar(有朝向),metadata 的含义是 stage = meta & 3(0 空 / 1 / 2 生长 / 3 成熟)与 angle = meta & 0xC。

树种 setDropItem 右键能否产出 备注
pamPaperbark 有 —— Items.field_151121_aF(纸),BlockRegistry.java:523 能,成熟时点击掉落纸 掉纸
pamCinnamon 有 —— cinnamonItem,ItemRegistry.java:1171 能,成熟时点击掉落 Cinnamon 掉肉桂
pamMaple 有 —— maplesyrupItem,ItemRegistry.java:1181 能,成熟时点击掉落 Maple Syrup 掉糖浆,不是鲜果
  • 硬度 2.0F、setRequiresTool(true)(BlockPamFruitingLog.java:33-35)
  • canSustainLeaves 与 isWood 均返回 true,可作为树叶/木材被 Forge 识别
  • 破坏时会对周围 ±4 的树叶调用 beginLeavesDecay(BlockPamFruitingLog.java:52-67)
  • 骨粉 fertilize 前进 2~5 点,上限钳制在 3(BlockPamFruitingLog.java:106-112)

已核实的源码缺陷

  1. 橄榄树(pamOlive)永远不会自然生成。 BlockRegistry.java:287-322 声明了全部 36 个 *treeGeneration 开关,BlockRegistry.java:413 读取 olivetreeGeneration,但 PamTreeGenerator.java 全文没有 BlockRegistry.pamOlive 的任何引用 —— 暖带生成器的 25 个 case 里也没有橄榄。后果:该配置项无效,橄榄只能靠树苗获得。
  2. 三个 BlockPamFruitingLog 的 setDropItem 分散在两个文件:pamPaperbark 在 BlockRegistry.java:523, pamCinnamon 在 ItemRegistry.java:1171,pamMaple 在 ItemRegistry.java:1181。 ⚠️ 只 grep BlockRegistry.java 会得出「只有 paperbark 有产出」的错误结论 —— 本条目初稿就是这样写错的, 由「产木型只有纸会掉东西」的伪缺陷演变成 3 条错误断言。跨文件 grep 必须用集合运算。 三者的产出物与 PamMFRCompatibility.java:47 的 PamLogFruitItems = {cinnamonItem, maplesyrupItem, Items.field_151121_aF} 顺序一致,可作第三方佐证。
  3. 反编译伪影(非 mod 缺陷):PamTreeGenerator.java 里各 switch 的 case 块在 CFR 0.152 输出中没有 break,看起来像贯穿 fall-through。原始字节码的 break 由跳转表实现,这是 CFR 的还原缺陷,不是 mod 的 bug。本条目按「随机挑 1 个树种」的语义理解。

相关条目

  • Market - 市场(MarketItems.java:84-205 按三个分类数组成批登记树苗交易)
浏览全部模组