InstancedBlock / TileRenderRegistry

基本信息

属性 值
路径 mrtjp.core.block.tileblock.scala
源码 src/main/scala/mrtjp/core/block/tileblock.scala(657 行,本 mod 最大方块文件)

「按 metadata 实例化不同 TileEntity + 自定义 ISBRH 渲染」的一套方块框架,是 MrTJP 方块体系的核心。

TileRenderRegistry(ISimpleBlockRenderingHandler)

方法 说明
setRenderer(b, meta, r) 为 (方块, meta) 绑定渲染器
getRenderer(b, meta) 取回渲染器
registerIcons(b, reg) 汇总各渲染器的图标注册
getIcon(b, side, meta) 按 meta 选图标

渲染 ID 在 MrTJPCoreProxy 的 init() 中由 RenderingRegistry.getNextAvailableRenderId 分配。

TInstancedBlockRender

需实现:renderWorldBlock(...)、renderInvBlock(...)、registerIcons(...)、getIcon(side, meta)。 可选覆写:renderBreaking(...)、randomDisplayTick(...)。 object NullRenderer extends TInstancedBlockRender 提供空实现。

InstancedBlock

成员 说明
addTile\[A\]\(t: Class[A], meta: Int) 为指定 meta 绑定 TileEntity 类
addSingleTile\[A\]\(t) 绑定到 meta 0
postBlockSetup(w, x, y, z, side, meta, player, stack, hit: Vector3) 放置后回调(由 ItemBlockCore 触发)

TTileOrient

方块朝向编码:side = orientation >> 2,rotation = orientation & 0x3 (方向占高 4 位,旋转占低 2 位,即 6 向 × 4 旋转)。

相关条目