Olive(pamOlive)
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | harvestcraft:pamOlive |
| 源码类 | BlockPamFruit.java(33 个果实方块共用) |
| 构造 | BlockRegistry.java:516 |
| 注册 | BlockRegistry.java:723 |
| 贴图 | harvestcraft:olive_0/1/2(3 张,按 metadata 轮换) |
| 硬度 | setHardness(Block.field_149779_h) + setRequiresTool(true);该混淆静态字段本机无 1.7.10 映射表,具体数值无法核实 |
| 温度/湿度分类 | 暖带/热带 Warm(PamWarmSaplings,BlockRegistry.java:826) |
| 对应树苗 | pamoliveSapling → Olive Sapling |
| 成熟果实物品 | Olive |
| TileEntity | 无 |
| 创造标签 | tabHarvestCraft2 |
生长与再生
BlockPamFruit 用 metadata 0/1/2 表示成熟度:
| metadata | 状态 | 行为 |
|---|---|---|
| 0 | 未成熟 | 光照值 5(getLightValue 覆写返回 5) |
| 1 | 生长中 | 光照值 5 |
| 2 | 已成熟 | 光照值 0;可被右键采摘 |
- 随机刻再生:
func_149674_a中若meta < 2且rand.nextInt(30) == 0则meta + 1(BlockPamFruit.java:75-84) - 右键采摘:
rightclickharvestFruit默认true(BlockRegistry.java:433)。仅当meta == 2时生效:调用dropBlockAsItem掉 1 个果实并把方块重置为 meta 0(BlockPamFruit.java:62-65)→ 采摘后需再等随机刻重新成熟,可以反复再生,不是一次性方块 - 右键粒子:
rightclickmatureshowfruitHearts默认false(BlockRegistry.java:430)。开启后在meta == 2时于方块上方生成heart粒子(BlockPamFruit.java:54-61) - 骨粉:
fertilize前进 2~5 点并上限钳制在 2(BlockPamFruit.java:86-92) - 破坏掉落:
func_149650_a返回 Olive,数量恒为 1(BlockPamFruit.java:97-190、:192-194)
生存条件
canPlaceBlockOn覆写为「正上方一格必须是Blocks.field_150362_t」(BlockPamFruit.java:201-204)onNeighborBlockChange覆写:一旦上方不再是该方块,立即自毁(BlockPamFruit.java:206-210)- 因此该方块只能作为树叶的一部分存在,单独放置会立刻消失
- 碰撞箱
getCollisionBoundingBox覆写返回null(BlockPamFruit.java:40-42)→ 无实体碰撞
相关条目
- Olive Sapling - 对应树苗
- Fruit Trees - 36 个果树种的温度/湿度分类与「果实↔树苗↔原版树种」完整对照表