StorageBusInventoryHandler(appeng.me.storage.StorageBusInventoryHandler)
基本信息
| 属性 | 值 |
|---|---|
| 源码 | appeng/me/storage/StorageBusInventoryHandler.java |
| 类声明行号 | 15 |
| 继承 | extends MEInventoryHandler<T>(me/storage/MEInventoryHandler.java:37) |
| 泛型约束 | T extends IAEStack<T> |
| 构造器 | :17,两个参数 (IMEInventory<T> i, IAEStackType<T> type) |
职责
存储总线专用的 handler。它的存在意义是优先级可见性: 存储总线在 ME 端要显示「按优先级排序的内容」,这与 cell 的排序规则不同。
覆写了什么
| 方法 | 行号 | 与父类的差异 |
|---|---|---|
getAvailableItems(IItemList<T>, int) |
22 | 覆写 |
getAvailableItems(IItemList<T>, int, Optional<Predicate<T>>) |
27 | 覆写 |
getAvailableItemsWithPriority(int iteration) |
63 | 新增 —— 返回 PrioritizedNetworkItemList |
⚠️ 注意:本类没有覆写 getAvailableItemsFilter(父类的 protected 扩展点,
me/storage/MEInventoryHandler.java:156),而是直接覆写两个公开的
getAvailableItems 重载。这与 CellInventoryHandler 的做法不同 ——
两条路都有效,但风格不统一。
getAvailableItemsWithPriority 的归属
该方法也出现在 NetworkMonitor(:147)与
NetworkInventoryHandler(:403)上,返回类型统一为
PrioritizedNetworkItemList。
三者的分工:
| 类 | 角色 |
|---|---|
StorageBusInventoryHandler |
单条总线自己的优先级视图 |
NetworkInventoryHandler |
全网聚合后的优先级视图 |
NetworkMonitor |
IMEMonitor 层面的只读封装 |
生命周期钩子
无。不是 IGridCache。handler 随存储总线 part 的挂载 / 卸载
由 GridStorageCache.addNode / removeNode
(me/cache/GridStorageCache.java:165 / :143)驱动。
与既有维度的关系
- 宿主:存储总线 part
- 读取端:存储监控 part
- 开关:AEFeature.StorageBus
- 聚合方:GridStorageCache