跳到正文
烈焰甘蔗Wiki

侧面升级

基本信息

属性 值
注册名 JABBA:upgradeSide
最大堆叠 16
附魔适用 否(setMaxDamage(0))
变体 3 种,由物品 metadata 决定

功能

侧面升级安装在桶的某一个侧面上(sideUpgrades[6] / sideMetadata[6]), 提供该面的功能外观与行为。正面(FRONT,首次贴标签那一面)不能安装。

升级类型

元数据 类型 物品常量 需求(mapReq) 功能
0 STICKER UpgradeSide.STICKER (0x2) -1(无) 该面 isSideSolid() 返回 false;渲染锁 / 标签贴图
1 HOPPER UpgradeSide.HOPPER (0x3) HOPPER 核心升级 每 8 tick 与该面相邻容器自动推/拉
2 REDSTONE UpgradeSide.REDSTONE (0x4) REDSTONE 核心升级 该面输出红石信号

安装时若缺少对应核心升级,发送 FACADE_REDSTONE / FACADE_HOPPER 提示并拒绝。

升级功能详解

STICKER(贴标)

  • 让该面变为非实心(isSideSolid() → false),不影响其他面
  • 客户端在 sideIsLabel(FRONT 或 STICKER)时渲染锁 / 链接 / 幽灵态贴图
  • 不锁定提取。「取出后保留物品类型」(ghosting / keepLastItem)是 空手潜行右键切换的,与 STICKER 无关

HOPPER(漏斗)

子模式存于 sideMetadata 低两位:

值 常量 方向
0 HOPPER_PUSH 桶 → 该升级所在面的相邻容器
1 HOPPER_PULL 该升级所在面的相邻容器 → 桶

方向由「该侧面升级所在的那一面」决定,不是固定的上方 / 下方。

传输节奏:updateEntity() 中 ++nTicks % 8 == 0,即每 8 tick 处理一次; 单次传输上限 setMaxTotalTransferred(16) / setStacksToTransfer(16) / setMaxItemsPerTransfer(16),并以桶内当前物品为过滤条件。 TE 只有在装有 HOPPER 核心升级时才 startTicking() 进入 tick 列表。

⚠️ 源码自带的 hack 注释:applySideUpgrade 给 HOPPER 装的初值是 sideMetadata = 2(复用了红石的 RS_PROP 常量),靠 & 1 掩码才等价于 HOPPER_PUSH。

REDSTONE(红石)

子模式存于 sideMetadata 低两位,由锤子循环切换 RS_FULL → RS_EMPT → RS_PROP → RS_FULL:

值 常量 输出
0 RS_FULL 满时输出 15
1 RS_EMPT 空时输出 15
2 RS_PROP floor(amount/max × 14) + 1;空时 0,满时 15

输出强度由 getRedstonePower(side) 计算,并按 sideSwitch = {1,0,3,2,5,4} 做水平方向镜像映射(保证左右两侧的桶行为对称)。装有 VOID 升级时, 「满」的判定会减去一个 stackAmount。

使用方式

使用方式 触发条件 使用效果 条件/限制
潜行右键点击桶的某一面 手持侧面升级 安装到该面 该面必须为 NONE;HOPPER/REDSTONE 需要对应核心升级
潜行右键点击已装升级的面 手持桶形锤子 移除该面的侧面升级 核心升级被移除时,会连带掉落失去前置的侧面升级
非潜行右键点击该面 手持桶形锤子 切换该面子模式 仅红石 / 漏斗有效

合成配方

addSideUpgrade 模板 " P " / "PBP" / " P ",产出 4 个:

metadata 中心 B 边框 P
0 STICKER slimeball 纸
1 HOPPER 漏斗 plankWood
2 REDSTONE 红石粉 plankWood

相关条目

审计订正记录

[!WARNING] 2026-10-01 回源码核对,以下为已订正的事实错误

原文 正确值 证据
最大堆叠 64 16 ItemUpgradeSide.java:25 setMaxStackSize(16)
STICKER「锁定标签」/「用于标识桶内存储内容」 STICKER 的作用是让该面非实心 + 渲染锁/标签贴图;ghosting 由空手潜行右键切换,与 STICKER 无关 BlockBarrel.java:423-426,460-461,514-515;TileEntityBarrel.java:299,505-508;StorageLocal.java:265-268
HOPPER_PUSH「输出到下方的容器」/ HOPPER_PULL「从上方容器输入」 方向取决于升级所在的那个侧面的相邻方块,与上下无关 TileEntityBarrel.java:187-203,211-218
漏斗传输频率未记录 每 8 tick 一次,单次最多 16 个物品,且以桶内当前物品为过滤条件 TileEntityBarrel.java:184,220-226
「RS_PROP:按存储比例输出信号」 已补精确公式 floor(amount/max × 14) + 1(空 0、满 15),以及水平方向镜像映射 TileEntityBarrel.java:242,261-264
需求列「HOPPER 核心升级 / REDSTONE 核心升级」正确,但未说明 STICKER 无需求 已补 mapReq = {-1,-1,-1,HOPPER,REDSTONE} 的完整语义 UpgradeSide.java:31
缺合成配方 已补全 3 种配方(各产 4 个) RecipeHandler.java:86-89,152-158
浏览全部模组