跳到正文
烈焰甘蔗Wiki

功能升级(Status / Void / Creative / Redstone / Downgrade / Template)

ModItems 注册的 6 个非存储升级物品。它们与 Upgrade(7 级存储容量升级)共用同一套 5 个升级槽,但作用完全不同。

基本信息

注册名 类 子类型 贴图 注册行
StorageDrawers:upgradeTemplate Item(裸 new Item()) 无 storagedrawers.upgradeTemplate core/ModItems.java:52
StorageDrawers:upgradeStatus ItemUpgradeStatus 2(meta 1 / 2) upgrade_status_level1 / upgrade_status_level2 core/ModItems.java:57
StorageDrawers:upgradeVoid ItemUpgradeVoid 无 storagedrawers.upgradeVoid core/ModItems.java:58
StorageDrawers:upgradeCreative ItemUpgradeCreative 2(meta 0 / 1) upgrade_creative_store / upgrade_creative_vend core/ModItems.java:59
StorageDrawers:upgradeRedstone ItemUpgradeRedstone 3(meta 0 / 1 / 2) upgrade_redstone_combined / _max / _min core/ModItems.java:60
StorageDrawers:upgradeDowngrade ItemUpgradeDowngrade 无 storagedrawers.upgradeDowngrade core/ModItems.java:67

全部 setMaxDamage(0)(不可损坏)、未调 setMaxStackSize(堆叠 64)。每个注册都套一个配置开关(core/ModItems.java:56-66):

物品 配置项(ConfigManager.java) 默认
upgrade enableStorageUpgrades(:342) true
upgradeStatus enableIndicatorUpgrades(:340) true
upgradeVoid enableVoidUpgrades(:346) true
upgradeCreative enableCreativeUpgrades(:348) true
upgradeRedstone enableRedstoneUpgrades(:358) true
upgradeLock enableLockUpgrades true
upgradeSorting enableSortingUpgrades(:356) true
upgradeTemplate / upgradeDowngrade 无开关,永远注册 —

⚠️ 子类型数与分类页记载不一致:本条目的数据以源码为准。ItemUpgradeCreative.iconNames = { "store", "vend" } 只有 2 项,不是 3;ItemUpgradeStatus.iconNames = { null, "level1", "level2" } 有效子类型为 2(meta 0 的图标为 null,getSubItems 跳过)。

功能

升级 生效判定 效果 源码
upgradeVoid TileEntityDrawers.isVoid() → 逐槽 DrawerData.isVoid() / CompDrawerData.isVoid() 槽位进入 void(虚空) 状态:StorageInventory 取物时不再回写数量(inventory/StorageInventory.java:193)、RR 分拣器按整叠接收(DrawerSortingInventory.java:69)、AE2 桥接视为无限(DrawerMEInventory.java:53,74,98) block/tile/TileEntityDrawers.java:477-485;api/storage/attribute/IVoidable.java
upgradeCreative(任意 meta) TileEntityDrawers.isUnlimited() 存取不扣物品,等同无限复制 block/tile/TileEntityDrawers.java:486-494
upgradeCreative(仅 meta 1) TileEntityDrawers.isVending() 售货机模式:TileEntityDrawersComp 的 getMaxCapacity 返回 Integer.MAX_VALUE,且取出分支直接 return block/tile/TileEntityDrawers.java:495-503;block/tile/TileEntityDrawersComp.java:537,546,599
upgradeRedstone(任意 meta) TileEntityDrawers.isRedstone() 让方块变成红石信号源 block/tile/TileEntityDrawers.java:504-512
upgradeStatus(meta 1 / 2) TileEntityDrawers.getEffectiveStatusLevel() 在抽屉正面渲染红石指示灯;等级由装入的 upgradeStatus 的 metadata 决定(取所有已装 upgradeStatus 的最大 metadata,缺省 0) block/tile/TileEntityDrawers.java:162-169
upgradeDowngrade TileEntityDrawers 的容量回退分支 拆掉存储升级,降低容量 block/tile/TileEntityDrawers.java:385
upgradeTemplate 仅作合成材料 无功能 core/ModItems.java:52

⚠️ upgradeCreative 会锁死升级槽:SlotUpgrade.canTakeStack 对 upgradeCreative 返回 false,除非玩家处于创造模式 ⇒ 生存模式下装上去就取不下来了(inventory/SlotUpgrade.java:23-25)。这与 upgrade(canRemoveStorageUpgrade 可拆)不同。

数值

红石升级的三档输出(TileEntityDrawers.getRedstoneLevel())

先按 stack.getItemDamage() 选模式,只取第一个 upgradeRedstone(break):

meta 模式 算法 输出
0 combined 所有启用槽填充率的平均值 ceil(Σratio / active × 14);全满时 15 0–15
1 max 最大填充率 ceil(maxRatio × 14);全满时 15 0–15
2 min 最小填充率 ceil(minRatio × 14);恰好装满时 15 0–15

源码:block/tile/TileEntityDrawers.java:514-533(分派)、:536-554(combined)、:575-585(min)、:587-596(max)。容量为 0 的槽不参与统计;min 模式下容量为 0 的槽直接令 minRatio = 0。

升级槽

属性 值 来源
每抽屉升级槽 5 TileEntityDrawers.java:83 new ItemStack[5]
超过 5 个 addUpgrade 返回 false,发 storagedrawers.msg.maxUpgrades,不消耗 block/BlockDrawers.java:346-348
创造模式安装 不消耗升级物品 block/BlockDrawers.java:358-360
允许装入的升级 upgrade / upgradeStatus / upgradeVoid / upgradeCreative / upgradeRedstone / upgradeDowngrade block/BlockDrawers.java:346-351

合成配方

全部为 ShapedOreRecipe(core/ModRecipes.java)。通用骨架 x y x / y z y / x y x:x=主材料 ×4、y=stickWood ×4、z=upgradeTemplate ×1。

产物 图案 x 额外 来源
upgradeVoid yyy / xzx / yyy Blocks.obsidian y 木棍 ×6 :339-350
upgradeRedstone meta 0(combined) xyx / yzy / xyx dustRedstone — :354-365
upgradeRedstone meta 1(max) xxx / yzy / yyy dustRedstone — :366-377
upgradeRedstone meta 2(min) yyy / yzy / xxx dustRedstone — :378-389
upgradeStatus meta 1 wyw / yzy / xyx w=Blocks.redstone_torch、x=dustRedstone y 木棍、z 模板 :293-306
upgradeStatus meta 2 wyw / yzy / xyx w=Items.comparator、x=dustRedstone y 木棍、z 模板 :307-320
upgradeDowngrade xyx / yzy / xyx Items.flint ×4 — :278-289
upgradeTemplate x x x / x y x / x x x x=stickWood ×8、y=drawerBasic ×1 → 产出 2 — :205-214

⚠️ upgradeCreative 全仓库没有任何配方。grep -rn "upgradeCreative" --include=*.java .(在 StorageDrawers 源码根下)只命中 ModItems.java 的声明/实例化/注册、SlotUpgrade.java:23、TileEntityDrawers.java:490,500、BlockDrawers.java:348 —— 没有一处 addRecipe。即:默认配置下它只出现在创造模式物品栏,无法合成。

交互

触发 行为
右击抽屉装入升级 成功才消耗 1 个;创造模式不消耗;槽位满则拒绝
在升级 GUI 中取出 upgradeCreative 在生存模式下不可取出;upgrade 受 canRemoveStorageUpgrade 约束
拆存储升级 手持 upgradeDowngrade 右击已升级的抽屉
密封的抽屉 装升级仍可用,但存取会被 BlockDrawers.onBlockActivated 的密封分支拒绝

相关条目

  • Upgrade - 7 级存储容量升级(metadata 2–8,斐波那契倍率)
  • Key Items - upgradeLock / shroudKey / quantifyKey / personalKey / tape
  • Full Drawers 4x4 - 5 槽升级的宿主
  • Comp Drawers - 同样支持 5 槽升级
  • 分类抽屉 - upgradeSorting 不在本页(那是 Refined Relocation 集成)
浏览全部模组