
Compacting/Extra Large Lattice Storage
一个AE2-UEL扩展模组,提供额外存储元件,拥有扩展容量和特殊功能。此模组主要专注于性能。
查看大图Compacting/Extra Large Lattice Storage (C.E.L.L.S.)
常见问题
我的压缩元件在ME箱子界面中不会刷新,直到我重新打开它
这是ME箱子实现的限制,它不会监听网络上的变化。它只监听玩家手动插入的内容,这与压缩元件的虚拟物品配合不佳。此问题纯粹是显示问题,离开界面并重新打开后会自动解决。
我有 9.2+ 百京个物品,但终端显示的远少于此
可能是你的 AE2 版本不处理 Long 溢出(截至目前,AE2-UEL 0.56.7 不处理),导致计数回绕并显示错误的值。这纯粹是显示问题,你的物品在元件中是安全的。元件终端应该显示正确的值,因为它不会累加多个元件的内容,而是分别显示每个元件。
如何轻松地将一个元件的内容转移到另一个?
如果你是为了升级元件,可以通过用所选组件合成元件来轻松完成。注意,这仅适用于 CELLs 模组的元件,并且类型相同(物品/流体/压缩)时才有效,前提是元件非空(如果为空,不同类型也可以)。这意味着 1k 高密度物品元件 + 16k 高密度物品组件 => 16k 高密度物品元件 + 1k 高密度物品组件。可配置元件有类似的系统,但仅适用于可配置元件,因为它们有不同的外壳(它们也不支持高密度组件)。
C.E.L.L.S. 支持哪些模组?
该模组需要 AE2-UEL。它还支持:
- MixinBooter:允许 C.E.L.L.S. 的存储元件堆叠至 64。没有它,允许堆叠会导致与 ME 箱子产生复制漏洞。同时为 JEI 元件预览提供物品数量显示。
- JEI:导入接口拖放和快速添加功能、创造元件拖放功能、JEI 元件预览功能
- Thaumic Energistics:可配置元件组件、创造元件、导出/导入接口
- Mekanism Energistics:可配置元件组件、创造元件、导出/导入接口
- ProjectEX:EMC 元件
为什么源质导入接口需要拉取卡?
因为神秘时代的源质传输系统是基于拉取的:任何导入都需要拉取,任何导出都是被动的。管道每隔几刻拉取一次,罐子从管道中拉取也是一样。这样做基本上与使用拉取卡相同,但要么延迟更高,要么吞吐量更低。拉取卡允许接口以更优化和可控的方式进行拉取。
为什么对增加类型数量有如此严重的警告?
因为 Minecraft 和 AE2 的限制:
- 以默认数据包大小 2MB 为例。除非你使用模组来增加它,否则这就是你的固定限制。一件附魔护甲可以占用 100 到 1000 字节的 NBT 数据,一个普通驱动器可以存储 10 个元件,所以 2MB / 1000B / 10 个元件 = 仅 200 种不同的物品就会达到限制。这真的不多!
- 如果一个区块中包含的 NBT 数据超过该限制跨所有机器/容器,该区块将无法加载并踢出所有尝试加载它的玩家。这是原版 Minecraft 的限制。这就是为什么你应该将 NBT 密集型内容隔离并分离到不同的区块和网络中,以避免将自己区块封禁。卡在该区块中将导致崩溃循环,直到你使用 NBT 编辑器手动将玩家移动到不同的区块,或移除有问题的机器。有一些方法可以避免这个问题,但它们会带来性能成本,并且不能解决下面这个问题,这是 AE2 设计固有的。
- 如果网络存储的总 NBT 大小超过此限制,AE2 会将你从网络中踢出。这意味着单个网络上所有元件的总组合 NBT 大小。当然,建立一个单独的网络可以缓解这个问题,但不能解决根本问题。高密度元件在 NBT 大小方面并不比普通元件大多少,因为额外的容量与物品本身的 NBT 大小相比可以忽略不计。
- 简而言之:物品数量本身不重要,你存储的内容才重要。
特性
导入接口(物品、流体、气体、源质)
一个方块,充当将内容导入 ME 网络的过滤接口。需要配置以允许特定内容,可用于从不一定具有过滤导出能力的机器(Woot、Ultimate Mob Farm 等)将物品/流体导入网络。它没有任何拉取、导出/保持库存或合成能力,仅作为导入接口工作。
每个槽位的顶部用于过滤器,而底部用于实际导入。槽位的大小可以在 GUI 中配置,允许在导出目标已满时在接口中保留更多/更少的每种物品/流体(最高可达 max long,外部 I/O 被 Minecraft 限制为 max int)。轮询速率也可以配置,允许以固定间隔(以刻为单位)导入内容,而不是 AE2 的自适应速率。
导入接口最适合不会尝试合并物品堆叠的机器,因为插入槽位对物品的去向没有影响。只有作为过滤器的一部分及其专用槽位中的剩余空间才重要。
这些接口有 36 个槽位,使用容量卡最多可扩展 5 倍。
导出接口(物品、流体、气体、源质)
导入接口的对应物,允许将内容从 ME 网络导出到任何外部管道。槽位大小和轮询速率与导入接口相同。
undefined
源质导出接口开箱即用,支持存储总线、源质舱口、神秘炼金炉和注魔。管道也可以使用,但受限于其 1 种源质类型的限制。
子网代理
一个双方块多方块结构,通过可配置的过滤窗口桥接两个 ME 网络。与经典的 AE2 子网桥(接口上的存储总线)不同,子网代理具有:
- 无循环保证:代理网络自动检测并防止循环,因此像
A → B → A这样的循环拓扑不会导致幽灵物品或强制更新。 - 无多跳保证:代理只给主网络 1 跳可见性进入子网的本地存储,并且不会通过子网上的其他代理进行链接。这意味着,对于
B → A → C → D,C 会看到 A 和 B,但 D 不会通过 A 看到 B 的内容。这防止了在复杂子网拓扑中事件呈指数级膨胀,使性能影响保持可控。 - 最多 25 * 63 个过滤槽位:过滤器是分页的,可以使用容量卡扩展(配置下最多 24 个升级槽位),允许你在需要时共享子网的很大一部分。
- 单向或双向操作:默认情况下,代理是只读的(主网络可以看到并从子网拉取,但不能推回)。这个设计是有意的,以避免网络中的每一个插入的物品都要对每一个子网代理的过滤器检查插入,即使它们只是打算单向暴露内容。但是,你可以向子网代理添加一张插入卡来暴露内容以使其双向,允许主网络也通过代理将物品推回子网(当然仍然遵守过滤器)。
- 通用资源支持:同一个子网代理适用于物品、流体、气体和源质。使用过滤 GUI 中的资源类型循环按钮在物品/流体/气体/源质"编码"模式之间切换过滤槽位。编码模式对代理可以从子网暴露什么没有影响,它只在实际上向过滤器添加东西时使用。要控制代理暴露哪些类型的资源,你可以使用侧边按钮启用/禁用通道(默认为全部禁用,以选择性地暴露特定通道)。
- 过滤事件转发:代理只转发与过滤器匹配的更改,因此网络只看到你希望它看到的内容。这也意味着如果主网络中发生了更改但不匹配任何过滤器,任何子网都不会看到它,因此不会在子网侧触发不必要的更新。
它是什么
子网代理作为一对线缆部件,必须跨越一个方块边界面对面放置,就像存储总线对准 ME 接口一样:
- 子网代理(背面):位于你想要共享其内容的网络的线缆上。这是你的"源"侧。
- 子网代理(正面):位于应该看到内容的网络的线缆上。这是你的"目标"侧,也是拥有 GUI 的那一侧。
一旦两半都放置好,正面部分就开始将背面网络的过滤视图发布到主网络中,就像驱动器上的额外元件一样。
它有什么用途
常见用例:
- 跨网络共享存储而不合并它们。 你可以保持两个网络各自独立的通道预算,同时仍然让主网络读取(可选写入)子网内容的一个子集。
- 将机器或系统黑盒化。 你可以将机器放在子网后面,只向主网络暴露相关的物品/流体/气体/源质,而不让它看到子网的内部运作。循环设计(例如
A → B → A)可以用来让子网也看到主网络的内容,而不合并两个网络。子网只知道A → B连接,主网络只知道B → A连接,因此它们在逻辑上保持分离和独立。如果
如何使用
- 合成子网代理物品,然后跨方块边界面对面放置背面部分和正面部分,就像存储总线对准 ME 接口一样。放置顺序无关紧要,但它们必须面对面放置。代理会自动检测连接并开始工作,无需配置即可开始与主网络共享子网的内容。
- 右键单击 2 个部分中的任意一个以打开过滤 GUI。过滤器的工作方式类似于存储总线过滤器:
- 将物品、流体、气体或源质拖入过滤槽位以将它们加入白名单。物品栏/JEI 拖放和快速添加键绑定可用,以及 JEI 中的"+"按钮,它会将配方的输入添加到过滤器中。
- 使用过滤模式按钮(右上角)在物品/流体/气体/源质模式之间切换过滤槽位转换为的内容。
- 添加容量卡以解锁额外的过滤槽位页面;使用页面箭头导航。
- 添加模糊卡以启用模糊匹配(耐久/NBT 容忍)。
- 添加反相卡以反转过滤器(除了列出的物品之外的所有内容都通过)。
- 单击扳手按钮(过滤 GUI 左上角)以打开标准的 AE2 优先级屏幕。代理在两个方向上都遵守优先级,就像驱动器一样:
- 更高优先级意味着当多个来源具有所请求的物品时,主网络优先从该代理提取。
- 更高优先级意味着主网络优先插入到该代理(当安装了插入卡时)。
- (可选)添加插入卡以使桥接双向。没有它,代理是**只读的(正面网络可以看到并从背面网络拉取,但不能推回)。有了它,落在正面网络上的匹配相同过滤器的物品可以通过代理路由回背面网络。
行为说明与保护措施
- 仅一跳。 代理为主网络提供 1 跳可见性进入子网的本地存储(驱动器、ME 箱子、原版物品栏上的存储总线)。它故意不通过子网上的其他直通存储总线进行链接,因此像
A → B → C → D这样的链一次只暴露一跳,无法在复杂拓扑上指数级膨胀事件。 - 无写入循环。 插入不能在同一操作中通过多于一个子网代理进行链接。即使你在
A → B和B → A上都有插入卡,第二个代理会看到调用已经在插入内部并拒绝转发,因此你无法意外构建复制或堆叠溢出循环。 - 列表与提取匹配。 主网络终端中可见的任何东西都是可提取的,任何未列出的内容都不会被静默提取。列表和提取使用完全相同的源集,因此终端从不谎报实际可拉取的内容。
- 网络保持独立。 代理的两半不合并它们的网格:通道预算、P2P 隧道、安全终端和合成 CPU 都保持在其各自的网络范围内。只有过滤后的存储视图跨越边界。
压缩配方暴露器
一个方块,将压缩/解压缩配方作为处理配方暴露给 ME 网络,方式与压缩元件相同(1 上,1 下)。当你需要将内容存储在其他地方但仍希望自动压缩/解压缩的便利时,它可以作为压缩元件的替代品。只有 GUI 中定义的配方集暴露给网络,以避免使其膨胀或产生冲突的配方。由于 AE2 在 2 个配方产生相同输出时会混乱,GUI 会阻止你添加冲突的配方。默认情况下,暴露的配方每次 CPU 操作只执行 1 次压缩/解压缩动作(例如 1 个方块 → 9 个锭)(乘以协处理器),但你可以在槽位上更改乘数,将配方暴露为更大的转换(例如 100 个方块 → 900 个锭),以牺牲灵活性来节省 CPU 时间。
创造元件(物品、流体、气体、源质)
一种只能在创造模式下设置的元件,为每个设置的物品提供 4.6 百京(最多每个元件 63 种不同物品)。它相当于带有自动售货升级的抽屉。
压缩存储元件
自动将物品的压缩和解压缩形式暴露给 ME 网络的存储元件,类似于存储抽屉的压缩抽屉。
工作原理
- 需要分区:压缩元件在接受物品之前需要设置分区。
- 压缩链:当用物品(例如铁锭)分区时,元件会自动检测压缩链:
- 更高层级:铁块(压缩形式)
- 主层级:铁锭(分区物品)
- 更低层级:铁粒(解压缩形式)
- 虚拟转换:物品存储在统一的池中,可以以任何压缩层级提取:
- 插入 81 个铁粒 → 提取 81 个铁粒、9 个铁锭或 1 个铁块
- 插入 1 个铁块 → 提取 9 个铁锭、81 个铁粒或 1 个铁块
- 所有转换都是无损且即时的
- 由于大小限制,最大容量约为最低层级的 9.2 百京个物品。这主要是高压缩链(使用压缩/解压缩卡)的问题
- 单一物品类型:每个压缩元件只存储一种物品类型(及其压缩变体)。
- 存储计数:存储容量以主层级(分区物品)单位计量,因此在检查容量时无需担心转换系数。
可用层级
- 1k - 2G 压缩存储元件(普通大小)
- 1k - 1G 高密度压缩存储元件(每字节约 21 亿倍乘数)
分区保护
- 如果压缩元件包含物品,则无法更改分区。
- 在更改其存储的物品类型之前,先清空元件。
高密度存储元件
内部乘数为每个显示字节约 21 亿的存储元件:
- 1k - 1G 高密度存储元件(每个"字节"容纳约 172 亿个物品)
高密度流体存储元件
具有相同巨大乘数的流体存储元件:
- 1k - 1G 高密度流体存储元件(每个"字节"容纳约 172 亿桶)
undefined
高密度压缩元件
将高密度存储与压缩功能相结合:
- 1k - 1G 高密度压缩存储元件(每个"字节"容纳约 172 亿个物品,具有压缩能力)
可配置存储元件
一种通用存储元件,接受 ME 存储组件来定义其容量和存储类型:
- 将组件插入元件的 GUI 以配置其容量和存储类型。
- 内置均等分配:容量在所有类型之间平均分配(可配置的最大类型数,默认 63)。字节开销被主动考虑在内,意味着元件只有总字节的 50% 可用于存储,保留另外 50% 用于开销。
- 每类型容量限制:通过 GUI 文本框配置每类型的最大物品数/mB。
- 按住 Shift 右键单击以拆卸(返还元件、组件和升级)。
- 元件可以与组件合成以进行自动插入。该配方在 configurable_components.cfg 中为所有现有组件注册,包括自定义组件。
- 当元件有内容时无法移除组件。如果新组件有足够的容量容纳现有数据,则允许更换为相同类型的另一个组件(物品↔物品、流体↔流体等)。
组件白名单
接受的存储组件列表定义在 configurable_components.cfg 中。要添加或移除支持的组件,请将此文件的副本放在你的 Forge 配置目录(config/configurable_components.cfg)中。配置覆盖优先于捆绑文件。
每个条目的格式为:
registry_name@metadata = bytes,storage_type,tier_name
registry_name@metadata:物品的注册名和损伤值(例如appliedenergistics2:material@35)bytes:组件的总字节容量(例如 1K 为1024)- storage_type:
item、fluid、gas、essentia tier_name:用于纹理选择和名称(例如1k、64k、1g)
用例:
- 拥有非常有限大小的元件(昂贵的自动化)。
- 提供简单的升级路径,无需清空元件。
- 使用 ContentTweaker 创建新组件(通过 configurable_components.cfg)。
EMC 元件
一个像 ProjectEX 的个人 EMC 链接一样工作的元件,允许你将物品转换为 EMC 并转换回来。它严格等同于在 EMC 链接上配置的存储总线,只允许过滤器中白名单的物品进入,但不是严格匹配。匹配规则与其他 ProjectEx 方块相同。为节省性能,累积的 EMC 每秒才刷新到玩家的网络一次(可配置)。
升级
虚空溢出卡
安装到元件的升级槽位中,在满时销毁多余的物品。对于应该销毁溢出的自动化系统很有用。
兼容于:压缩元件、高密度元件、高密度压缩元件、可配置存储元件、导入接口
销毁未选中卡
安装到导入接口中,销毁不匹配任何过滤器的物品。这对于防止机器被剩余物品堵塞很有用,特别是与不具有过滤能力导出物品的机器一起使用时。
兼容于:导入接口
拉取卡
安装到导入接口中,从相邻物品栏拉取内容。这对于需要从外部来源导入内容的自动化系统很有用。可以设置时间间隔、每次操作的数量以及相邻物品栏中要保留的数量。数量是按接口的过滤器计的。
兼容于:导入接口
推送卡
相当于拉取卡,用于推送到相邻物品栏。
兼容于:导出接口
均等分配卡
限制元件可以容纳的类型数量,并在它们之间均等分配容量。有 7 种变体:
1x:1 种类型(所有容量给一个物品)
2x:2 种类型(各一半容量)
4x:4 种类型(各四分之一容量)
8x:8 种类型
16x:16 种类型
32x:32 种类型
63x:63 种类型(默认最大)
无限制:继承元件的最大类型数(参见配置)
用例:
- 强制元件只容纳一种物品类型并具有最大容量(1x)
- 防止一种物品主导元件存储
- 确保多个存储物品之间的公平存储分配
兼容于:高密度存储元件
矿物词典卡
安装到压缩元件的升级槽位中,以启用对压缩/解压缩的矿物词典支持。启用后,元件会将同一矿物词典组中的物品视为等同。例如,如果你有来自模组 A 和模组 B 的铜锭在同一矿物词典组中,元件会接受两者并将它们转换为分区物品,统一存储。这相当于存储抽屉的"转换升级",但用于压缩元件。
兼容于:压缩元件
压缩/解压缩卡
安装到压缩元件的升级槽位中,以增加可用于压缩/解压缩的压缩层级数量。请注意,它一次只能在一个方向上进行(压缩或解压缩),取决于所用的卡。
- 3x 卡:允许压缩/解压缩最多 3 个层级(例如,粒 → 锭 → 块 → 双块)
- 6x 卡:允许压缩/解压缩最多 6 个层级
- 9x 卡:允许压缩/解压缩最多 9 个层级
- 12x 卡:允许压缩/解压缩最多 12 个层级
- 15x 卡:允许压缩/解压缩最多 15 个层级
兼容于:压缩元件
插入卡
安装到子网代理中,允许代理除了被拉取之外,还能从其暴露内容的网络接收内容。这使代理变为双向,允许你将物品从主网络通过代理推入子网(当然仍然遵守过滤器)。没有它,代理是只读的,只允许主网络从子网拉取。
兼容于:子网代理
精炼/压缩 EMC 卡
安装到 EMC 元件中,以增加元件可以容纳的分区槽位数量,方式与个人/精炼/压缩 EMC 链接相同。槽位数量可以在配置中为每张卡配置,你甚至可以通过在配置文件中添加自定义条目来添加更多具有可能无限槽位的卡,但你需要自己提供纹理和本地化。配置条目中的第一个值是无卡时的默认槽位数。
- 精炼 EMC 卡:默认 9 个槽位
- 压缩 EMC 卡:默认 54 个槽位
兼容于:EMC 元件
配置
该模组包含一个服务器端配置文件,带有游戏内 GUI 编辑器:
最大类型数
配置每个元件允许的最大类型数:
- 高密度存储元件
- 高密度流体存储元件
- 可配置存储元件
空闲功耗
配置每种元件类型的每刻功耗:
- 压缩元件
- 高密度元件
- 高密度压缩元件
- 高密度流体元件
- 可配置元件
升级槽位
更改每种元件类型可用的升级槽位数量(额外槽位中的升级将丢失):
- 压缩元件
- 高密度元件
- 高密度压缩元件
- 高密度流体元件
- 可配置元件
元件开关
启用或禁用整个元件类别:
- 压缩元件
- 高密度元件
- 高密度压缩元件
- 高密度流体元件
- 可配置元件
导入/导出接口
你可以设置可以在 GUI 中设置的最大槽位大小和最小轮询速率。
NBT 调试
为所有元件启用或禁用 NBT 大小提示。此提示显示元件内容 NBT 大小的上限估计,以帮助了解何时将 NBT 密集型内容移到其他地方,以避免区块封禁或 AE2 的网络踢出。如果你的元件中有具有大 NBT 数据的物品不断闪烁进出,此设置可能会消耗一些性能,但这在实践中应该很少见,对大多数用例来说通常不是问题。
命令
/fillcell
用指定数量的物品或流体填充存储元件,用于测试目的。
- 用法:
/fillCell <item id>|<fluid id>|<essentia id>|<gas id> <count> - 支持数量后缀:k(千)、m(百万)、b(十亿)、t(万亿)、q(千万亿)、qq(百京)。
- 存储元件必须持在主手中。
- 示例:
/fillCell minecraft:iron_ingot 10k用 10,000 个铁锭填充手持的元件。
/inspectSlots
显示玩家正在查看的方块中的可用槽位。
- 用法:
/inspectSlots [--handler] [arg1] [arg2] ... - 玩家必须正在查看一个有槽位的方块(例如箱子或储罐)。
--handler可用于绕过 IItemRepository 并显示 IItemHandler 槽位。- 可以传递额外的参数来模拟对这些槽位的插入。为这些参数提供自动补全。
鸣谢
- 中文翻译:@ZHAY10086
- 俄语翻译:@MrKoteo
- 高密度物品/流体元件/元件组件的纹理:@ArchEzekiel
- EMC 元件、压缩配方暴露器、插入卡的纹理:@NerdySpider
正在加载版本记录…

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