灌木(BushBlock)

25 种灌木方块,全部由同一个 BushBlock 类注册,属性完全一致,差异仅在贴图与语言名。 注册入口:ViriBlocks.registerBush(String)。

基本信息

属性 值 来源
Java 类 net.junedev.viridium.blocks.BushBlock blocks/BushBlock.java
注册名 viridium:<name>(25 个,见下表) GameRegistry.registerBlock(bush, name)
材质 Material.leaves 构造函数 super(Material.leaves)
硬度 0.4F setHardness(0.4F)
透光性 setLightOpacity(1) 构造函数
脚步声 soundTypeGrass setStepSound
爆炸抗性 mod 代码未调用 setResistance() —
光照等级 mod 代码未调用 setLightLevel(),即 0 —
最大堆叠 mod 代码未调用 setMaxStackSize(),即默认 64 —
渲染类型 ViriRenderIds.bushBlockRenderId(运行时由 RenderingRegistry.getNextAvailableRenderId() 分配) getRenderType()
创造栏 Viridium.VTab setCreativeTab
贴图 viridium:bushes/<name>、..._branches、..._leaves、..._leaves_fast setBlockName() + registerBlockIcons()
TileEntity 无 —

方块列表(25 个)

注册名 游戏内名称
viridium:ainselu Ainselu
viridium:bears_breeches Bears Breeches
viridium:blackberry Blackberry
viridium:creosote_bush Creosote Bush
viridium:croton Croton
viridium:elderberry Elderberry Bush
viridium:false_indigo False Indigo
viridium:golden_wattle Golden Wattle
viridium:honeysuckle Honeysuckle
viridium:japanese_andromeda Japanese Andromeda
viridium:koki_o_ono Koki O Ono
viridium:kudzu Kudzu
viridium:kutjera Kutjera
viridium:ma_o_hau_hele Ma’o Hau Hele
viridium:oldman_saltbush Oldman Saltbush
viridium:poinsettia Poinsettia
viridium:quandong Quandong Bush
viridium:raspberry Raspberry Bush
viridium:rhododendron Rhododendron
viridium:rose_shrub Rose Shrub
viridium:sandhill_wattle Sandhill Wattle
viridium:satsuki_azalea Satsuki Azalea
viridium:silverleaf_hydrangea Silverleaf Hydrangea
viridium:staghorn_sumac Staghorn Sumac
viridium:wedding_bush Wedding Bush

碰撞与移动

灌木没有标准碰撞箱:getCollisionBoundingBoxFromPool() 直接返回 null。

addCollisionBoxesToList 只在实体位于灌木顶面之上并向下运动时补一个平台碰撞盒:

平台高度 PLATFORM_HEIGHT = 0.75
碰撞盒 = (x, y, z) → (x+1.0, y+0.75, z+1.0)
生效条件 = collider.boundingBox.minY >= platform.maxY - 0.01 && collider.motionY <= 0.0

因此玩家可以从下方穿进灌木,但站上去时会被 0.75 格高的平台托住,不会掉进方块内部。

物理参数 值 说明
movementAttenuation 0.4D 在灌木中移动时 motionX/motionZ 乘以 0.4;motionY < 0 时 motionY 也乘以 0.4
fallAttenuation 0.35F onFallenUpon 把 entity.fallDistance 乘以 0.35,落地伤害大幅降低
getAmbientOcclusionLightValue() 0.2F 环境光遮蔽,渲染上灌木显得凹陷

两个衰减系数都有 setter(setMovementAttenuation / setFallAttenuation),但 mod 自身从不调用,全部 25 种灌木使用同一组默认值。

渲染

  • isOpaqueCube() 委托给 Blocks.leaves.isOpaqueCube()
  • renderAsNormalBlock() 返回 false
  • 物品图标固定取 _branches 图标(getIcon() 无条件返回 getBranchIcon()),_leaves / _leaves_fast 只在方块渲染时使用
  • 环境光遮蔽值 0.2F

掉落

mod 没有覆写 getDrops / onBlockHarvested / breakBlock(全仓库零命中), 因此灌木破坏后按原版方块规则掉落自身,一个灌木 = 一个物品。

配方

本 mod 不注册任何合成配方(见分类页「本 mod 没有 X」章节)。

相关条目

  • 高大植物 - 同为 TallPlantBlock 家族的植物方块,属性与碰撞模型不同
  • 创造栏排序 - 创造栏排序中灌木权重最高