TileRequester
事实基准:
/Users/evlos/a/mirror/BuildCraft(master,minecraftVersion = 1.7.10)逐行读源码。
注册信息
| 属性 | 值 | 来源 |
|---|---|---|
| TileEntity 注册名 | net.minecraft.src.buildcraft.commander.TileRequester |
BuildCraftRobotics.java:324-325 |
| 注册类 | buildcraft.robotics.TileRequester |
同上 |
| 所属 modid | BuildCraft|Robotics |
BuildCraftRobotics.java:154 @Mod |
| 关联方块 | Requester 方块 | BuildCraftRobotics.java:325 同块 |
| 父类 | TileBuildCraft |
robotics/TileRequester.java:26 |
| 实现接口 | IInventory / IRequestProvider / ICommandReceiver |
同上 |
| 是否配置门控 | 否(无条件注册) | BuildCraftRobotics.java:325 |
槽位数量与布局
robotics/TileRequester.java:28-31:
public static final int NB_ITEMS = 20;
private final SimpleInventory inv = new SimpleInventory(NB_ITEMS, "items", 64);
private final SimpleInventory requests = new SimpleInventory(NB_ITEMS, "requests", 64);
两个并列的 20 槽 SimpleInventory,NB_ITEMS = 20:
| 字段 | 槽数 | 单槽上限 | 内部名 | 用途 |
|---|---|---|---|---|
inv |
20 | 64 | "items" |
实际存放的物品(发来的货) |
requests |
20 | 64 | "requests" |
请求清单(想要什么) |
⚠️ getSizeInventory() 只返回 inv 的 20(:61-62),
即 IInventory 契约上只暴露 20 槽;requests 是内部字段,
不是 GUI 里额外 20 格。
处理速率 / 耗时
robotics/TileRequester.java 没有写死「N tick 一次」的节拍常量。
请求由 TileZonePlan 划定的区域 + 运输机器人送达,不断言数字。
GUI / Container 配对
| GUI 类 | Container 类 | 配对处 |
|---|---|---|
buildcraft.robotics.gui.GuiRequester |
buildcraft.robotics.gui.ContainerRequester |
robotics/RoboticsGuiHandler.java:41 |
与机器人 / 运输网络的关系
Requester 实现 IRequestProvider(:26),由 BC 运输机器人(EntityRobot)取货。
相关注册在 BuildCraftRobotics.java:319:
PipeManager.registerPipePluggable(RobotStationPluggable.class, "robotStation");
跨分类引用说明:本条目链到的 bc-robot 属于 BuildCraft 自己的 Entity, 不是「兼容引用」的外来 mod 实体。
网络封包
实现 ICommandReceiver,走 BuildCraft 的 NetworkUtils 命令封包通道。
无独立的 Robotics 专用封包 ID。