Item Trophy Model
基本信息
| 属性 | 值 |
|---|---|
| model ID | item |
| 父类 | PedestalTrophyModelHandler |
| 注册处 | ClientHandler.registerTrophyModelHandlers() |
配置字段
| 字段 | 类型 | 默认 | 含义 |
|---|---|---|---|
registryName |
字符串 | 必填 | 物品注册名 modid:itemname |
meta |
int | 0 |
damage 值(范围 [0, 32767]) |
nbt |
SNBT 字符串 | null |
NBT |
xOffset |
double | 0.0 |
X 轴偏移 |
yOffset |
double | 自动(见下) | Y 轴偏移——若未配置根据 item 类型自动计算 |
zOffset |
double | 0.0 |
Z 轴偏移 |
yawOffset |
float | 0.0 |
旋转偏移 |
scale |
float | 自动(见下) | 缩放——未配置时按 ItemBlock/物品自动设置 |
自动 scale/yOffset 计算
calculateScaleAndYOffset:
ItemBlock→scale = 1.375f(否则0.6875f)。yOffset = scale * 0.125 - 0.1875。
选择这个数值是为了抵消
RenderItem.doRender()的-0.5(方块)/-0.25(物品)默认 Y 平移,从而让物品正中落在底座顶面。
渲染细节
super.render(...)底座 + 文字。- 用内置
static Render extends RenderItem异步渲染EntityItem——支持附魔光效 (renderDroppedItem重写:getHasEffect(pass)→RES_ITEM_GLINT+ 双层ItemRenderer.renderItemIn2D)。 - 偏移 =
(x + xOffset, y + yOffset, z + zOffset);旋转 =22.5 * rotation + yawOffset。 - 缩放后再缩(
GL11.glScalef(scale, scale, scale))。
getRenderBoundingBox
按 Math.abs(scale) 推算保守半径,叠加 xyz 偏移。
JSON 示例
展示任意方块作为奖杯:
{
"id": "golden_apple",
"condition": {...},
"model": {
"type": "item",
"registryName": "minecraft:golden_apple",
"meta": 1,
"scale": 1.0,
"yawOffset": 45.0
}
}
相关条目
源码
src/main/java/glowredman/amazingtrophies/model/ItemTrophyModelHandler.java