TPlantBlock / TItemSeed
基本信息
| 属性 |
值 |
| 路径 |
mrtjp.core.block.plants.scala |
| 源码 |
src/main/scala/mrtjp/core/block/plants.scala |
IPlantable + IGrowable 的 Plant(作物 / 树苗)框架,同样基于 InstancedBlock。
TPlantBlock(extends InstancedBlock with IPlantable with IGrowable)
| 成员 |
说明 |
canStay(w, x, y, z) |
校验能否留在该位置 |
initialCanStay(...) |
放置时的初始校验(与生长后的 canStay 区分) |
dropIfCantStay(...) |
条件不满足时掉落自身 |
TPlantTile(extends InstancedBlockTile)
| 成员 |
说明 |
canBlockStay |
读回 world 中的方块判定 |
applyBonemeal() |
骨粉效果,默认返回 false(即默认不加速生长) |
dropIfCantStay |
条件不满足时自毁 |
TItemSeed(extends Item with IPlantable)
| 成员 |
说明 |
getPlantBlock: (Block, Int) |
需实现:返回种植后的 (方块, meta) |
onPlanted(item, w, x, y, z) |
种植后回调,默认空实现 |
缺陷
TPlantBlock 同时混入 IPlantable 与 IGrowable,而 TPlantTile 又重复提供
canStay / applyBonemeal / dropIfCantStay——职责在 Block 与 Tile 之间重复定义,
实现者容易只覆写其中一侧而行为不一致。
相关条目