储藏室工作

储藏室工作

食物模组从未拥有的矿石词典。将十四个模组——农夫乐事、Croptopia、Pam's、Let's Do系列、机械动力等——桥接进一套共享标签词汇,使一个模组的奶酪能以公平价格用于另一个模组的配方中。

食物

🍞 一块奶酪。所有配方。

Farmer's Delight 有奶酪。Croptopia 有奶酪。Pam's 有奶酪。Meadow 和 Brewin' & Chewin' 也有奶酪。但它们没有一个是同一种奶酪——它们都用四种互不兼容的命名方言给自己的食物打标签,彼此之间从不互相引用。所以想要奶酪的配方只能精确取用其中一种,而你的整合包则在暗中运行着永不相交的平行食物经济体系。

Pantrywork 解决了这个问题。它纯粹是数据:一个标签层,将这些方言桥接到官方的 NeoForge / Farmer's Delight c:foods/* 约定上,然后添加第二层来描述一种配料起什么作用。没有方块,没有物品,没有玩法改动。只有终于能用的配方。

NeoForge 支持 Minecraft 1.21.1 和 26.1–26.2,Fabric 支持 1.21.1–1.21.11 和 26.1–26.2(Fabric 需要 Fabric API)。

🏷️ 两层结构

身份 — c:foods/*。扩展内置约定并将其他方言翻译成它。Croptopia 的复数方言(c:cheeses)、Pam's 的拼接方言(c:rawpork)以及 Farm & Charm 的下划线方言(c:raw_pork)都解析为规范名称(c:foods/cheese、c:foods/raw_pork)。桥接是双向运行的:74 个方言标签也会获得其他模组的等效物品,因此那些模组自身的配方也开始接受外来配料——Meadow 的奶酪配方接受 Brewin' & Chewin' 的奶酪,Pam's 的鱼类配方接受 Aquaculture 的渔获,Croptopia 的菠萝配方接受 Fish of Thieves 的菠萝。

仅限公平替换。 Pantrywork 添加到配方标签中的物品,其成本最多只能比定义该标签的每个模组已放入其中的最便宜物品便宜 1.5 倍,计算方式包含其制作方式(一瓶 16 份的牛奶瓶成本为一桶的十六分之一)。当只有部分模组接受如此便宜的物品时,该替换仅在其中一个模组已安装时才会添加(一个条件性资源包叠加层,游戏仅在该模组加载时应用)。因此,牛奶瓶永远不会填入为桶编写的配方,培根条永远不会在 Pam's 的配方中算作完整的猪排,Refurbished Furniture 的每块面包六片的吐司也不会进入其他模组的配方。该检查覆盖 Pantrywork 添加的内容;每个模组在其自身标签中列出的内容由它自己决定。0.7.0 版本移除或使所有未通过该检查的旧替换变为条件性,其更新日志列出了全部内容。

角色 — pantrywork:food_component/{protein, starch, dairy, garnish, liquid_base, sweetener}。身份层之上的标签之标签,描述功能而非身份。针对 #pantrywork:food_component/protein 编写一个配方,它就能接受原版牛排、Farmer's Delight 培根,以及未来任何模组标记的物品——而你无需发布更新。角色描述一种配料起什么作用,而非它值多少:dairy 中牛奶瓶和植物奶与桶并列。

🔌 无需食物模组

每个跨模组引用都是 required: false。无论安装 Pantrywork 时搭配全部受支持模组、其中一个,还是一个都不装——它都能干净加载,并直接桥接它找到的内容。在 Fabric 上,Fabric API 是必需的:它负责加载模组数据,没有它 Fabric Loader 会拒绝启动并指出缺失的依赖项。

仅服务端——把它放到服务器上,所有玩家都能受益,无需客户端安装。在单人游戏中也有效(你的游戏运行着一个内部服务器;正常安装即可)。

支持:Farmer's Delight(含 Fabric 上的 Refabricated)· Croptopia(含 Croptopia Refabricated)· Pam's HarvestCraft 2 Food Core · Ocean's Delight(完整身份模块)· End's Delight(父级加入)· [Let's Do] Vinery、Farm & Charm、Meadow · Aquaculture 2 · Brewin' & Chewin' · Create · Bountiful Fares · Fish of Thieves · Refurbished Furniture · Origins(食肉/素食饮食标签)。

🧑‍🍳 面向整合包作者

别再为每个食物模组写一个配方了。针对角色标签编写,配方就能覆盖你的玩家已安装的每个模组,以及他们之后安装的模组。

🛠️ 面向模组作者

PantryworkTagKeys 将每个标签暴露为常量,因此你可以在不硬编码字符串、也不依赖被桥接模组的情况下引用该分类体系。

✅ 经过验证,而非假设

这里的每一项声明都在运行中的服务器上检查过,而非推断而来。受支持的模组被一起加载,桥接被真实地测试——Pam's 自己的烤奶酪火腿三明治用 Farm & Charm 黄油和 Brewin' & Chewin' 奶酪制作(并且拒绝使用 Croptopia 更便宜的奶酪);Farmer's Delight 的鸡蛋三明治用 Pam's 和 Bountiful Fares 的鸡蛋制作;Croptopia 的菠萝鸡肉在 NeoForge 26.2 上用 Fish of Thieves 的菠萝制作;Croptopia 的香蕉冰沙用 Farmer's Delight 的牛奶制作。Fabric 构建在 1.21.1、1.21.10、1.21.11、26.1.2 和 26.2 上启动;NeoForge 构建在 1.21.1、26.1.2 和 26.2 上启动——26.1.2 的启动使用了 All the Mods 11 所搭载的确切 NeoForge 构建,并搭配其 Croptopia 和 Aquaculture 2。另有独立的运行在未安装任何受支持模组的情况下启动,在移除 Farm & Charm 的情况下启动,以及在每个条件性替换所依赖模组安装与不安装的情况下启动。自动化 GameTests 覆盖了角色标签、跨模组身份、反向桥接、成本下限,以及通过 RecipeManager 进行的配方解析。