根茎地窖储存与自动化

根茎地窖储存与自动化

一个用于管理箱子和磁盘存档、自动化输入/输出设备以及过滤器构建的农场终端。最初灵感来源于holybananapants的终极存储系统。

游戏玩法机制

描述

将地窖终端、导入器和导出器添加到矮人的商店。 玩家可以选择让终端管理并访问农场上的所有宝箱,或者通过菜单中的标签页添加虚拟磁盘存储。还添加了追踪完美的标签页、使用自动定价的大型可制作物品进行递归制作、一个晶球破碎机标签页、一个远程商店标签页等等。所有功能均可通过 GMCM(通用模组配置菜单)配置。此模组是对 holybananapants 制作的终极存储系统的完全重写,在重写的基础上更改了逻辑,优化了性能和功能。制作此模组的主要原因是我和妻子开始了一个多人游戏世界,而她在物品栏管理方面比我还要糟糕。

因为此模组可用于将所有物品存储在非标准存储中,请务必备份您的存档以防万一!


安装说明

解压并将两个文件夹放入 /Mods/ 目录中。


主要功能

以下所有功能都集中在一个终端中。

存储标签页

从矮人处购买地窖终端,即可查看、搜索和排序农场上的所有宝箱。物品按类别分组并显示实时数量,还有一个“这东西在哪?”面板显示哪个宝箱/磁盘存放着某件物品,您可以将收藏品固定在类别顶部,智能存储功能可将您的物品栏物品放入匹配的存储中。

存储标签页截图

虚拟磁盘存储

安装存储磁盘(钢质、金质、铱质等级),用于高容量虚拟归档,在磁盘标签页中管理。为每个磁盘添加过滤标签,存入的物品会自动分类。您可以单独使用磁盘,也可以与实体宝箱组合使用。

虚拟磁盘存储截图

过滤器构建器

使用编辑器构建过滤器。可按类别、物品、名称、上下文标签、品质、售价或其他过滤条件进行匹配,并实时预览“匹配 xyz 物品”的数量。过滤器可用于磁盘排序、导入器/导出器和路由。

过滤器构建器截图

导入/导出总线

将导入器和导出器大型可制作物品放置在宝箱、机器或出货箱旁边。导出器将过滤后的物品从存储中送入机器和出货箱;导入器从相邻来源抽取物品并放入最匹配的存储。您可以为每个设备关联批次大小、目标库存、预留数量、随机选择和时间间隔。

性能提示: 无过滤的导入器会导致大型存档出现延迟。我已付出巨大努力来减少自动化的延迟,但仍有一些残留。在多人游戏中,使用大量磁盘/宝箱的复杂过滤器大约会消耗 11 毫秒。

导入/导出总线截图

递归制作与烹饪

直接从存储中制作和烹饪物品。终端会计算出在整个制作树中您可以制作每种配方的数量。大型可制作物品会自动定价,并支持基于机器人的自动制作。这是模组中较为作弊的功能之一,可通过 GMCM 禁用升级标签页。

递归制作与烹饪截图

晶球破碎机

直接从存储中敲开晶球,无需前往克林特那里。我妻子不喜欢克林特。这就是这个标签页存在的原因。

性能提示: 一次性敲开超过 1000 个晶球可能导致约 100-200 毫秒的卡顿,且随数量增加而增加。

晶球破碎机截图

商店

打开商店。我妻子不喜欢等待,而我当时不知道有 Self-Serve 这个选项。这是另一个较为作弊的功能。

目前不支持所有游戏内商店。

商店截图

完美追踪器

一个追踪您完美进度的标签页。您可以在此菜单中制作、烹饪和出货以完成完美,这些操作会更新完美追踪。

完美追踪器截图

路由、清理与活动日志

查看路由优先级和冲突警告,压缩重复堆叠,在实体存储和磁盘存储之间移动物品,并查看所有存储、取出、移动和自动操作的持续日志。

性能提示: “全部压缩”可以大幅减少大型存档的延迟,但运行时也可能导致长时间的卡顿。

路由、清理与活动日志截图

多人游戏

大部分功能支持多人游戏。磁盘存储由主机权威管理,可防止物品复制或丢失,当其他玩家添加或移除物品时,数量会实时更新。一切应该都是乐观的,并且我已在本地极端网络条件下进行了测试。您不应当丢失或复制物品。

(不保证能测试所有人的游戏)

可配置

通过通用模组配置菜单,隐藏您不使用的任何标签页,并调整终端商店价格、磁盘价格以及机器连接材料倍率。


需求

  • Tagframework 已捆绑但为可选。添加过滤功能,例如为原本没有季节背景标签的种子添加上下文标签。
  • Content Patcher 是资源必需的。
  • Automate 对于导入/导出的自动化是必需的,因为有意不集成机器组。使用宝箱作为中间体,通过导入器/导出器进入机器组。
  • GMCM 配置为可选。

给技术控的数据

点击展开

我抓住一切机会测试此模组。现已跨两个游戏年测试,模组的任何更新都将向后兼容。即使您意外拥有旧版本的磁盘,模组也应自动迁移它们。主要原因很简单:这个模组主要由我和妻子在我们的存档中使用。

在以下笨拙设置的测试存档中,物品可能需要很长时间才能传输完毕,但不会复制或丢失任何东西。 测试存档截图

这是因为存储由主机权威管理。缓存重建、自动化及相关工作由主机处理,因此在多人游戏中,我建议让性能最强的机器做主机。为了最大程度减少延迟,使用类似 Always On Server 的模组可能会有所帮助,但代价是所有玩家都将体验服务器延迟,而不仅仅是客户端。

尽管我的测试套件返回 0 失败,但几乎肯定仍然存在漏洞,并且一些有意为之的功能乍一看可能像漏洞。由于模组的性质,物品丢失或复制在技术上是可能的。如果发生任何情况,请提交漏洞报告,并尽可能提供详细信息。

该模组仅在我的妻子约五英尺远处进行了真实的多人游戏测试。我可以在本地模拟网络条件,但无法完全预测每个真实世界的网络环境。安全性是我最关心的问题,性能紧随其后,但与其他模组一样,仍可能存在差距。

自动化是另一个主要的性能压力点,并且已经过大量迭代。已采取多种措施来减少自动化延迟,但它会影响性能。您可能会注意到新的自动化总线运行并构建索引时出现卡顿;这是一次性的权衡,以在游戏会话的其余部分减少延迟。

如果您已阅读此部分,欢迎在 SDV Discord 上 @.eucalyptus. 提出任何比提交漏洞报告更快的问题。


兼容性

目前没有遇到任何兼容性问题,但我会将所有已知的兼容性问题添加到本部分!

  • Monster Hutch Framework 与 Argon.TagFramework(为过滤功能捆绑)不兼容——正在寻找修复方法,但暂时请移除 Argon.TagFramework。没有它,RC 仍可正常工作。
  • 移动端不兼容。可能会修复。

不过,需要注意的一点是,当大量模组在 UpdateTicked 或 TimeChanged 事件上执行操作时,重度 RC 自动化可能会导致延迟增加。


致谢

  • 终极存储系统 by holybananapants——此模组的原始灵感。实际上,它起初是对其模组的修复。当我深入研究后,最终从零开始重写了它。
  • Shekurika 在我于 Discord 上讨论 RC 时提到了导入/导出总线 (但是拜托,别再对这类事情发表评论了,范围蠕变啊,范围蠕变!/开玩笑)
  • Selph(又名 zombifier) 提供 C# 和通用 SMAPI 支持
  • chue 提供 C# 和通用 SMAPI 支持
  • Pathoschild 帮助提供本地多人游戏测试方法(向我展示了如何使用 localhost)
  • atravita 帮助提供本地多人游戏测试(向我展示了笨拙)