Renderer Trophy

基本信息

属性 值
类名 glowredman.amazingtrophies.trophy.RendererTrophy
接口 TileEntitySpecialRenderer + IItemRenderer(同一实例)
注册 ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTrophy.class, trophyRenderer) + MinecraftForgeClient.registerItemRenderer(...)

功能

1. 渲染方块 (renderTileEntityAt)

  1. 取 TE 的 TrophyProperties.props.modelHandler;若 props / modelHandler 缺失则回退 new PedestalTrophyModelHandler()。
  2. 计算中心点 centerX/Y/Z = x/y/z + 0.5。
  3. 标签距离阈值:相机相对奖杯距离平方 ≤ 32*32 才将 name/time 透传给 model handler;超过则 name = null, time = 0,触发 Pedestal handler 内部的 if (name==null || name.isEmpty() || time == 0) return 跳过文字渲染。
  4. 调用 modelHandler.render(centerX, centerY, centerZ, blockMetadata, name, time, partialTickTime)。

2. 渲染 ItemStack(手持 / 装备 / 库存)

renderItem(type, item, data):

  1. 用 NBT 里的 trophyID 查 AmazingTrophiesAPI.getTrophyProperties(id) —— 拿到 props 与 modelHandler。
  2. modelHandler == null → 跳过(防止破坏默认物品槽渲染)。
  3. 装备(EQUIPPED/EQUIPPED_FIRST_PERSON)渲染坐标为 (0.5, 0.5, 0.5);其它类型 (0.0, 0.0, 0.0)。
  4. 两侧都 rotation = 12(指向玩家正面)。

数值

项目 值
标签距离阈值平方 32.0 * 32.0 = 1024.0

相关条目

源码

src/main/java/glowredman/amazingtrophies/trophy/RendererTrophy.java