方块模型 API
基本信息
| 属性 | 值 |
|---|---|
| 接口 | com.gtnewhorizon.gtnhlib.api.IBlockModelProvider |
| 同包接口 | com.gtnewhorizon.gtnhlib.api.BlockModelInfo |
| 源码 | src/main/java/com/gtnewhorizon/gtnhlib/api/IBlockModelProvider.java |
| 作用面 | 客户端(ModelISBRH 渲染管线) |
| 实现方 | 由下游 mod 自行实现,GTNHLib 不注册任何方块 |
功能
IBlockModelProvider 让方块向 GTNHLib 的模型渲染器提供自定义烘焙模型,走 ModelISBRH 而非标准 JSON 模型路径。源码注释明确写了用途(IBlockModelProvider.java:8-10):
An interface for Blocks to allow providing custom models for ModelISBRH. Not necessary for standard JSON models.
接口只有一个方法:
| 方法 | 返回 | 说明 |
|---|---|---|
getModel(BakedModelQuadContext context) |
BakedModel |
传入当前面片(quad)上下文,返回用于该面的烘焙模型 |
BakedModelQuadContext 与 BakedModel 均在 com.gtnewhorizon.gtnhlib.client.model 包下,不在对外 api 包内。
BlockModelInfo(api/BlockModelInfo.java:8)是同包下的配套查询接口,供模型系统反查方块的模型元信息。
数值
| 数值名 | 值 |
|---|---|
| 接口方法数 | 1(getModel) |
| 需要实现的抽象方法 | 1 |
| 默认方法 | 0 |
交互
方块类实现 IBlockModelProvider 后,ModelISBRH 在渲染该方块时回调 getModel 取得 BakedModel。普通 JSON 模型方块不需要实现本接口 —— 未实现时沿用原版 ISBRH 路径。
相关条目
- 离屏 Tessellator 捕获 - 在渲染线程外收集渲染四边形,供批量/异步渲染
- 动态方块音效 - 另一个由方块自身实现的标记接口