Renderer Trophy
基本信息
| 属性 | 值 |
|---|---|
| 类名 | glowredman.amazingtrophies.trophy.RendererTrophy |
| 接口 | TileEntitySpecialRenderer + IItemRenderer(同一实例) |
| 注册 | ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTrophy.class, trophyRenderer) + MinecraftForgeClient.registerItemRenderer(...) |
功能
1. 渲染方块 (renderTileEntityAt)
- 取 TE 的
TrophyProperties.props.modelHandler;若 props / modelHandler 缺失则回退new PedestalTrophyModelHandler()。 - 计算中心点
centerX/Y/Z = x/y/z + 0.5。 - 标签距离阈值:相机相对奖杯距离平方 ≤
32*32才将name/time透传给 model handler;超过则name = null, time = 0,触发 Pedestal handler 内部的if (name==null || name.isEmpty() || time == 0) return跳过文字渲染。 - 调用
modelHandler.render(centerX, centerY, centerZ, blockMetadata, name, time, partialTickTime)。
2. 渲染 ItemStack(手持 / 装备 / 库存)
renderItem(type, item, data):
- 用 NBT 里的
trophyID查AmazingTrophiesAPI.getTrophyProperties(id)—— 拿到 props 与 modelHandler。 - modelHandler == null → 跳过(防止破坏默认物品槽渲染)。
- 装备(
EQUIPPED/EQUIPPED_FIRST_PERSON)渲染坐标为(0.5, 0.5, 0.5);其它类型(0.0, 0.0, 0.0)。 - 两侧都
rotation = 12(指向玩家正面)。
数值
| 项目 | 值 |
|---|---|
| 标签距离阈值平方 | 32.0 * 32.0 = 1024.0 |
相关条目
源码
src/main/java/glowredman/amazingtrophies/trophy/RendererTrophy.java