超越维度
超越维度是一个专注于存储与实用功能的模组。它引入了“维度网络”——一个支持物品、流体、FE能量、经验值、Mekanism的化学品、Ars Nouveau的源力、Botania的魔力以及Industrial Foregoing灵魂的通用存储系统。它结合了卓越的存储容量与性能,以及用户友好的界面,能够轻松应对大多数场景的存储需求。
入门指南
你需要击败凋灵,或通过其他方式获得下界之星。将其合成为不稳定的时空碎片。将该碎片保留在物品栏中一小时,它将转变为稳定的时空碎片。使用它来制作维度网络生成器并激活以创建你的维度网络。然后,只需按下快捷键(默认:O)即可打开存储界面。
存储系统
-
容量: 默认存储容量即为最大值。它可以存储21亿种不同的物品或资源类型,每种类型最多可容纳2^63^-1个单位(Java
long类型的最大值)。最大存储类型数、每种类型的容量以及扩展存储的方法都可以使用 KubeJS 进行自定义。 - 性能: 存储系统经过了大量优化。性能测试显示,无论是连接到AE2还是单独使用此模组,都表现出色。具体测试结果请参见 [性能测试](#performance-testing) 部分。
- 多人游戏: 存储系统使用玩家权限绑定网络。单个网络可以与多个玩家共享。或者,也可以通过物品形式的终端实现共享。
用户界面
直观的存储界面: 模组提供了一个遵循与AE2、RS等流行存储模组一致交互逻辑的界面。
- 内置合成网格。
- 多种搜索模式:直接文本输入可搜索名称、工具提示或模组ID。前缀
#严格匹配工具提示。前缀@严格匹配模组ID。 - 可自定义显示物品行数。
- 多种排序选项:按存储时间、按数量、按名称、按模组ID。
通用槽位系统: 模组任何GUI中的任何槽位都可以存储所有支持的资源类型,并支持快速交互机制。
快速容器操作: 手持对应容器时右键点击槽位,可以快速从容器存入/取出资源。例如:右键点击槽位时手持潜影盒、精致背包或任何容器,可以快速将物品存入容器;右键点击空槽位可以快速从容器中取出物品并放入槽位。此操作支持流体、Mekanism的化学品,甚至FE能量。
自动化支持与实用工具
模组提供了用于自动化的方块和实用物品。这些方块需要绑定到一个网络,并且大多支持红石控制,从而可以通过存储与其他模组交互。
- 维度网络通路: 暴露维度网络的全部存储内容。允许通过管道、漏斗、AE2/RS存储总线以及精致背包卸载升级进行输入/输出。
- 维度网络能量通路: 功能几乎与网络通路相同,但专用于FE能量传输。其UI显示当前FE能量通量。支持“弹出模式”,以21亿FE/刻的速度向相邻方块输出FE。
- 网络接口: 类似于ME接口。具有“模式槽位”和“存储槽位”。尝试将存储的资源存入网络,并从网络中提取模式槽位中标记的资源。支持弹出模式。
- 网络泵: 主动从相邻容器中拉取资源并插入维度网络。具有支持黑名单/白名单模式的过滤槽位。
- 网络漏斗: 吸收附近的物品实体甚至流动的流体,直接存入网络。其操作范围可调(从2个方块到整个区块)。范围越大,操作间隔越长。具有支持黑名单/白名单的过滤槽位。
- 网络熔炉: 允许标记配方(输入和燃料)。自动从网络中拉取标记的资源进行熔炼。支持FE或熔岩作为燃料。成品可以弹出到相邻容器或存回网络。
- 网络喂食器: 当玩家的饥饿值低于其配置的阈值时,它会从网络中标记的食物喂食玩家。不会消耗“无限”食物,如无尽培根或永恒牛排。可装备在Curios饰品槽位。
- 网络磁铁: 类似于网络漏斗,但可携带。以比漏斗更高的频率吸收物品实体。有热键开关。可装备在Curios饰品槽位。
- 主手物品快速转移: 中键点击方块可立即从网络中提取一组手持物品类型的物品。潜行 + 中键点击可将手持物品存回网络。此按键绑定可配置。
模组集成与支持
- 支持在 JEI/EMI 中进行拖放幽灵原料标记和快速配方转移。
- JEI/EMI幽灵原料标记可以识别存储在AE2通用堆栈中的物品。
- 添加了 AE2维度ME存储元件 用于读取绑定网络的内容。提供超过10倍的性能提升,优于使用存储总线。
- 支持存储 Mekanism的化学品。
- 合成网格支持 Polymorph 模组。
- 便携式网络终端 可装备在Curios饰品槽位。安装超越维度与Curios会额外增加一个饰品槽位。
- KubeJS 支持:暴露了允许自定义网络创建逻辑、初始容量、扩展方法以及直接存储操作的类。
- 在模组的GUI中禁用了 Inventory Profiles Next (IPN) 模组,因为其进行了重大的UI修改导致不兼容。请使用Mouse Tweaks进行快速转移。
附加开发与KubeJS自定义帮助
附加开发
在代码中添加新的可存储资源类型很简单。实现以下接口并注册资源类型以及相应的处理器:
-
IStackType- 使模组能够识别和存储此资源类型。 -
IStackHandlerWrapper- 使模组能够以编程方式与持有此资源的容器/模组方块交互。 -
CapabilityHelper.BlockCapabilityMap- 允许其他模组的管道/存储总线从方块访问此资源类型。 -
CapabilityHelper.ItemCapabilityMap- 为持有此资源的物品启用快速容器槽位交互(中键点击)。 -
UnifiedStorage.typedHandlerMap- 允许维度网络核心存储操作此资源。 -
StackTypedHandler.typedHandlerMap- 允许外围方块(如网络接口)在其内部槽位中操作此资源。
AE2的特殊兼容性,即使跳过,也不妨碍使用存储总线进行读取。:
-
AEHelper.ISTACKTOAEKEY_MAP- 将超越维度资源对象映射到AE2键(用于读取维度ME存储元件)。 -
AEHelper.AEKEYTOSTACKTYPEMAP- 将AE2键映射回超越维度资源类型(用于维度ME存储元件操作)。
请参考模组的主要注册文件 (BeyondDimensions.java) 获取实现示例。注意:注册细节在未来版本中可能会更改。
KubeJS自定义帮助
要自定义网络容量:
- 禁用默认的维度网络生成器配方。
- 使用提供的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个随机生成的唯一物品。
- 独立超越维度: 物品通过超越维度存储/修改。通过Mekanism管道输入/输出。
- 通过AE2存储元件的超越维度: 网络通过维度ME存储元件连接到AE2。通过Mekanism管道输入/输出。
- 原生AE2存储: 物品存储在标准AE2驱动器(21 x 64k存储元件)中。通过Mekanism管道输入/输出。
注意:场景1使用超越维度方块(维度网络通路、网络接口),反映了模组的核心性能。场景2和3使用相同的AE2设置(输出总线、ME接口、无限频道),仅存储源不同,便于直接比较。
结果:
| 测试环境 | TPS | MSPT (中位数) | MSPT (95%分位数) | 加载区块数 | 实体数量 |
| :---------------------------- | --: | -----------: | ---------------: | ---------: | -------: |
| 独立超越维度 | 20 | 3.67 | 4.86 | 2601 | 13 |
| AE2 + 维度ME存储元件 | 20 | 2.97 | 3.37 | 2601 | 13 |
| AE2原生存储 | 20 | 2.70 | 3.08 | 2601 | 13 |
详细的Spark性能剖析和测试设置信息可在此处获取。
路线图(即将推出的功能)
- 将原版物品/流体存储最大容量更改为64位整数(已完成)。
- 经验值(XP)存储和实用工具。
- Ars Nouveau源力存储和实用工具。
- Refined Storage (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版本。