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 之间重复定义, 实现者容易只覆写其中一侧而行为不一致。

相关条目