整合而非孤岛

整合而非孤岛

将玩家库存基于容量而非几何形状进行基础设置。

捆绑而非割裂

捆绑而非割裂 是为 NeoForge 1.21.1 设计的一次完整的背包系统革新,旨在让携带物品不再那么受限,同时也不会把你的背包变成一面巨大的格子墙。

它不再把背包里的每一个格子都当作独立的储物箱,而是将你的背包视为一个共享的存储池。

你的快捷栏和普通背包界面看起来、用起来仍然和熟悉的 Minecraft 背包一样,但它们现在只是你访问所携带物品的入口,而不再是对你携带物品的硬性限制。

基于空间而非格子的存储

默认情况下,你拥有与普通 Minecraft 背包同等的容量:36 组完整堆叠。

区别在于,物品现在根据其正常堆叠数量的大小来占用空间。

例如:

  • 一个堆叠上限为 64 的普通物品,占用标准空间。
  • 一个只能堆叠 16 个的物品,每件物品占用的空间是前者的四倍。
  • 一个通常无法堆叠的物品,占用的空间与一整组 64 个普通物品相同。
  • 来自其他模组的、堆叠上限超过 64 的物品,会自动按比例占用更少的空间。

这意味着你的总携带能力保持平衡,同时消除了固定背包格子带来的尴尬限制。

没有人为的物品数量限制

你不会仅仅因为 Minecraft 通常有 36 个背包和快捷栏格子,就被限制只能携带 36 种不同的物品。

只要你有足够的剩余容量,就可以携带任意多种类的物品。

许多小组物品堆叠占用的空间,可以等同于几组大堆叠物品。

你的快捷栏依旧正常工作

熟悉的 9 格快捷栏 仍然是你的快速访问区域。

放在那里的物品会计入你的总背包容量,但快捷栏本身并不提供额外的存储空间。它只是让你能快速选择想要立即使用的物品。

同样的理念也适用于普通背包界面:它是你物品集合的便捷视图,而非你存储的实际限制。

可扩展的容量

你的背包容量可以通过模组的背包容量属性动态更改。

这允许整合包、装备、进度系统、命令或其他模组来增加或减少玩家的携带量,而无需改变背包系统的工作方式。

基于“堆叠而非格子”和“面板而非界面”

捆绑而非割裂 使用了两个配套库:

堆叠而非格子 负责处理实际的背包和容量系统。

面板而非界面 为用于查看和管理你所有物品的可移动背包浏览器提供支持。

它们共同使 捆绑而非割裂 能够提供一个更加灵活的背包,同时保留了玩家已经熟悉的 Minecraft 背包部分。

携带适合的东西,而不是适合任意格子的东西。

在容量之下,不存在隐藏的兼容性格子上限。如果玩家有容量 N,后端和 NeoForge 物品处理器视图可以增长以表示 N 个不同的、数量为一的 64 堆叠实体(仅受限于 Java 实际的整数/内存限制)。快照分块和原版的 36 索引投影只是传输/访问的细节,绝不是携带限制。

玩家用法

堆叠而非格子 在保持熟悉的原版背包的同时,增加了一个独立的背包浏览器,用于访问你完整存储的背包物品。

背包浏览器

打开你的普通背包,点击背包窗口旁边的望远镜手柄即可打开浏览器。

  • 点击望远镜手柄 打开或关闭浏览器。
  • 拖动该手柄 可将其重新定位到屏幕上的任何位置。
  • 浏览器会自动根据可用空间在句柄的左侧、右侧、上方或下方打开。
  • 蓝色手柄 表示浏览器当前已打开。
  • 按下 Ctrl + F 可切换手柄。如果浏览器已打开,此操作也会将其关闭。

同样的可拖动浏览器也出现在容器界面(如箱子和其他背包)上。

取出与存放物品

浏览器代表你的完整逻辑背包,而不是一组固定的存储槽位。

当鼠标悬停在浏览器中的物品上时:

  • 左键点击 将一个合法堆叠放到光标上。
  • 右键点击 取出一半的合法堆叠。
  • 按下你常用的 丢弃 键可丢弃一个物品。
  • 按住 Ctrl 的同时按下丢弃键可丢弃一整组。

要将物品从可见的原版背包移动到后端存储:

  • Ctrl + 左键点击 一个可见的玩家背包格子,可将该组物品收纳入库。
  • 如果你光标上已经携带了一组物品,点击浏览器物品区域的任意位置即可将其收纳。

你也可以从浏览器中取出一个物品放到光标上,然后像平常一样将其放入另一个容器中。

快速移动(Shift-点击)行为

Shift-点击的行为会根据浏览器是否打开而略有不同。

浏览器关闭

Shift-点击的行为与普通 Minecraft 相同,在以下位置之间移动:

  • 27 格主背包
  • 快捷栏
  • 装备栏
  • 当前打开的容器

浏览器打开

当查看你的玩家背包时:

  • Shift-点击一个可见的玩家物品堆叠 将其移入后端存储。
  • Shift-点击一个浏览器条目 将一组后端存储中的物品移动到 27 格主背包中第一个可用的格子。
  • 如果主背包已满,则不会移动任何物品。

当另一个容器打开时:

  • 容器 → 玩家: Shift-点击的物品会直接发送到后端存储。
  • 玩家 → 容器: 容器保持其正常的 Shift-点击行为。

批量容器转移

浏览器包含一个活塞按钮,用于快速移动大量背包物品。

  • 点击粘性活塞可将当前打开容器的内容物提取到你的背包中。
  • 按住 Shift,按钮会变成普通活塞,允许你将玩家背包中的物品倾倒进容器。

键盘快捷键也可用:

  • Ctrl + G - 批量倾倒
  • Ctrl + H - 批量提取

这些快捷键适用于当前打开的菜单,或者在支持的情况下,适用于你正在看向的容器。

分类

原版背包上方的可拖动分类图标用于控制当前选中的分类。

无论分类弹窗是否打开,你都可以滚动浏览分类。

在分类控件上按住 Shift 可将其变为粘性活塞。这会将 27 格主背包 的内容物收纳到后端存储,而不会影响快捷栏。

点击管理标签页可以:

  • 创建分类
  • 编辑分类
  • 删除分类
  • 重新排序分类
  • 配置分类规则
  • 分配快捷栏循环分类
  • 选择自动拾取是否可以使用空的快捷栏格子

分类规则可以匹配:

  • 精确物品
  • #标签
  • @模组ID 命名空间

分类是对同一统一背包的组织视图和规则。它们不会创建单独的存储分区。

整理原版背包

选择分类或排序模式会对 27 格主背包执行一次性整理。

游戏会尽可能将每种匹配物品标识的一组堆叠放入可见的网格中。

之后,背包将完全回到手动模式。堆叠而非格子 不会在后台持续重新整理你的背包。

网格只会在你明确选择另一个分类或排序选项时才会被重新整理。

可用的排序模式包括:

  • 名称
  • 数量
  • 注册表 ID
  • 模组命名空间

你选择的分类和排序模式会随你的玩家数据一起保存。

快捷栏分类循环

九个快捷栏位置中的每一个都可以选择性地分配自己的分类。

快捷栏绑定不会:

  • 预留物品
  • 限制物品的放置位置
  • 自动重新整理背包
  • 持续替换手持物品

相反,它们提供了一种明确的循环操作。

使用可配置的 向前循环 和 向后循环 键,可以将选定的快捷栏位置与你拥有的、符合其分配分类的下一个物品进行交换。

这允许一个快捷栏位置表现得像一个快速访问组,同时仍然是一个普通的 Minecraft 快捷栏格子。

搜索

浏览器包含完整的背包搜索功能。

当搜索框为空时,浏览器显示当前选中分类的物品。

当输入文本时,搜索会扩展至整个背包,不受分类限制。

搜索支持:

  • 物品显示名称
  • 完整注册表 ID
  • 使用 @模组ID 的模组命名空间
  • 使用 #标签 的物品标签
  • 可选地,缓存的提示文本