QualityAPI

QualityAPI

NeoForge共享物品品质:数据驱动的等级,从粗糙到大师级,会改变耐久度、速度、属性和附魔,在合成中传承,碎裂而非消失。可独立使用或作为其他模组的API。

品质API 一个所有模组都能共享的物品品质系统。

品质API赋予物品品质等级:粗糙、普通、优良、上等、精良、大师之作。一把大师之作的镐子更耐用、挖掘更快,并且如同附带了额外的不毁附魔。一把粗糙的剑伤害更低,磨损也更快。每一个等级、每一个数值和每一种效果都定义在数据包中,任何模组都能通过一个小型API来应用、读取或响应品质,因此锻造模组、战利品模组和技能模组能说同一种语言,而不是各自发明一套。

它本身也能独立运作。启用工艺品质或给你的包添加战利品修饰符,品质便会在未安装其他模组的情况下生效。

品质的作用 属性:攻击伤害、护甲或任何属性,按等级和按物品或标签配置。 耐久度:一个实时应用的倍率,因此也会显示在耐久条和提示文本中。 挖掘速度:按等级配置。 附魔等级加成:一个等级可充当额外的不毁、效率、保护等附魔。 工具提示:物品名称会显示等级颜色,加上等级描述行和可选的“由...制造”描述行。 损坏而非摧毁。 达到零耐久度的品质物品不会消失。它们会变为损坏状态:无法使用,直到在铁砧、砂轮处修复或使用经验修补附魔。损坏时有概率使物品降低一个等级,因此将你的大师之作之剑用到极限是一次真正的赌博。是否降低等级、最高等级是否受保护,以及是否启用此功能,都是可配置的。

品质在合成时传递。 使用带有品质的材料合成,结果将继承材料中最高、最低或平均的品质,由你选择。一个大师之作的工具头会变成一把大师之作的镐子。合成网格中的预览会在你确认前显示结果,且Shift点击可保留。可选的降级概率增加了风险。

对于整合包作者 一切都是数据驱动的:

  • 等级定义在 data/<namespace>/quality_api/quality/ 中。设置等级、颜色、抽取权重、等级可应用的物品以及其效果。
  • 单个物品和基于标签的覆盖使用NeoForge数据映射,因此 #minecraft:swords 可以获得攻击伤害,而 #minecraft:chest_armor 获得护甲,且某一把特定的剑也可以与其他剑不同。
  • 战利品:quality_api:roll_quality 全局战利品修饰符会在宝箱战利品上抽取品质,具有几率字段和标准的战利品条件以将其限定到特定战利品表。
  • 配方:quality_api:min_quality 材料要求“至少达到此品质等级”。精确的等级可使用NeoForge内置的组件材料。
  • 黑名单:将物品放入 #quality_api:blacklist 标签中,它们便永远不会获得品质。
  • /quality set <tier> 和 /quality remove 用于测试。
  • 六个等级随附合理的默认值。你可以重命名、重新平衡,或完全替换它们。

对于开发者 一个静态的 Qualities 类即可完成工作:从物品堆栈获取品质或其等级,检查品质是否可应用、应用或移除品质,抽取一个加权品质等级,或是将分数/等级转换为品质等级。QualityCraftEvent 事件允许你的模组决定任何合成结果的品质,并传递合成材料和玩家信息。API在世界加载前无副作用,因此通常的“if loaded”桥接模式也能生效。

兼容性 没有硬编码到物品上。效果是根据品质ID实时计算的,因此数据包重新平衡会影响世界中已存在的物品,品质也能在锻造升级和铁砧修复后依然保留。属性加成是与原版和其他模组的修饰符并列添加的,绝不覆盖它们。

需要 Minecraft 1.21.1 的 NeoForge。