
三明治站
把任何食物变成自定义三明治,具有基于食材的饥饿值、饱和度和效果。
查看大图添加一个方块——三明治工作站——任何基底加上最多九种可食用物品都能变成三明治。饥饿值、饱和度和状态效果都取决于你实际放了什么。其背后的每一条规则都是数据包标签或配置项,因此整合包可以添加食材、禁用某种效果,或重新平衡整个系统,而无需重新构建 jar 包。
客户端和服务端都需要安装。 支持单人游戏。
依赖项: Fabric 和 NeoForge 需要 Architectury API。Forge 无需额外依赖。
可自由用于任何整合包——公开或私人都可以,无需授权。
功能
- 三明治工作站——像工作台一样打开它。它不存储任何东西:剩余物品会在你关闭界面时返还,破坏方块也绝不会吞掉你的食物。
- 基底 + 馅料——在左侧槽位放入一个基底(面包、纸、烤马铃薯、蜜脾、曲奇,或另一个三明治),并在网格中放入最多九种可食用物品。
- 三个等级——份数按饥饿值划分:朴素三明治(≤3)、三明治(≤6)、上等三明治(>6)。馅料少则是一个三明治;馅料丰富则是好几个。
- 三明治包——多份会以一个包的形式产出(右键打开为整组物品)。你也可以在工作台中用两个或更多任意等级的三明治合成一个包。
- 堆叠——相同馅料的三明治可以堆叠在一起。包永远不能堆叠——每个包都保存着自己的列表。
- 幽灵提示——空槽位会淡化显示来自数据包标签的示例物品,因此它们始终显示当前整合包实际接受的内容。超过配置食材上限的槽位会变灰。
合成
S K S S = 平滑石台阶
P B P K = 剪刀
P = #minecraft:planks
B = 木桶
当木桶进入你的物品栏后,会在配方书中解锁。
数值如何计算
饥饿值和饱和度是基底与每种食材的总和,再按配置乘数和损耗进行缩放。总量会被拆分为份数(绝不会出现一个超大号三明治)。效果会从食材中合并,然后经过过滤、缩放、拆分到各份,并受上限限制——不会有任何随机判定。多样性会对不同风味类别(数据包标签)进行计分,并可以增加饱和度 / 延长效果;品质标签:普通 → 混合 → 多样 → 美食。
配置
文件:config/sandwichstation.json(首次启动时创建,每个键上方都有 // 注释)。每当玩家打开工作站时都会重新读取——编辑后再次打开方块即可,无需重启。
主开关
stationEnabled(true)——主开关;false会保留物品注册,但不进行任何组合debugLogging(false)——记录每次组合
营养(nutrition.*)
humbleMaxNutrition(3)/regularMaxNutrition(6)——等级阈值maxServings(16)——一次食材最多产出的三明治数量maxIngredientSlots(9)——可用网格槽位;其余槽位锁定nutritionMultiplier/saturationMultiplier(1.0)——缩放总量wasteFactor(0.0)——被丢弃的比例maxNutritionPerServing(10)/maxSaturationPerServing(12.0)——每份三明治的上限paperBaseNutrition(0)——本身没有食物价值的基底的食物值allowSandwichAsBase(true)/allowNonFoodBases(true)
效果(effects.*)
enabled(true)·budgetScale(1.0)·maxEffects(3)·maxAmplifier(1)minDurationTicks(20)·maxDurationTicks(6000)divideDurationAcrossServings(true)conflictPolicy(KEEP_STRONGER|DROP_BOTH|KEEP_BOTH)blockedEffectIds([])——永不传递的效果
多样性(diversity.*)
enabled(true)·weightPerCategory(1)·weightPerUniqueIngredient(0)saturationBonusPerPoint(0.25)·effectDurationBonusPercentPerPoint(5)
内容(content.*)
requireEdibleIngredients(true)extraBaseIds/blockedBaseIds/extraBaseTagsextraIngredientIds/blockedIngredientIds/extraIngredientTags/blockedIngredientTags
集成(integration.*)
- 提示框 / 自动命名 / 合成音效开关(
showQualityTooltip、showIngredientTooltip、maxTooltipIngredients、autoNameResults、playCraftSound)
ID 会被规范化(Bread、minecraft:bread、minecraft:bread 都能匹配;缺少命名空间 → minecraft)。
面向整合包作者
| 层级 | 位置 | 重载方式 | 用途 |
|---|---|---|---|
| 数据包标签 | data/sandwichstation/tags/... |
/reload |
基底、食材、风味类别 |
| 配置 | config/sandwichstation.json |
下次打开工作站时 | 所有数值、开关、禁用列表 |
| Java API | 你的模组 | — | 只有在运行时才能知道其价值的食物 |
标签: bases、ingredients、blocked_ingredients,以及 categories/{meat,fish,vegetable,fruit,grain,sweet,fungus,exotic}。
路径——1.19.2 / 1.20.1 使用复数文件夹(tags/items、recipes、advancements、loot_tables);1.21.1+ 使用单数(tags/item、recipe、advancement、loot_table)。
要覆盖工作站配方,请使用相同路径 / ID sandwichstation:sandwich_station。如果你的配方不再使用木桶,也请覆盖解锁进度(它默认检测木桶)。
不重新构建 jar 就无法更改的内容: 固定的物品/方块 ID;组合是排序后食材列表的纯函数;工作站没有方块实体(无法在会话之间保存物品)。
细节
- 真正的方块,带服务端合成——并非仅客户端。
- JEI / REI / EMI 会将工作站配方显示为普通的有序合成。组合机制通过物品提示框进行说明(1.0.0 中不是配方查看器类别)。
- MIT 许可证。
反馈
请在 Discord 上报告任何 bug、错误或功能建议: https://discord.gg/HTkn94BXmA
Nikrecs 的更多模组: Fields · CropGrowthHUD
我推荐的其他模组。
正在加载版本记录…





正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。