小树干(SmallLogBlock)

30 种「小树」的主干方块。横截面只有方块中央的一部分像素,靠与相邻方块自动连接拼成整根树干。 由 SmallTreeBlockSet 一次性注册,日志/树叶/树皮/木板/树苗五件套见各自条目。 源码:blocks/SmallLogBlock.java、blocks/sets/SmallTreeBlockSet.java。

基本信息

属性 值 来源
Java 类 net.junedev.viridium.blocks.SmallLogBlock —
材质 Material.wood 构造函数
硬度 1.0F setHardness(1.0F)
脚步声 soundTypeWood setStepSound
爆炸抗性 mod 代码未调用 setResistance() —
isWood() true(可被斧头正确识别) 覆写
canSustainLeaves() true 覆写
碰撞 无标准碰撞箱,用多段 AABB 动态拼装 addCollisionBoxesToList
渲染类型 ViriRenderIds.smallLogBlockRenderId(运行时分配) getRenderType()
创造栏 Viridium.VTab setCreativeTab
贴图 viridium:small_trees/<name>_log + _top / _side registerBlockIcons
TileEntity 无 —

metadata 编码

轴向存在 bit 2-3(meta & 12),低 2 位(meta & 3)在 onBlockPlaced 中原样保留、不参与语义:

meta & 12 轴向 onBlockPlaced 侧面对应
0 Y 轴(竖直) side 0 / 1(顶 / 底)
4 X 轴(东西) side 4 / 5(东 / 西)
8 Z 轴(南北) side 2 / 3(北 / 南)

getIcon 按 meta & 12 选择 _top(端面)或 _side(侧面)贴图。

几何参数与两种规格

构造函数签名 SmallLogBlock(int halfWidth, int faceHalfWidth, boolean doSidesConnect):

  • halfWidth = 物理横截面半宽(像素),限定 1~8,非法值回退为 4 并打 WARN
  • faceHalfWidth = 相切轴上四边形跨度半宽,可以大于 halfWidth,限定 1~8,非法值回退为 4
  • doSidesConnect = 是否与侧向方块连接

核心碰撞盒由 halfWidth 决定:

getCoreMin() = 0.5 - halfWidth / 16.0
getCoreMax() = 0.5 + halfWidth / 16.0

SmallTreeBlockSet(name) 的默认参数是 4, 4, true,只有巨型竹子显式覆盖为 3, 4, false。

规格 halfWidth faceHalfWidth 侧向连接 树种数 差异
默认(细圆杆) 4 4 是 29 8/16 格宽的方形截面,四面都能与邻居连成整根;断开时只保留中央 0.5 格见方
巨型竹子 3 4 否 1 6/16 格宽更细;只沿自身轴向连接,侧向不连接。onBlockPlaced 在 !doSidesConnect() 时直接 return 0,轴向恒为 Y

连接规则(getConnectionType)

返回 ConnectionType 枚举三值:NONE / SOLID / TRANSPARENT。

判定顺序:

  1. 若方块轴向与该方向平行 → 该面是端口;若邻居 isSideSolid 则 SOLID,否则 TRANSPARENT
  2. 若 doSidesConnect() 为 false 且不是端口方向 → 直接 NONE
  3. 邻居是 BlockLeaves → TRANSPARENT
  4. 邻居是 SmallLogBlock → 双方都朝对方方向延伸才连接;本方 halfWidth 小于对方时判为 SOLID,否则 TRANSPARENT
  5. 其余情况 → NONE

getLogBoxes 据此拼装多段 AABB:每个有连接的轴向把该端从 coreMin/coreMax 拉伸到 0.0 / 1.0;完全无连接时只生成中央 coreMin..coreMax 的一个盒子。只有 EAST / UP / SOUTH 三个正方向参与枚举(负方向由对偶方向覆盖)。

方块列表(30 个)

注册名 halfWidth / faceHalfWidth / 连接 游戏内名称
viridium:black_spruce_log 4 / 4 / 侧向连接 Black Spruce Wood
viridium:blackthorn_log 4 / 4 / 侧向连接 Blackthorn Wood
viridium:blue_mahoe_log 4 / 4 / 侧向连接 Blue Mahoe Wood
viridium:box_elder_log 4 / 4 / 侧向连接 Box Elder Wood
viridium:callery_pear_log 4 / 4 / 侧向连接 Callery Pear Wood
viridium:citron_log 4 / 4 / 侧向连接 Citron Wood
viridium:crape_myrtle_log 4 / 4 / 侧向连接 Crape Myrtle Wood
viridium:desert_bloodwood_log 4 / 4 / 侧向连接 Desert Bloodwood Wood
viridium:flowering_dogwood_log 4 / 4 / 侧向连接 Flowering Dogwood Wood
viridium:giant_bamboo_log 3 / 4 / 仅沿轴向连接 Giant Bamboo
viridium:holly_log 4 / 4 / 侧向连接 Holly Wood
viridium:jacaranda_log 4 / 4 / 侧向连接 Jacaranda Wood
viridium:japanese_maple_log 4 / 4 / 侧向连接 Japanese Maple Wood
viridium:joshua_tree_log 4 / 4 / 侧向连接 Joshua Tree Wood
viridium:koki_o_kea_log 4 / 4 / 侧向连接 Koki’o Kea Wood
viridium:kumquat_log 4 / 4 / 侧向连接 Kumquat Wood
viridium:lemon_myrtle_log 4 / 4 / 侧向连接 Lemon Myrtle Wood
viridium:lilac_log 4 / 4 / 侧向连接 Lilac Wood
viridium:mimosa_log 4 / 4 / 侧向连接 Mimosa Wood
viridium:mulga_log 4 / 4 / 侧向连接 Mulga Wood
viridium:olive_log 4 / 4 / 侧向连接 Olive Wood
viridium:pacific_yew_log 4 / 4 / 侧向连接 Pacific Yew Wood
viridium:paperbark_maple_log 4 / 4 / 侧向连接 Paperbark Maple Wood
viridium:pawpaw_log 4 / 4 / 侧向连接 Pawpaw Wood
viridium:pear_log 4 / 4 / 侧向连接 Pear Wood
viridium:red_cinchona_log 4 / 4 / 侧向连接 Red Cinchona Wood
viridium:redbud_log 4 / 4 / 侧向连接 Redbud Wood
viridium:wild_apple_log 4 / 4 / 侧向连接 Wild Apple Wood
viridium:witch_hazel_log 4 / 4 / 侧向连接 Witch Hazel Wood
viridium:wisteria_log 4 / 4 / 侧向连接 Wisteria Wood

相关条目