Nutrition 为 Minecraft 游戏添加了营养部分的游戏内容,通过不同食物来添加不同的营养值,从而获得正面或者负面的效果,为我们的游戏中食物寻找更多的存在感。

强大的自定义功能,也能为整合作者提供更多灵感。比如玩家需要吃掉指定腐肉来维持一个自定义的“脑残值“这样有趣的设定。

虽然 Nutrition 模组自带了对 53 个模组的兼容,但是保不齐会有什么纰漏,没关系,你可以通过自定义配置文件来添加对食物的支持。亦或是更近一步,添加自己独创的营养值。

目前只对继承自 ItemFood,BlockCake,ItemBucketMilk 食物能够添加支持。

1. 添加食物支持

在游戏的 config/nutrition/nutrients 目录下新建任意一个 json 文件,即可添加自定义营养值。或者修改已经存在的营养值,添加食物的兼容。

我们这里暂且举个例子,创建一个名为 baka.json 的文件,内容解释如下: 

{
    "name": "baka",               // 营养 ID,必须为英文,本地化通过语言文件添加
    "icon": "minecraft:carrot",   // 营养条 GUI 图标
    "color": "72dd5a",            // 营养条 GUI 颜色
    "decay": 2.5,                 // 覆盖全局的失去比例(即饿的时候衰减的营养值)
    "enabled": true,              // 设置为 true 才会在游戏中进行加载
    "food": {
        "oredict": [              // 想要添加的食物的矿物词典
        "listAllveggie",
        "listAllgreenveggie"
        ],
        "items": [                // 想要添加的食物的物品 ID
            "minecraft:carrot",
            "minecraft:apple:1",
            "minecraft:cake"
        ]
    }
}

 

然后,重启游戏,你就看到了新加的营养条出现在了对应 GUI 里面,对应食物也添加了相应营养值,但是唯独名称是没有本地化的。

使用  Resource Loader 模组可以添加本地化,加了这个模组后,在游戏主目录下创建 resources\nutrition\lang\zh_cn.lang 文件,添加如下内容: 

nutrient.nutrition:baka=笨蛋

即添加了中文本地化。以此类推,添加其他语言支持即可。


2. 自定义效果

配置文件还可以设定指定营养值前提下,对应出现的效果。

在 config/nutrition/effects 目录下新建任意一个 json 文件,即可添加自定义效果。或者修改已经存在的效果。

这里我们创建一个名为 baka.json 的文件,写入如下内容:  

{
    "name": "baka",                  // 效果 ID
    "potion": "minecraft:strength",  // 药水效果 ID,示例为原版的抗火
    "amplifier": 0,                  // 药水等级
    "minimum": 75,                   // 获取此效果所需最小营养值
    "maximum": 100,                  // 获取此效果所需最大营养值
    "detect": "any",                 // 接受的参数:
                                     //   'any': 任意一个达到均可触发                                      
                                     //   'average': 平均值达到可触发                                      
                                     //   'all': 所有全达到才可触发                                      
                                     //   'cumulative': 有一个达到,对应效果等级累进               
    "nutrients": [                   // 检测的效果 ID 白名单
        "fruit",                     // 如果这一块省略,则所有营养均会添加         
        "vegetable"
    ],
    "cumulative_modifier": 1,        // cumulative 的累进数值
    "enabled": false                 // 是否启用此文件
}