
营养
Nutritional添加了一个饮食系统,其中每种食物都计入五个类别:乳制品、水果、谷物、蛋白质和蔬菜。保持这些类别的平衡以提升饮食等级,并获得生命值、速度和护甲加成。饮食不当则要付出代价。由数据包驱动。
查看大图营养系统
营养系统为 Minecraft 添加了饮食系统。你吃的食物会计入五个食物组,保持它们的平衡会让你更强大,而长期只吃单一食物则会对你产生不利影响。这是对 WesCook 的 Nutrition 的 NeoForge 1.21.1 重制版。
模组中的一切内容都旨在让整合包作者无需编写代码即可重新调整。请参阅下方的整合包作者与开发者部分。
工作原理
每种食物都属于五个食物组中的一个或多个:乳制品、水果、谷物、蛋白质和蔬菜。进食会提升该食物所属食物组的水平,而随着你感到饥饿,每个食物组的水平会随时间缓慢下降。目标是让所有五个食物组都保持相当充足的水平,而不是只盯着一种食物吃。
你的整体饮食平衡会被评定为饮食等级,从最差到最好:
starving(饥饿), malnourished(营养不良), surviving(维持生存), nourished(营养良好), gourmand(美食家)
糟糕的饮食会让你处于低等级并受到负面效果。多样化且营养充足的饮食会将你推向高等级,为你提供最大生命值、移动速度和护甲等方面的增益。吃得好还会让未来的餐食更有营养,并减缓食物组水平的下降速度,因此良好的习惯会相互促进。
除了等级之外:
- 状态效果。跨越某些营养素水平可以为你带来状态效果,吃得好会获得增益效果,吃得太差则会受到负面效果。
- 长期奖励。连续几天保持良好饮食(以游戏内天数计算)可以获得永久性奖励。它会一直持续到你死亡或饮食水平下滑太多。
- 更严酷的维度。默认情况下,下界和末地对你更不友好:你的食物组水平消耗得更快,食物在那里提供的营养也更少。
查看你的饮食
- 按 N 键可打开一个界面,其中显示每个食物组的进度条和当前饮食等级。
- 屏幕右上角的一个小组件会显示你当前的等级。你可以通过饮食界面上的一个按钮来切换它的显示。
- 将鼠标悬停在食物上会显示它属于哪个食物组以及增加多少水平。
- 如果你使用 JEI,查询食物时会显示一个"提供营养素"条目,其中包含相同的信息。
进度
该模组附带了一个小型进度树,涉及食用每个食物组的食物、多样化饮食以及达到更高的饮食等级和获得奖励。
配置
大部分行为可以通过两个配置文件进行修改:
nutritional-client.toml用于个人显示选项,如物品提示、HUD 组件和饮食界面按钮。nutritional-server.toml用于世界规则,如食物组水平消耗速度、死亡惩罚和整体难度倍率。
整合包作者可以通过数据包更改比这多得多的内容,具体见下文。
整合包作者与开发者
营养系统是数据驱动的。食物组、其中的物品、饮食等级、状态效果规则、奖励以及每个维度的难度都在数据包中定义,因此无需编写 Java 代码即可添加、重新平衡或移除这些内容。
数据模型
六个一等数据包注册表:
| 注册表 | 路径 |
|---|---|
nutritional:nutrient |
data/<pack>/nutritional/nutrient/<id>.json |
nutritional:effect |
data/<pack>/nutritional/effect/<id>.json |
nutritional:food_hint |
data/<pack>/nutritional/food_hint/<id>.json |
nutritional:diet_tier |
data/<pack>/nutritional/diet_tier/<id>.json |
nutritional:sustained_reward |
data/<pack>/nutritional/sustained_reward/<id>.json |
nutritional:dimension_modifier |
data/<pack>/nutritional/dimension_modifier/<dim_namespace>/<dim_path>.json |
效果支持四种检测模式:any(任意)、average(平均)、all(全部)和 cumulative(累积)。nourished(营养良好)、malnourished(营养不良)和 toughness(坚韧)生物效果是默认自带的。
物品与缩放
一个物品属于哪个食物组由标签(#nutritional:nutrient/<id>)决定。单独物品的数值倍率覆盖来自 NeoForge DataMap(minecraft:item 注册表上的 nutritional:nutrient_scales)。大多数食物只需要一个标签条目即可。
自定义属性
添加了两个属性,可以通过装备、生物效果和其他模组进行修改:
nutritional:nutrient_absorption,食物提供的营养量。越高意味着餐食越有营养。nutritional:nutrient_decay_rate,食物组水平下降的速度。越低意味着消耗得越慢。
命令
/nutritional get|set|add|subtract|reset <player> <nutrient> [<value>]/nutritional reload重新加载数据包/nutritional-food打印当前手持物品的营养素产出
进度触发器
两个自定义标准触发器,nutritional:tier_reached(达到等级)和 nutritional:reward_earned(获得奖励),可供数据包用于构建自己的进度树。
致谢
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。