文件柜(Filing Cabinet)

基本信息

属性 值
注册名 utilitiesinexcess:filing_cabinet
类 com.fouristhenumber.utilitiesinexcess.common.blocks.BlockFilingCabinet(extends BlockContainer)
注册方块数 1(用 meta 表示 3 个档位)
ItemBlock BlockFilingCabinet.ItemBlockFilingCabinet(ModBlocks.java:184)
TileEntity 3 个内部类:Basic / Advanced / Elite
配套物品 utilitiesinexcess:capacity_upgrade(容量升级)
开关 BlockConfig.filingCabinets.enableFilingCabinets(默认 true)

功能

文件柜是本模组功能最复杂的存储方块:它不是"一个箱子加大",而是按物品类型分槽的智能容器——每种物品类型占一个独立槽位,槽位内堆叠到上限。GUI 由 ModularUI2 构建(compat/mui/cabinet/ 下 5 个类),带设置页与升级页。

方块 meta 决定档位,每个档位绑定不同的 TileEntity 内部类:

meta 档位 TileEntity 内部类 槽位(numSlots) 容量(numItems)
0 Filing Cabinet TileEntityFilingCabinet.Basic 256 8192
1 Advanced Filing Cabinet TileEntityFilingCabinet.Advanced 512 8192
2 Elite Filing Cabinet TileEntityFilingCabinet.Elite 128 8192

来源:FilingCabinetsConfig.java:30-45 三个 CabinetConfig 构造实参(new CabinetConfig(256, 8192, true) / (512, 8192, true) / (128, 8192, true));TileEntity 注册见 ModTileEntities.java:87-89。

注意 Elite 档的槽位数(128)少于 Basic(256)——这是 Extra Utilities 的原始设计,不是笔误。

GUI 的同步使用 GTNHLib 的方块状态注册表:BlockFilingCabinet.CabinetOrientationProperty.instance 在 preInit 注册(CommonProxy.java:122-126)。

数值

项目 值
三档基础容量(numItems) 均为 8192
槽位数(numSlots) Basic 256 / Advanced 512 / Elite 128,不因升级而改变
单个容量升级物品增加的总容量 +4096(upgradeCapacity = 4096,FilingCabinetsConfig.java:20)
升级数量上限 14(upgradeCountMax = 14,FilingCabinetsConfig.java:28)
满级总容量 8192 + 14 × 4096 = 65536 个物品
每档独立启停 三个 CabinetConfig 各有 enable 字段,默认全 true

升级机制:GUI 的升级槽放多少个 capacity_upgrade,总容量就增加 数量 × 4096。等级由 getNumberOfUpgrades() 读升级槽的 stackSize 得到(TileEntityFilingCabinet.java:126-129),并被 upgradeCountMax 截断(TileEntityFilingCabinet.java:65, 70)。CabinetInventory 构造时同时收到 numSlots、numItems(基础容量)与 upgradeCapacity 三个参数(TileEntityFilingCabinet.java:109-113、:363-365)——numSlots 是固定的槽位类型上限,升级只扩容量不扩槽位。

getMinimumUpgrades() 会根据已存物品量反推"至少需要几个升级才装得下",用于防止玩家拆掉升级后数据溢出(TileEntityFilingCabinet.java:131-137)。

配置注释明确警告:调小 numSlots 或 numItems 会导致已有文件柜数据丢失(FilingCabinetsConfig.java 的 CabinetConfig 字段注释)。

交互

触发 行为
右键 打开 ModularUI2 文件柜 GUI,含状态页 / 升级页 / 设置页
放入容量升级 每 1 个提升总容量 +4096,最多 14 个
方块状态 朝向属性通过 GTNHLib BlockPropertyRegistry 注册
Waila 由 IWailaDataProvider 相关集成提供信息

合成配方

产物 配方 开关
filing_cabinet meta 0 ici ×3 行:i=铁锭、c=箱子 RecipeConfig.enableFilingCabinetRecipes
filing_cabinet meta 1 mcm ×3 行:m=魔法木材、c=meta 0 同上
filing_cabinet meta 2 ici ×3 行:i=反转金属锭、c=meta 1 同上
capacity_upgrade ×1 d / gcg / d:d=钻石、g=金锭、c=meta 0 RecipeConfig.enableFilingCabinetUpgradeRecipe

来源:RecipeLoader.java:551-595。两个开关默认全为 true。

相关条目