核心升级
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | JABBA:upgradeCore |
| 最大堆叠 | 16 |
| 附魔适用 | 否(setMaxDamage(0)) |
| 变体 | 14 种,由物品 metadata = UpgradeCore 枚举 ordinal 决定 |
功能
核心升级安装在桶的核心槽里(BarrelCoreUpgrades.upgradeList),每种消耗
固定数量的槽位。槽位总数由桶的材质等级决定。
升级类型(UpgradeCore 枚举全量,14 项)
| ordinal | 升级名 | 类型 | 槽位消耗 | 效果 |
|---|---|---|---|---|
| 0 | STORAGE |
存储 | 1 | +1×stacksSize 组容量 |
| 1 | ENDER |
末影 | 2 | 注册到 BSpace,可被调谐叉链接 |
| 2 | REDSTONE |
红石 | 1 | 允许在侧面安装红石输出 |
| 3 | HOPPER |
漏斗 | 1 | 允许在侧面安装漏斗传输,并让 TE 开始 tick |
| 4 | STORAGE3 |
存储 | 3 | +3×stacksSize 组 |
| 5 | STORAGE9 |
存储 | 9 | +9×stacksSize 组 |
| 6 | STORAGE27 |
存储 | 27 | +27×stacksSize 组 |
| 7 | VOID |
虚空 | 2 | 超出容量的新物品被删除 |
| 8 | STORAGE81 |
存储 | 81 | +81×stacksSize 组 |
| 9 | STORAGE243 |
存储 | 243 | +243×stacksSize 组 |
| 10 | CREATIVE |
创造 | 1 | 取出不减数量 |
| 11 | STORAGE729 |
存储 | 729 | +729×stacksSize 组 |
| 12 | STORAGE2187 |
存储 | 2187 | +2187×stacksSize 组 |
| 13 | STORAGE6561 |
存储 | 6561 | +6561×stacksSize 组 |
Type 枚举共 6 种:STORAGE / ENDER / REDSTONE / HOPPER / VOID / CREATIVE。
容量计算(加法,不是乘法)
安装 STORAGE 类升级时,applyUpgrade 循环调用 addStorageUpgrade() 共
slotsUsed 次,StorageLocal.recalcCapacities() 得出:
maxstacks = basestacks × (upgCapacity + 1) // basestacks = stacksSize,默认 64
多个 STORAGE 升级的 slotsUsed 相加成一个 upgCapacity。以默认 64 为例:
| 已装升级 | 累计升级点 | 最大组数 |
|---|---|---|
| 无 | 0 | 64 |
| STORAGE | 1 | 128 |
| STORAGE3 | 3 | 256 |
| STORAGE9 | 9 | 640 |
| STORAGE27 | 27 | 1792 |
| STORAGE81 | 81 | 5248 |
| STORAGE6561 | 6561 | 419648 |
物品提示文本走 description(),对 STORAGE 类型显示 slotsUsed × stacksSize,
即「额外增加多少组」,与上表一致。
特殊功能详解
- ENDER:调用
BSpaceStorageHandler.registerEnderBarrel(),桶进入末影存储网络 - VOID:
setVoid(true)→deleteExcess,容量判定改为getMaxStoredCount() = totalCapacity + stackAmount(留一格缓冲后销毁多余物) - CREATIVE:
setCreative(true)→alwaysProvide,取出不扣数量 - REDSTONE / HOPPER:本身不直接输出信号/传物品,只是允许在侧面安装对应
侧面升级(
applySideUpgrade会检查coreUpgrades.hasRedstone/hasHopper)
使用方式
| 使用方式 | 触发条件 | 使用效果 | 条件/限制 |
|---|---|---|---|
| 潜行右键点击桶 | 手持核心升级 | 安装该升级 | 槽位不足则拒绝;非创造模式消耗 1 个 |
| 潜行右键点击桶 | 目标面已装侧面升级 | 优先走侧面升级的移除分支 | — |
槽位计算
桶的最大核心槽位 = 2^材质等级 - 1(见结构升级条目)。默认 7 级材质时:
| 材质等级 | 0(素桶) | 1 木板 | 2 铁 | 3 金 | 4 钻石 | 5 黑曜石 | 6 圆石 | 7 绿宝石 |
|---|---|---|---|---|---|---|---|---|
| 核心槽位 | 0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 |
因此素桶(等级 0)一个核心升级都装不下。
合成配方
基础核心升级(addCoreUpgrade,模板 " P " / " B " / " P ",P = 活塞):
| metadata | 中心材料 B |
产出 |
|---|---|---|
| 0 STORAGE | 桶形存储方块 | 1 |
| 1 ENDER | transdimBlock(跨维度方块) |
1 |
| 2 REDSTONE | 红石块 | 1 |
| 3 HOPPER | 漏斗 | 1 |
| 7 VOID | 黑曜石 | 1 |
CREATIVE 与全部更大容量的 STORAGE 升级没有基础配方,只能靠拆解/合成获得:
每个 STORAGE 升级 = 3 个上一级 STORAGE 升级(addCoreUpgradeUpgrade),
反向拆解 = 1 个高一级 → 3 个低一级(addCoreUpgradeUpgradeReverse)。
容量升级的合成配方是否注册,取决于目标 slotsUsed 是否 ≤
LEVELS[maxCraftableTier].getMaxCoreSlots()。
相关条目
审计订正记录
[!WARNING] 2026-10-01 回源码核对,以下为已订正的事实错误
| 原文 | 正确值 | 证据 |
|---|---|---|
| 最大堆叠 64 | 16 | ItemUpgradeCore.java:22 setMaxStackSize(16) |
升级类型表缺 STORAGE81 |
枚举共 14 项,含 STORAGE81(Type.STORAGE, 81) |
UpgradeCore.java:20 |
| 「STORAGE3 = 基础 × 3」「STORAGE9 = 基础 × 9」 | 加法:maxstacks = basestacks × (upgCapacity+1),STORAGE3 → 256 组、STORAGE9 → 640 组 |
UpgradeCore.java:45-49;StorageLocal.java:301-303;BarrelCoreUpgrades.java:285 |
| 「基础容量 = stacksSize × 材质等级系数」 | 基础容量就是 stacksSize(默认 64 组),与材质等级无关;材质等级只决定核心槽位数 |
StorageLocal.java:30-31 |
| 槽位表「等级 1(铁)= 1 槽 … 等级 6(绿宝石)= 63 槽」 | 整体错位:等级 1 = 木板 1 槽、2 = 铁 3 槽、…、6 = 圆石 63 槽、7 = 绿宝石 127 槽 | StructuralLevel.java:12-13,27-30,46-48 |
| STORAGE81 在 block 条目中有、此处缺 | 两处现已一致(14 项) | UpgradeCore.java |
| 缺合成配方 | 已补全基础配方 + 逐级 3 合 1 / 拆解规则 | RecipeHandler.java:79-100,120-150 |
| 「REDSTONE:使桶输出红石信号」 | 核心升级本身不输出,只是允许安装红石侧面升级 | BarrelCoreUpgrades.java:292-295;TileEntityBarrel.java:466-473 |
| 「HOPPER:启用自动输入/输出」 | 同上,只是前置许可;实际传输在侧面升级 | BarrelCoreUpgrades.java:297-301 |