Storage Crate

基本信息

属性 值
注册名 betterstorage:crate
类 net.mcft.betterstorage.tile.crate.TileCrate
TileEntity net.mcft.betterstorage.tile.crate.TileEntityCrate(GameRegistry.registerTileEntity,id container.betterstorage.crate)
材质 Material.wood
硬度 2.0
脚步声 soundTypeWood
收获等级 斧 0(setHarvestLevel("axe", 0))
创造标签 BetterStorage.creativeTab(继承自 TileBetterStorage 构造函数)

来源:src/main/java/net/mcft/betterstorage/tile/crate/TileCrate.java:25-36;TileEntity 注册见 src/main/java/net/mcft/betterstorage/content/BetterStorageTileEntities.java:28。

功能

存储木箱是本 mod 的核心存储方块,也是唯一采用**堆叠池(pile)**模型而非固定槽位的容器:可自由堆叠成 1×1 到 3×3 的任意立方体区域,同一堆的所有木箱共享一份物品数据。

  • 每个木箱提供 TileEntityCrate.slotsPerCrate = 18 个槽位(src/main/java/net/mcft/betterstorage/tile/crate/TileEntityCrate.java:34)
  • 堆叠容量 getCapacity() = numCrates * 18(src/main/java/net/mcft/betterstorage/tile/crate/CratePileData.java:53-55)
  • 物品以 CrateItems 的 Map<ItemIdentifier, ItemStack> 存储,单堆上限 64(getInventoryStackLimit() 返回 64,TileEntityCrate.java:289-292),同种物品数量可远超 64
  • 相邻木箱自动合并为同一堆,可跨越材质差异(材质只影响贴图与配方,见 ContainerMaterial)
  • 支持 Applied Energistics 风格的存储接口(ICrateStorage / ICrateWatcher,src/main/java/net/mcft/betterstorage/api/crate/)
  • 实现了 ILaputaImmobile(Botania 魔力场接口),使木箱不会在魔力场中移动

数值

数值名 值 来源
单箱槽位 18 TileEntityCrate.java:34
单堆最小规模 1 箱 CratePileData.getCapacity()
单堆最大规模 3×3 = 9 箱(容量 162) TileEntityCrate.java:237 的 2 * Math.min(data.getNumCrates(), 3) 行数上限
单堆物品数量上限 64(每种物品一个栈) TileEntityCrate.java:291
比较器输出 0–15,占用槽位比例 TileEntityCrate.java:256 1 + occupiedSlots * 14 / capacity

交互

触发 行为
右键 打开木箱 GUI(openGui → ContainerCrate),GUI 行数为 2 * min(箱数, 3),列数取自容器
比较器读取 返回 1 + 已占用槽位 * 14 / 容量(无物品时 0)
破坏 堆叠内容按 getRandomStacks 随机化掉落
与相邻木箱合并 自动检测并加入同一堆(CratePileCollection)

合成配方

ShapedOreRecipe(src/main/java/net/mcft/betterstorage/misc/Recipes.java:58-67):

o/o
/ /
o/o
字符 物品
o 木板(物品字典 plankWood)
/ 木棍(物品字典 stickWood)

相关条目