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 |
木板(物品字典 plankWood) |
/ |
木棍(物品字典 stickWood) |
相关条目
- 木箱堆叠逻辑 -
CratePileData / CrateItems 的容量与随机化实现
- 木箱存储 API - 供 AE 等模组调用的
ICrateStorage 接口