龙箱

基本信息

龙箱(Draconium Chest)是 Draconic Evolution 的复合存储方块,同时具备物品存储 + 自动熔炼 + 能量缓冲三种能力。

属性 值 来源
注册名 draconicevolution:draconiumChest ModBlocks.java:122, 78
类 BlockCustomDrop → TileDraconiumChest DraconiumChest.java:48、CommonProxy.java:236
实现的接口 ISidedInventory、IEnergyReceiver、ICustomItemData TileDraconiumChest.java:34
碰撞箱 (0.0625, 0, 0.0625) → (0.9375, 0.875, 0.9375) DraconiumChest.java:57
硬度 5.0(继承 BlockDE) BlockDE.java:19
爆炸抗性 2000.0 DraconiumChest.java:58
材质 Material.iron DraconiumChest.java:53
脚步声 soundTypeStone DraconiumChest.java:56
创造标签 DraconicEvolution.tabBlocksItems DraconiumChest.java:55

数值

数值名 值 来源
items 数组长度 240 TileDraconiumChest.java:35
对外暴露槽位数 234(items.length - 6) TileDraconiumChest.java:422-423
合成槽位数组 10(itemsCrafting) TileDraconiumChest.java:36
单槽上限 64 TileDraconiumChest.java:490-491
内置能量容量 1,000,000 RF TileDraconiumChest.java:48
单次最大接收能量 10,000 RF TileDraconiumChest.java:48
初始能量 0 EnergyStorage(1000000, 10000, 0)
熔炼完成时间 1600 tick TileDraconiumChest.java:59
熔炼最大燃烧速度 50 TileDraconiumChest.java:58
熔炼进度范围 0 – 1000 TileDraconiumChest.java:52-53
自动投料档位 0 – 3 TileDraconiumChest.java:61,对应 button.de.chestAutoFeed0 – 3

234 而非 240:getSizeInventory() 返回 items.length - 6,即数组末尾 6 个槽位不对外开放(TileDraconiumChest.java:422-423)。这 6 个槽位的用途未在源码注释中说明。

功能

存储黑名单

STORAGE_BLACKLIST(DraconiumChest.java:49-50)禁止三类物品入箱:

黑名单项 说明
tile.thermalexpansion.strongbox Thermal Expansion 强化盒
item.thermalexpansion.satchel Thermal Expansion 背包
tile.draconicevolution:draconiumChest 龙箱自身(防止箱子套箱子)

判定实现(DraconiumChest.java:62-66)使用子串匹配而非精确相等:

public static boolean isStackValid(ItemStack stack) {
    for (int i = 0; i < STORAGE_BLACKLIST.length; i++)
        if (stack.getUnlocalizedName().contains(STORAGE_BLACKLIST[i])) return false;
    return true;
}

因为 getUnlocalizedName() 返回的是 draconicevolution:<name> 形式,任何名字中包含上述子串的物品都会被拒绝——这是一个偏保守但符合预期的实现。

编辑模式

潜行右键切换编辑模式(DraconiumChest.java:70-80),对应本地化键 msg.draconiumChestEditmode。

颜色指示

箱子有 RGB 指示灯,默认 red = 100, green = 0, blue = 150(TileDraconiumChest.java:42-44),可切换红 / 绿 / 蓝 / 黄,对应本地化键 msg.draconiumChestRed / Green / Blue(外加编辑模式下的 EditL1 – EditL4)。

自动化

机制 本地化键
锁定输出槽 button.de.chestLockOutput
自动投料 0–3 档 button.de.chestAutoFeed0 – chestAutoFeed3
分面访问 TileDraconiumChest.java:664 getAccessibleSlotsFromSide(int side)

TileDraconiumChest 实现了 ISidedInventory(TileDraconiumChest.java:34),因此不同朝向暴露不同的可访问槽位。

交互

触发 行为
右键箱子 打开存储 GUI
潜行右键箱子 切换编辑模式(改颜色、锁定输出等)
放入箱子 触发内置熔炼器逻辑,自动处理可熔炼物品
投入燃料 熔炼燃烧速度最高 50(TileDraconiumChest.java:58)
从其他面访问 按朝向分配可访问槽位
接入 FE 网络 作为 IEnergyReceiver 缓冲 1,000,000 RF

相关条目