Paperbark Wood(pamPaperbark)
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | harvestcraft:pamPaperbark |
| 源码类 | BlockPamFruitingLog.java —— 继承 BlockRotatedPillar(有朝向),不是 BlockPamFruit;全 mod 只有 3 个这种方块 |
| 构造 | BlockRegistry.java:522 |
| 注册 | BlockRegistry.java:726 |
| 贴图 | harvestcraft:paperbark_top(顶/底)、_0(侧面)、_1、_2,共 4 张 |
| 硬度 | 2.0F + setRequiresTool(true)(BlockPamFruitingLog.java:33-35) |
| Forge 特性 | canSustainLeaves 与 isWood 均返回 true(:125-131) |
| 温度/湿度分类 | 产木型 Log(PamLogSaplings,BlockRegistry.java:827) |
| 对应树苗 | pampaperbarkSapling → Paperbark Sapling |
| 成熟果实物品 | 原版物品 Paper |
| TileEntity | 无 |
| 创造标签 | tabHarvestCraft2 |
metadata 编码
BlockPamFruitingLog 的 metadata 是双重编码:stage = meta & 3、angle = meta & 0xC(BlockPamFruitingLog.java:73-75)。
| stage | 状态 |
|---|---|
| 0 | 无果实,随机刻直接 return,不再生长 |
| 1 | 生长中 |
| 2 | 生长中 |
| 3 | 成熟,可被右键采摘 |
再生与产出
- 随机刻再生:
stage < 3且rand.nextInt(30) == 0时meta = stage + angle + 1(:93-104) - 右键采摘:仅
stage == 3时生效,且必须先调用过setDropItem——this.fruit == null时func_149727_a第一行就return false(:69-71) pamPaperbark是唯一配置了产出物的产木型:BlockRegistry.java:523调用setDropItem(Items.field_151121_aF)(纸)。成熟时右键会在点击一侧 0.75 格处生成EntityItem,并把 metadata 重置为angle + 1(回到 stage 1)(:82-89)- 骨粉:
fertilize前进 2~5 点,上限钳制在 3(:106-112) - 破坏掉落:
func_149650_a返回Item.getItemFromBlock(this),即掉落自身,数量恒为 1(:48-50)—— 不会掉 Paper - 破坏连带效果:
onBlockDestroyedByPlayer会对周围 ±4 立方体内的树叶调用beginLeavesDecay(:52-67)
这一类方块在
BlockPamFruit.func_149650_a的if (this == BlockRegistry.pamXXX)分支中完全不存在(该方法只覆盖 33 个普通果实方块),这是判定它们属于产木型的直接证据。
相关条目
- Paperbark Sapling - 对应树苗
- Fruit Trees - 36 个果树种的温度/湿度分类与「果实↔树苗↔原版树种」完整对照表