优质食品J

优质食品J

面向CDPR的Quality Food分支,包含对Create Delight Project Rebirth(整合包)的兼容性和质量传播修复。

食物

优质食物 — CDPR 版

一个专注于 CDPR 的 Quality Food 分支,修复了与 Create Delight Project Rebirth 的兼容性和品质传播问题。

概述

本模组通过数据组件为食物及部分与食物相关的材料(如农作物)增加品质系统。

品质可以:

  • 增加营养值和饱和度
  • 增强进食获得的正面效果,并削弱(或完全移除)负面效果
  • 影响制作(适用品质的)物品的结果(minecraft:generic.luck 会提高掷骰次数)

品质类型在每个数据包中定义(/<命名空间>/quality_types/),语法示例:

{
  "amplifier_modifier": 1,
  "chance": 0.1,
  "cooking_bonus": 0.00390625,
  "crafting_bonus": 0.15,
  "duration_multiplier": 1.5,
  "effects": [
    {
      "applicable_to": "#c:foods/fruit",
      "effects": [
        {
          "effect": {
            "effect": {
              "amplifier": 2,
              "duration": 100,
              "id": "minecraft:absorption",
              "neoforge:cures": [
                "protected_by_totem",
                "milk"
              ],
              "show_icon": true
            },
            "probability": 0.6
          },
          "chance": 0.5
        },
        {
          "effect": {
            "effect": {
              "duration": 40,
              "id": "minecraft:regeneration",
              "neoforge:cures": [
                "protected_by_totem",
                "milk"
              ],
              "show_icon": true
            },
            "probability": 0.2
          },
          "chance": 1
        }
      ]
    }
  ],
  "icon": "quality_food:quality_icon/iron",
  "level": 1,
  "nutrition_multiplier": 1.5,
  "probability_multiplier": 1.25,
  "saturation_multiplier": 1.25
}
  • level:效果等级——更高等级的品质会首先进行判定
  • chance:该品质被应用的概率
    • 数值介于 0 和 1 之间(1 代表 100%)
  • nutrition_multiplier:营养值的乘数
  • saturation_multiplier:饱和度的乘数
  • icon:该品质显示的图标(纹理需要放在 textures/gui/sprites 目录下)
  • (可选)duration_multiplier:现有正面效果的持续时间乘数(若为负面效果则进行除法)
    • 如果持续时间在修改过程中降至 0,该效果将被移除
  • (可选)probability_multiplier:正面效果概率的乘数(若为负面效果则进行除法)
    • 如果概率在修改过程中降至 0,该效果将被移除
  • (可选)amplifier_multiplier:正面效果强度(amplifier)的增加量(若为负面效果则减少)
    • 如果强度在修改过程中降至 0 以下,该效果将被移除
  • (可选)crafting_bonus:品质判定的附加加成(实际加成为 crafting_bonus / 可用品质的合成材料数量)
    • 示例:1 个钻石品质(加成 0.7)+ 1 个铁品质(加成 0.15)的材料 = (0.7 / 2) + (0.15 / 2) = 总加成 0.425
    • 数值介于 0 和 1 之间(1 代表 100%)
  • (可选)cooking_bonus:该类品质的每个烹饪物品将为烹饪方块实体提供存储加成
    • 数值介于 0 和 1 之间(1 代表 100%)
  • (可选)effects:效果配置列表
    • (可选)applicable_to:这些效果将应用于的物品(或物品标签)——如果为空则应用于所有物品
    • effects:将被应用的效果列表
    • effect:效果本身(参见单个效果的定义 此处)
    • (可选)chance:当品质被应用时该效果应用于物品的概率
      • 数值介于 0 和 1 之间(1 代表 100%)
      • 如果未提供,则默认值为 1

实际附加到物品上的品质数据组件如下所示:

{
  "components": {
    "quality_food:quality": {
      "level": 2,
      "type": "quality_food:gold"
    }
  },
  "count": 1,
  "id": "minecraft:apple"
}

命令

  • /quality_food give:给予你一件带有指定品质的物品(仅列出可适用于品质的物品)
  • /quality_food apply:将品质应用于一件物品
  • /quality_food remove:从物品上移除品质

配置

有一个耕地配置,允许你根据作物种植的农田方块来定义加成(也可以是负值,例如 -0.5)

  • 示例:farmland_config = ["3;#minecraft:crops;farmersdelight:rich_soil_farmland;1.25"]
    • 3 是索引(配置从最低的索引开始测试——最先匹配的将被应用)(必须为正数)
    • #minecraft:crops 是作物方块(可以是标签或单个方块)
    • farmersdelight:rich_soil_farmland 是农田方块(可以是标签或单个方块)
    • 1.25 是要应用的乘数(必须为正数——低于 1 的值将减少概率)

所有具有食物属性的物品默认都适用于品质。

  • 对于其他物品(如材料),使用物品标签 quality_food:material_whitelist
  • 如果某些物品不应应用品质,使用物品标签 quality_food:blacklist

只有位于方块标签 quality_food:quality_blocks 中的方块才支持(即保留)品质。

  • 如果一个方块适用于品质,该方块对应的物品也适用

对于合成(工作台),有三个配置:

  • retain_quality_recipes:合成结果将保留材料的品质,示例:
    • 如果所有物品都是 钻石 品质,结果为 钻石
    • 如果三个物品是 金 品质,两个是 钻石 品质,结果为 金
    • 如果两个物品是 铁 品质,其余无品质,结果也无品质
  • no_quality_recipes:条目不会进行品质判定(在物品可以来回合成的情况下很有用)
  • handle_compacting:如果启用,则(解)压缩结果应自动保留品质,而无需指定相关配方

烹饪具有品质的物品会将品质加成存储在熔炉/烹饪锅/……中。

  • 加成由品质类型中的 cooking_bonus 定义
  • 一旦存储了足够的加成,粒子效果将开始显示
    • 更高的加成会显示更多粒子
    • 这可以通过客户端配置禁用
  • 取出结果后,存储的加成将被消耗,并为品质结果提供更高的概率
  • 烹饪物品的基础品质是烹饪时使用的最低品质材料
    • 30 个金品质材料 = 30 个金品质结果(+ 升级为钻石品质的概率)
    • 25 个金 + 5 个铁 = 30 个铁品质结果(+ 升级为金或钻石品质的概率)

兼容性

这主要涉及方块交互/通过合成应用品质。

  • 如果模组添加了新的合成方块,品质可能无法正确应用
  • 物品通常没有问题

CDPR 兼容性新增内容

CDPR 分支额外支持以下内容的品质传播:

  • FTB Ultimine 右键收获
  • Fruits Delight 的果树树叶、浆果灌木、树苗、生成的树木和坠落的榴莲
  • Create 和 L2Harvester 的自动化收获
  • Ratatouille 的烤箱、挤压盆和脱粒机
  • Refurbished Furniture 的煎锅和炉灶
  • Ecliptic Seasons 的收获概率调整

完整的 2.3.6-cdpr.1 发布说明请参见 CHANGELOG.md。

杂项

示例

品质图标的功劳归于 https://twitter.com/concernedape

CDPR 分支发布

发布版本由 .github/workflows/release.yml 从 1.21.1 分支构建。

  • 推送如 v2.3.6-cdpr.1 这样的标签,或手动运行 Release 工作流。
  • GitHub Releases 无需额外仓库配置即可工作。
  • CurseForge 发布版本发布到项目 1623542。
  • 在运行发布前,请设置仓库密钥 CURSEFORGE_TOKEN。