Block Trophy

基本信息

属性 值
注册名 amazingtrophies:trophy
TE 类 glowredman.amazingtrophies.trophy.TileEntityTrophy
ItemBlock glowredman.amazingtrophies.trophy.ItemBlockTrophy
Material glowredman.amazingtrophies.trophy.MaterialTrophy(MapColor.woodColor,冒险模式豁免,不可移动)
硬度 1.0f
爆炸抗性 默认(继承自 Material 的 null,实际由 isOpaque=false 而失效)
透光 isOpaqueCube=false, renderAsNormalBlock=false, getRenderType=-1(交给 TESR)
默认碰撞箱 上下两层——上层 (0.125, 0.0625, 0.125)–(0.875, 0.3125, 0.875)(基座),下层 (0.0625, 0, 0.0625)–(0.9375, 0.0625, 0.9375)(底板)
物品渲染 完整 (0,0,0)–(1,1,1)
贴图 amazingtrophies:trophy_pedestal
unlocalizedName amazingtrophies.trophy

该方块是所有奖杯的同一份方块——TileEntityTrophy 的 NBT (trophyID) 决定具体奖杯模型。

功能

  1. 玩家放置 → ItemBlockTrophy.placeBlockAt 把 NBT 拷贝到 TE,并 markBlockForUpdate。
  2. 玩家长按挖掘 → BlockTrophy.harvestBlock 清方块,removedByPlayer 在玩家持精准采集时不复制 BlockTrophy 默认行为,避免碰撞箱爆炸。
  3. getDrops 返回 TE 持有的整份 ItemStack(含 NBT,使玩家拿回的是"绑定该奖杯的物品")。
  4. getPickBlock 同样返回 TE 持有的整份 ItemStack——方便创造模式选择。
  5. getSubBlocks(创造栏):枚举 AmazingTrophiesAPI.getTrophyIDs(),每个 ID 生成一份 NBT=已设置的 ItemStack。

摆放要求

  • 无需特殊邻接/朝向。
  • placeBlockAt 把 Math.round(-player.rotationYaw / 22.5f) & 15 写入 metadata ——0..15 表示客户端绕 Y 旋转 0°…337.5°。
  • 必须是被 ItemBlockTrophy 放置时才会有 NBT → TE 数据流的完整迁移;通过其它方式放置的 ItemTrophy 则 NBT 为空,TE 也只有默认状态。

交互

触发 行为
破坏 TE 持有的 ItemStack 作为掉落物(包含 trophyID/uuid/name/time)
创造栏 列出所有注册到 AmazingTrophiesAPI 的奖杯 ID

所属多方块结构

无(独立方块)。

相关条目

源码

  • src/main/java/glowredman/amazingtrophies/trophy/BlockTrophy.java
  • src/main/java/glowredman/amazingtrophies/trophy/MaterialTrophy.java
  • src/main/java/glowredman/amazingtrophies/trophy/ItemBlockTrophy.java