Olive Sapling(pamoliveSapling)
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | harvestcraft:pamoliveSapling |
| 源码类 | BlockPamSapling.java(36 个树苗方块共用) |
| 构造 | BlockRegistry.java:517 new BlockPamSapling(3, 3, pamOlive) |
| 注册 | BlockRegistry.java:687 |
| 贴图 | harvestcraft:oliveSapling |
| 温度/湿度分类 | 暖带/热带 Warm(PamWarmSaplings,BlockRegistry.java:826) |
| 原版树种 | 木材 metadata 3、树叶 metadata 3 → 丛林 Jungle |
| 对应果实方块 | pamOlive → Olive 条目 |
| 生成器 | WorldGenPamFruitTree |
| 碰撞箱 | min (0.1, 0.0, 0.1) ~ max (0.9, 0.8, 0.9) |
| TileEntity | 无 |
| 创造标签 | tabHarvestCraft2 |
木材与树叶的 metadata 由构造器参数
(metaWood, metaLeaves)决定,经WorldGenPamFruitTree/WorldGenPamFruitLogTree传给原版Blocks.log与Blocks.leaves。1.7.10 中不存在「苹果树=橡木」这类额外映射表 —— 全部信息就是这两个 metadata。
种植与生长
| 触发 | 行为 | 证据 |
|---|---|---|
| 骨粉 | markOrGrowMarked:metadata 无 bit 8 时只打标记(meta OR 8),第二次才真正长树 |
BlockPamSapling.java:55-62 |
| 随机刻 | 光照 ≥ 9 且 random.nextInt(7) == 0 时走同一条「打标记 / 长树」路径 |
BlockPamSapling.java:78-85 |
| 长树 | 先调 TerrainGen.saplingGrowTree(尊重 Forge 树生长规则),先把方块换成原版 Blocks.field_150350_a(树苗),生成失败再换回自身 |
BlockPamSapling.java:68-76 |
| 生成器高度 | 两种构造器都传 new WorldGenPam...(true, 5, ...),第 2 个参数 5 |
BlockPamSapling.java:38、:48 |
生长配方
| 分类 | 配方出处 | 写法 | 树苗 metadata |
|---|---|---|---|
| 温带(9 个) | PamFoodRecipes.java:29 |
for (i < 9) 循环,索引 PamTemperateSaplings[i] ↔ PamTemperateFruits[i] |
0 |
| 暖带(24 个) | PamFoodRecipes.java:32 |
for (i < 24) 循环,索引 PamWarmSaplings[i] ↔ PamWarmFruits[i] |
3 |
| 肉桂 | PamFoodRecipes.java:34 |
单独手写 BlockRegistry.pamcinnamonSapling |
3 |
| 纸皮树 | PamFoodRecipes.java:35 |
单独手写 BlockRegistry.pampaperbarkSapling |
3 |
| 枫树 | PamFoodRecipes.java:36 |
单独手写 BlockRegistry.pammapleSapling |
1 |
本树种实际配方:
Olive + minecraft:sapling [meta 3] -> pamoliveSapling
⚠️ 注意:产木型(log)这 3 条配方没有写成
PamLogSaplings[i]循环, 所以「果实与树苗按下标配对」这个规律只对温带与暖带成立。PamLogFruits数组确实存在(ItemRegistry.java:2599),但它在 1.7.10 中只被PamMFRCompatibility.java:47用于 Miscellaneous Farming Red 的 fertilizable 注册, 不参与配方登记。
世界生成
- 不会自然生成:
PamTreeGenerator.java中没有BlockRegistry.pamOlive的任何引用,尽管配置项olivetreeGeneration已声明(BlockRegistry.java:413)—— 这是本 mod 的一个源码缺陷,详见 Fruit Trees - 所有果树生成器开头都有
if (BiomeDictionary.isBiomeOfType(biome, DEAD)) return;(PamTreeGenerator.java:42-44)—— 死亡生物群系不生成 - 维度开关(对所有果树一致):仅 Overworld(0) 生成;Twilight Forest(7) 与 Aroma1997’s Dimension(6) 需另开配置(默认均
false)
相关条目
- Olive(pamOlive) - 对应果实方块
- Fruit Trees - 36 个果树种的完整对照表