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 旋转)。
相关条目
- BlockCore — 基类与
placeBlockAt回调 - TPlantBlock — 继承
InstancedBlock