Amazing Trophies

[!INFO] Git Commit: 7dc34cd | Updated: 2026-09-17

受 FTB Trophies 启发,是 GTNewHorizons 1.7.10 的开源、FOSS、远为强大的继任者。

简介

Amazing Trophies (amazingtrophies) 是 Minecraft 1.7.10 Forge mod,提供:

  • 自定义成就 —— 通过 JSON 配置或代码接入 vanilla Achievement/AchievementPage/StatList。
  • 自定义奖杯 —— 同一个方块 (trophy) + TileEntity 通过 NBT 里的 trophyID 区分不同奖杯,NBT 还附带玩家 UUID、名称、颁发时间戳。
  • 27 个 Condition Handler —— 涵盖成就、攻击(生物/玩家)、方块(破坏/放置/右键,已实现但未注册交互)、死亡、实体交互、爆炸、摔落、治疗、背包(增/减/总数)、物品(合成/丢/拾/冶炼)、物品使用(开始/停止/完成)、进入维度、击杀、打开容器、拾取经验、被雷击、扔末影珍珠。
  • 5 个 TrophyModelHandler —— 基座(pedestal,父类)/ 基础 OBJ(basic)/ 实体(entity,自动旋转 + boss 状态隔离)/ 物品(item,含附魔光效 + 自动 scale/yOffset 校正)/ 复杂方块模型(complex,字符拼图 + VBO 缓存)。
  • 资源包架构 —— 整个 <config>/amazingtrophies/ 目录被挂载为 amazingtrophies: 资源域(lang、models、textures),用户可丢 .obj/.png 直接覆盖。
  • /trophy 命令 —— OP 工具,支持 list / award <id> [player] [withDesc]。

依赖:required-after:gtnhlib@[0.11.44,)、after:angelica@[1.0.0-beta4,)。

概念总览

概念 摘要 关联条目
API 总入口 静态注册表 + 颁发/构造 ItemStack 工具 Amazing Trophies API
成就属性 AchievementProperties 描述 x/y/parent/icon/page Achievement Properties
奖杯属性 TrophyProperties 只含 id + 客户端 modelHandler Trophy Properties
配置加载 ConfigHandler.parseOrCreate + 工具方法集 Config Handler
自定义资源 <config>/amazingtrophies/ 作为资源包 Asset Handler
服务端命令 OP 工具列出与颁发奖杯 /trophy Command

方块列表

  • Block Trophy — 同一个方块承载所有奖杯;NBT trophyID 决定渲染
  • TileEntity Trophy — 持有 props/time/uuid/name 并同步到客户端
  • Material Trophy — 自定义方块材质(woodColor + 冒险模式豁免)
  • Renderer Trophy — 同时担任 TESR 与 IItemRenderer,距离阈值控制文字标签

物品列表

  • ItemBlock Trophy — 放置时复制 NBT 到 TE,提供玩家名/时间标签 tooltip

Condition Handler 列表

Trophy Model Handler 列表

  • Pedestal — 基座+文字标签基类,必渲染
  • Basic — 任意 OBJ 模型 + 贴图
  • Entity — 调用 RenderManager.doRender,自动处理 boss 状态
  • Item — 物品渲染(含附魔光效)+ 自动 scale/yOffset
  • Complex — 字符拼图 3D 块结构
  • Render Helper / BaseModelStructure — complex 模型内部管线 + VBO 切换

命名差异

  • 源码目录 Amazing-Trophies(驼峰)→ wiki 分类 amazing-trophies(kebab-case 全小写)