跳到正文
烈焰甘蔗Wiki

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 个果树种的温度/湿度分类与「果实↔树苗↔原版树种」完整对照表
浏览全部模组