
农夫之乐:膳食大师
按食谱掌握、食谱发现和农夫之乐的烹饪日志。更快地烹饪,摆盘星级菜肴,不添加新物品。
Meal Mastery 是 农夫乐事 的一个扩展模组,它将烹饪转变为一种成长系统。你制作的每道菜都有其独立的精通轨道,烹饪的食物会被记录在烹饪日志中,而对某个食谱的熟练掌握会切实地改变烹饪和食用时的效果。
它不限于农夫乐事自身的食物。 食谱会被通用地检测出来,因此所有农夫乐事的附属模组——下界乐事、终界乐事、扩展乐事、更多乐事以及之后发布的任何附属模组——都会被自动识别。无需兼容包、无需硬编码物品列表、无需逐模组编写代码。原版食谱同样计入。
| 项目 | 说明 |
|---|---|
| 前置要求 | 农夫乐事、Fabric API(仅限 Fabric 版本) |
| 兼容性 | 任何注册了常规食谱的食物附属模组,以及原版 |
| Minecraft | 1.20.1 (Fabric, Forge) · 1.21.1 (Fabric, NeoForge) |
| 运行端 | 客户端和服务器——两者都必须安装 |
| 新增内容 | 无 |
| 许可证 | MIT |
精通度
每个食谱都有独立的精通轨道,从 陌生 到 掌握,通过制作该特定菜肴来提升。默认情况下,最高等级需要制作同一道菜 300 次(阈值:[2, 20, 60, 150, 300])。
精通度具有实际的游戏机制效果,并且 默认开启。以下每个数值都是默认值,且均可配置:
- 烹饪速度 —— 烹饪锅、平底锅和炉灶,以及原版烟熏炉,在满精通度时运行速度最高可提升至两倍。
- 星级评定 —— 烹饪出的食物会带有 ★ 至 ★★★★★ 的标记,显示在其名称下方。
- 额外效果 —— 在满精通度时,食用菜肴有 25% 的几率获得 20 秒的生命恢复、迅捷或急迫效果。
- 饱和度 —— 每颗星增加 +0.2 饱和度。饥饿值永远不会被改动。
- 完美菜肴 —— 在满精通度时,有 8% 的几率烹饪出完美的菜肴:额外增加一颗星,并获得更强的效果。
- 额外份数 —— 有 12% 的几率让相同的食材产出更多份食物。
- 刀具耐久度 —— 在砧板上进行烹饪准备时,有 25% 的几率返还 1 点耐久度。
- 招牌菜 —— 鼠标中键点击一个已掌握的食谱,可将其设为你的招牌菜;此后你烹饪的所有该菜肴都会在评级上多加一颗星。
所有几率都从 陌生 等级的零开始线性增长,因此首次尝试不会触发任何效果。菜肴的真实几率会显示在其物品提示框中(按住修饰键查看),因此调整过的整合包会显示其自身的数值,而不是让玩家去猜测。
烹饪出的食物带有标记,记录着厨师的星级、是否完美制作以及制作人——这就是为什么厨师制作的食物对任何食用者都更好,也是为什么当其他人食用时,厨师会获得精通度。这是该模组唯一会写入物品数据的地方。未带标记的物品堆与原版食物完全相同,而带标记的物品堆不会与未标记的合并,以确保好的批次不会被差的批次稀释。
如果服务器只想要统计功能,可以将 mastery.bonuses.enabled 设为 false,上述所有机制效果都会消失。
烹饪日志
通过按键绑定(默认为 J 键)或 /mealmastery open 命令打开。无需任何物品。
它会记录食谱、食材、烹饪方法、分类和收藏集——所有这些都通过烹饪来发现,而不是通过打开食谱查看器。每个模组的收藏集都会自动为至少贡献一道菜肴的模组生成。未知条目可以按客户端设置,选择隐藏、显示剪影、仅显示名称、显示食材提示或完整显示。
烹饪等级与经验值
烹饪经验值设计上更鼓励广度而非重复。发现一道新菜肴可获得 75 点经验值;重复烹饪已知菜肴仅获得 6 点。此外,每道菜每天都有反刷怪的收益递减机制——第一次烹饪全额计算经验,接下来四次按 75% 计算,再接下来十次按 50% 计算,之后的所有次数都按 20% 的下限计算。下限不为零:重复烹饪的价值应该降低,但不应该是零。
刻意将一种廉价菜肴烹饪一万次是一种糟糕的策略。
挑战、收藏集与里程碑
每日挑战会根据服务器实际安装的食物生成,因此目标永远不会无法完成。整合包和数据包作者可以添加自己的挑战:
data/<命名空间>/mealmastery/challenges/<名称>.json
data/<命名空间>/mealmastery/collections/<名称>.json
data/<命名空间>/mealmastery/milestones/<名称>.json
共有十四种目标类型可用(烹饪特定食谱、烹饪特定分类或特定模组的食物、使用特定食材或食材标签、使用特定烹饪方法、精通一个食谱、提供份数、达到等级等)。奖励仅限于游戏内已存在的内容——物品、进度、经验值和装饰性的日志徽章。不会发明自定义奖励物品。命令奖励存在,但受默认关闭的服务器设置限制。
模组自带的所有内容都是作为数据包文件编写的,因此整合包可以通过复用相同的 ID 来覆盖其中任何内容。
兼容未知的食物附属模组
Meal Mastery 在编译时不依赖农夫乐事。 它从原版注册表中读取食谱类型、食谱、食材、食物属性和标签,因此下界乐事的烹饪食谱和农夫乐事的烹饪食谱走的是完全相同的代码路径。没有任何内容与特定模组 ID 绑定。
实际结果是:安装另一个食物附属模组后,日志会在下次启动时自动扩展。无需兼容包、无需硬编码物品列表、也无需逐附属模组编写代码——包括对任何在此模组之后发布的附属模组。这也适用于根本不是农夫乐事附属模组的模组中的食物,只要它们注册了能产出普通食物的常规食谱。
安装和运行 Meal Mastery 仍然需要农夫乐事本身。
默认情况下,原版食谱同样计入。 面包、烤马铃薯以及任何用烟熏炉烹制的食物,都能与农夫乐事的炖菜一样获得精通度,并且日志中会列出它们。如果某个整合包希望日志只关注其食物附属模组,可以将 compatibility.trackVanillaRecipes 设为 false,这会一次性关闭整个 minecraft 命名空间,而不会影响其他任何模组。
/mealmastery debug 命令会报告模组如何看待你手中的物品,这是找出某个附属模组的食物为何在或不在日志中的最快方法。/mealmastery compat 命令会列出所有被检测为贡献了菜肴的模组。
多人游戏
烹饪成就只会归属于真实、可识别的玩家。由漏斗、自动合成器或模组自动化产出的食物默认 不会 计入 任何人 的成就;模组绝不会猜测归属权。服务器可以通过 automation.credit 设置放宽此限制。
排行榜默认关闭,并且在此基础上需要每个玩家自行选择加入——玩家通过给自己添加 mealmastery_leaderboard 计分板标签来选择加入。
进度由服务器端权威控制。客户端无法更改它;服务器会推送其使用的曲线,因此不匹配的客户端甚至无法错误地渲染进度条。
配置
配置文件目录中有两个带注释的 TOML 文件:
config/mealmastery-server.toml 世界行为,服务器权威
config/mealmastery-client.toml 仅外观呈现
每个设置都在文件中有注释说明,包括其范围和可接受值。两者都可以通过 /mealmastery reload 命令重载。超出范围的值会被截断并记录日志,而不是被拒绝——配置错误绝不能导致玩家丢失世界——而无法解析的文件会被重命名为 *.invalid 并替换为默认值,以便原始文件可以恢复。早期 JSON 版本的配置会自动迁移,原始文件会保留为 *.json.bak。
有五个预设(Vanilla+、Cozy、Completionist、Server、Cosmetic)可作为起点。任何一个都不会自动应用,并且应用某个预设只会重写配置文件;它绝不会触及玩家档案。
命令
/mealmastery,别名为 /mealmasters 和 /mm。
| 命令 | 用途 |
|---|---|
open, stats, recipe <物品> |
你的个人资料 |
challenges, collections, titles, today |
目标 |
leaderboard, compat, export |
服务器与诊断 |
audit, debug, reload |
注册表检测到的内容及其原因 |
admin inspect / addxp / setlevel / discover / mastery / reset / purgeorphans |
管理员 |
模组开发者信息
有一个小型公共 API(MealMasteryApi),用于处理通用检测无法覆盖的两种情况:注册一个既不开菜单也不掉落产出物的工作站,以及直接授予烹饪成就积分。大多数模组不需要它——注册了常规食谱的食物附属模组已经得到完全支持,无需任何集成代码。
Meal Mastery 不是一个厨房框架,也不会成为强制依赖项。无法通过该 API 注册食物、食谱、工作站菜单或烹饪机制;这些属于农夫乐事及其附属模组本身。
它不会做什么
- 它不会添加任何食物、物品、方块、游戏内纹理、模型或声音。
- 它不会修改农夫乐事的食谱或任何食物的属性。
- 它不会限制任何内容。不会有任何食谱、物品或方块因 Meal Mastery 等级而无法使用。
- 它不会改变饥饿值,也不会添加营养或食物组系统。
- 它不会替代食谱查看器。JEI/REI/EMI 集成是可选的、增强性的。
- 它不会与其他进度模组挂钩。其烹饪等级与 Project MMO 的技能等级或 LevelZ 的等级无关,并且它既不产生也不消耗它们的经验值。
- 它不会占用其他模组拥有的提示框区域。只要安装了营养模组,营养信息行就会默认保持关闭。
源码与问题反馈
https://github.com/XircTwerk/Meal-Mastery
1.20.1 分支针对 Minecraft 1.20.1(Fabric、Forge)。1.21.1 分支针对 Minecraft 1.21.1(Fabric、NeoForge)——农夫乐事没有适用于 1.21.1 的 Forge 版本,这就是加载器不同的原因。
采用 MIT 许可证。整合包可自由包含此模组;欢迎注明出处,但并非强制要求。
Meal Mastery 是一个独立的附属模组。它与农夫乐事的作者无关联、未经其认可,也不受其支持。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。