TileFilteredBuffer

事实基准:/Users/evlos/a/mirror/BuildCraft(master,minecraftVersion = 1.7.10)逐行读源码。

注册信息

属性 值 来源
TileEntity 注册名 net.minecraft.src.buildcraft.transport.TileFilteredBuffer transport/TransportProxy.java:33-35
注册类 buildcraft.transport.TileFilteredBuffer 同上
所属 modid BuildCraft|Transport BuildCraftTransport.java:193 @Mod
关联方块 Filtered Buffer 方块 TransportProxy.java:34 同块
父类 TileBuildCraft transport/TileFilteredBuffer.java:17
实现接口 IInventory 同上
是否配置门控 否(TransportProxy.registerTileEntities() 无条件调用) transport/TransportProxy.java:32-36

⚠️ 它的注册不走 BCRegistry.INSTANCE.registerTileEntity, 而是 TransportProxy 里直接 GameRegistry.registerTileEntity(...)(:34), 因为 Transport 模块没有自己的 BCRegistry 调用点。

槽位数量与布局

transport/TileFilteredBuffer.java:19-20:

private final SimpleInventory inventoryFilters = new SimpleInventory(9, "FilteredBufferFilters", 1);
private final SimpleInventory inventoryStorage = new SimpleInventory(9, "FilteredBufferStorage", 64);

两个 9 槽 SimpleInventory,堆叠上限不同:

字段 槽数 单槽上限 内部名 用途
inventoryFilters 9 1 "FilteredBufferFilters" 过滤器(3×3,存单个过滤配置物品)
inventoryStorage 9 64 "FilteredBufferStorage" 存储(3×3 真实物品)

⚠️ 过滤器槽堆叠上限是 1,存储槽是 64——写条目时不能把两者都写成同一上限。

getSizeInventory() 只返回 inventoryStorage 的 9(:33-35), 即 IInventory 契约只暴露 9 个存储槽;9 个过滤器槽是内部字段。

处理速率 / 耗时

无节拍常量。Filtered Buffer 是纯被动容器——只按过滤器内容放行物品, 自己不搬运、不加工,没有 updateEntity 节拍。不断言数字。

GUI / Container 配对

GUI 类 Container 类 配对处
buildcraft.transport.gui.GuiFilteredBuffer buildcraft.transport.gui.ContainerFilteredBuffer transport/TransportGuiHandler.java:97

网络封包

走 TileEntity 默认 NBT 同步。无独立的 Transport 专用封包 ID。

相关条目