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 // 是否启用此文件
}