ItemBlock Trophy
基本信息
| 属性 | 值 |
|---|---|
| 类名 | glowredman.amazingtrophies.trophy.ItemBlockTrophy |
| 父类 | net.minecraft.item.ItemBlock |
| 注册名 | amazingtrophies:trophy(与 Block 一致) |
功能
1. 工具提示
addInformation(stack, player, tooltip, advanced):
- 没有 NBT → 无 tooltip。
- 有 UUID 但格式非法 → 显示
amazingtrophies.uuid.invalid。 - 解析 UUID → 如果
UsernameCache.getLastKnownUsername有更新,刷新name写入 NBT。 - 玩家名空时显示
<block>.unknownUsername.name.desc/.time.desc。 - 正常情况显示
<block>.name.desc(玩家名) +<block>.time.desc(日期本地化)。
2. 显示名
getUnlocalName(stack):
- 无 NBT → 标准
tile.<modid>.trophy.name。 - NBT 含
trophyID→ 末尾追加.trophyID后缀以支持多语言变种(如tile.amazingtrophies.trophy.iron_cup.name)。
3. 放置
placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata):
- 旋转 =
Math.round(-player.rotationYaw / 22.5f) & 15(0–15)。 - 调用
super.placeBlockAt完成方块放置。 - 如果放置成功 + 有 NBT + 实际生成
TileEntityTrophy,把 NBT 内容复制到 TE(tileTrophy.copyFromNBT(stack.getTagCompound()))。 - 在服务器端触发
world.markBlockForUpdate强制客户端重发描述包。
摆放要求
- 与对应 Block 一致;通常需要
TileEntityTrophy已经放置成功才会写 NBT。
数值
| 项目 | 值 |
|---|---|
| 最大堆叠 | 64(原版 ItemBlock 默认) |
| 注册名 | amazingtrophies:trophy |
| 方块类 | BlockTrophy |
| TE 类 | TileEntityTrophy |
耐久与消耗
非工具,没有耐久。
相关条目
源码
src/main/java/glowredman/amazingtrophies/trophy/ItemBlockTrophy.java