跳到正文

Beyond Dimensions

Beyond Dimensions 是一个提供存储解决方案的模组。它引入了可在原版游戏后期获得的虚拟存储系统。

收藏

截图

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

Beyond Dimensions


Beyond Dimensions 是一个专注于存储与实用功能的模组。它引入了一种“维度网络”——一个多功能的存储系统,支持物品、流体、FE 能量、经验、通用机械的化学品、新生魔艺的源质、植物魔法的魔力以及工业先锋的灵魂。它将卓越的存储容量和性能与用户友好的界面相结合,轻松满足大多数场景下的存储需求。

入门指南


你需要击败凋灵,或通过其他任何方式获得下界之星。将其制作成不稳定的时空碎片。将此碎片放在你的物品栏中一小时,它会转化为稳定的时空碎片。使用它来制作维度网络生成器并激活它以创建你的维度网络。然后,只需按下快捷键(默认:’O‘)即可打开存储界面。

存储系统


  • 容量:默认存储容量即为最大值。它可以存储 21 亿种不同的物品或资源类型,每种类型可容纳 2^63^-1 个单位(Java long 的最大值)。最大存储类型数量、每种类型的容量以及扩展存储的方法均可通过 KubeJS 自定义。
  • 性能:存储系统经过了大量优化。性能测试表明,无论是连接 AE2 还是仅使用本模组,都能获得出色的结果。具体测试结果请参阅性能测试部分。
  • 多人游戏:存储系统通过玩家权限绑定网络。单个网络可以与多名玩家共享。或者,也可以通过物品形式的终端实现共享。

UI 界面


直观的存储界面:本模组提供的界面遵循与 AE2 和 RS 等热门存储模组一致的交互逻辑。

  • 内置合成网格。
  • 多种搜索模式:直接输入文本可搜索名称、工具提示或模组 ID。前缀 # 可严格匹配工具提示。前缀 @ 可严格匹配模组 ID。
  • 可自定义显示物品行数。
  • 多种排序选项:按存储时间、按数量、按名称、按模组 ID。

通用槽位系统:本模组任何 GUI 中的任何槽位都可以存储所有支持的资源类型,并支持快速交互机制。

快速容器操作:手持对应容器右键点击槽位,可快速从容器中存入/取出资源。例如:手持潜影盒、精妙背包或任何容器右键点击槽位,可快速将物品存入容器;右键点击空槽位,可快速从容器中取出物品并放入槽位。此操作支持流体、通用机械的化学品,甚至 FE 能量。

自动化支持与实用工具


本模组提供了用于自动化的方块和实用物品。这些方块需要绑定到网络,且大多支持红石控制,从而能够通过存储与其他模组进行交互。

  • 维度网络通道:显示维度网络中的全部存储内容。支持通过管道、漏斗、AE2/RS存储总线和精妙背包卸货升级进行输入/输出。
  • 维度网络能量通道:功能与网络通道几乎相同,但专用于FE能量传输。界面会显示当前FE能量流量。支持“弹出模式”,可向相邻方块输出FE,速率最高为21亿FE/刻。
  • 网络接口:类似ME接口。设有“样板槽”和“存储槽”。会尝试将已存储资源输入网络,并从网络中提取样板槽标记的资源。支持弹出模式。
  • 网络抽取器:主动从相邻容器中抽取资源,并将其存入维度网络。设有过滤槽,支持黑名单/白名单模式。
  • 网络漏斗:吸收附近的物品实体,甚至流动液体,并将其直接存入网络。工作范围可调(从2格到整个区块)。范围越大,工作间隔越长。设有过滤槽,支持黑名单/白名单模式。
  • 网络熔炉:可标记配方(输入物品和燃料)。会自动从网络中提取标记的资源进行冶炼。支持使用FE或熔岩作为燃料。成品可弹出到相邻容器,或存回网络。
  • 网络喂食器:当玩家饥饿值低于设定阈值时,会从网络中取出标记的食物喂给玩家。不会消耗Neverending Bacon或Eternal Steak等“无限”食物。可装备在Curios护符槽中。
  • 网络磁铁:类似网络漏斗,但可以随身携带。吸收物品实体的频率高于网络漏斗。可通过快捷键切换。可装备在Curios护符槽中。
  • 主手物品快速转移:中键点击方块,可立即从网络中取出一组与手持物品类型相同的物品。潜行+中键点击,可将手持物品放回网络。此按键绑定可配置。

模组联动与支持


  • 支持在JEI/EMI中拖放幽灵物品以标记配方材料,并快速传输配方。
  • JEI/EMI的幽灵物品标记功能可识别存储在AE2 Generic Stack中的物品。
  • 添加了一个AE2维度ME存储元件,用于读取已绑定网络的内容。其性能比使用存储总线高出10倍以上。
  • 支持存储Mekanism的化学品。
  • 合成网格支持Polymorph模组。
  • 便携式网络终端可装备在Curios护符槽中。安装Curios后再安装Beyond Dimensions,会额外增加一个护符槽。
  • KubeJS支持:提供多个类,可用于自定义网络创建逻辑、初始容量、扩容方式以及直接操作存储。
  • 由于Inventory Profiles Next (IPN)模组对界面进行了大量修改,导致两者不兼容,因此本模组的界面中会禁用IPN。快速转移物品请改用Mouse Tweaks。

附属模组开发与KubeJS自定义帮助


附属模组开发

通过代码添加新的可存储资源类型十分简单。实现以下接口,并注册资源类型及相应的处理器:

  1. IStackType – 使模组能够识别并存储此资源类型。
  2. IStackHandlerWrapper – 使模组能够以编程方式与持有此资源的容器/模组方块进行交互。
  3. CapabilityHelper.BlockCapabilityMap – 允许其他模组的管道/存储总线从方块中访问此资源类型。
  4. CapabilityHelper.ItemCapabilityMap – 为持有此资源的物品启用快速容器槽位交互(中键点击)。
  5. UnifiedStorage.typedHandlerMap – 允许维度网络核心存储操作此资源。
  6. StackTypedHandler.typedHandlerMap – 允许外围方块(如网络接口)在其内部槽位中操作此资源。

AE2 的特殊兼容性,即使跳过也不妨碍使用存储总线进行读取:

  1. AEHelper.ISTACK_TO_AEKEY_MAP – 将 Beyond Dimensions 资源对象映射到 AE2 键(用于读取维度 ME 存储元件)。
  2. AEHelper.AEKEY_TO_STACK_TYPE_MAP – 将 AE2 键映射回 Beyond Dimensions 资源类型(用于维度 ME 存储元件操作)。

有关实现示例,请参阅模组的主注册文件(BeyondDimensions.java)。注意:注册细节可能会在未来版本中发生变化。

KubeJS 自定义帮助

要自定义网络容量:

  1. 禁用默认的维度网络生成器配方。
  2. 使用提供的 KubeJS 暴露的类/方法来实现你自己的网络创建和扩展逻辑。

| 类名 | 方法签名 | 返回类型 | 静态 | 用途 |
| :——————- | :——————————————————————————- | :————— | :—– | :——————————————————————————————————————————————————————- |
| DimensionsNet | createNewNetForPlayer(Player player, long defaultSlotCapability, int defaultSlotMaxSize) | DimensionsNet | 是 | 为指定玩家创建一个维度网络。defaultSlotCapability:每种资源类型的最大单位数。defaultSlotMaxSize:资源类型的最大数量。 |
| | getNetFromId(int id, MinecraftServer dataProvider) | DimensionsNet | 是 | 根据数字 ID 获取 DimensionsNet 对象。 |
| | getNetFromPlayer(Player player) | DimensionsNet | 是 | 获取与指定玩家绑定的 DimensionsNet。 |
| | getUnifiedStorage() | UnifiedStorage | 否 | 获取代表此网络存储内容的 UnifiedStorage 对象。 |
| UnifiedStorage | setSlotCapacity(long capacity) | void | 否 | 设置此网络中每种资源类型的最大存储容量(单位数)。 |
| | setSlotMaxSize(int maxSize) | void | 否 | 设置此网络可存储的不同资源类型的最大数量。 |

此外,该模组还向 KubeJS 暴露了其他一些类。详情请见此处。

UnifiedStorage 类还包含许多其他方法,可直接修改玩家的存储内容。

该模组的 API 附有完整的中文注释。请点击此处查看。

其他信息


性能测试

测试在同一台机器、相同的后台条件下,使用 Spark 模组进行了三种场景的测试。所有测试均使用了 1319 个随机生成的不同物品。

  1. 独立使用 Beyond Dimensions:通过 Beyond Dimensions 存储/修改物品。使用 Mekanism 管道输入/输出。
  2. 通过 AE2 存储元件使用 Beyond Dimensions:通过 Dimensional ME Storage Cell 将网络连接到 AE2。使用 Mekanism 管道输入/输出。
  3. 原生 AE2 存储:将物品存储在标准 AE2 驱动器中(21 个 64k 存储元件)。使用 Mekanism 管道输入/输出。

注意:场景 1 使用 Beyond Dimensions 方块(Dimensional Network Pathway、Network Interface),体现该模组的核心性能。场景 2 和 3 使用完全相同的 AE2 设置(导出总线、ME 接口、无限频道),仅存储来源不同,因此可以直接比较。

结果:

| 测试环境 | TPS | MSPT(中位数) | MSPT(第 95 百分位) | 已加载区块 | 实体数量 |
| :—————————- | –: | ———–: | ———–: | ———–: | ———–: |
| 独立使用 Beyond Dimensions | 20 | 3.67 | 4.86 | 2601 | 13 |
| AE2 + Dimensional ME Cell | 20 | 2.97 | 3.37 | 2601 | 13 |
| AE2 原生存储 | 20 | 2.70 | 3.08 | 2601 | 13 |

详细的 Spark 性能分析和测试设置信息请见此处。

路线图(即将推出的功能)

  • 将原版物品/流体存储的最大容量改为 64 位整数(已完成)。
  • 经验值(XP)存储及实用工具。
  • Ars Nouveau Source 存储及实用工具。
  • 精致存储(RS)专用存储组件。
  • 添加进度机制(初始仅提供有限存储空间,需要扩展)。
  • 更多自动化实用功能和工具。
  • 更多实用物品和装备。

支持的版本

| MC 版本 | 加载器 | 模组版本 | 状态 |
| :——— | :——– | :———- | :—————– |
| 1.21.1 | Neoforge | 0.3.0+ | 持续更新中 |
| 1.20.1 | Forge / Neoforge | 0.3.0+ | 持续更新中 |
| 1.12.2 | Forge | 0.1.7.4 | 仅维护(只修复严重问题) |

在当前支持版本的路线图基本完成之前,暂不计划支持其他 Minecraft 版本。


常见问题

Beyond Dimensions 支持哪些 Minecraft 版本?

Beyond Dimensions 支持 Minecraft Java 版 1.12.2–26.3,共 8 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

Beyond Dimensions 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。

评论

登录后评论和评分

FrostbiteTime 的其他作品

查看全部 →