NetworkInventoryHandler(appeng.me.storage.NetworkInventoryHandler)
基本信息
| 属性 | 值 |
|---|---|
| 源码 | appeng/me/storage/NetworkInventoryHandler.java |
| 类声明行号 | 51 |
| 实现接口 | appeng.api.util.IMENetworkInventory<T> |
| 泛型约束 | T extends IAEStack<T> |
| 构造器 | :98,两个参数 (IAEStackType<?> type, SecurityCache security) |
| 持有者 | GridStorageCache(见 grid-cache) |
职责
真正的全网存储聚合器。me/storage/ 里其余 22 个类都是围绕它的适配层。
它维护一个 IMEInventoryHandler<T> 列表,并在列表上做跨 handler 的分配。
核心方法
| 方法 | 行号 | 说明 |
|---|---|---|
addNewStorage(IMEInventoryHandler<T> h) |
104 | 注册一个新 handler |
getHandlers() |
108 | 返回 handler 列表 |
injectItems(T input, Actionable, BaseActionSource) |
113 | 跨 handler 分配注入 |
extractItems(T request, Actionable, BaseActionSource) |
312 | 跨 handler 分配抽取 |
getAvailableItems(IItemList, int iteration) |
347 | 聚合所有 handler 的内容 |
getAvailableItems(IItemList, int, Optional<Predicate<T>>) |
353 | 带过滤谓词的重载 |
getAvailableItemsWithPriority(int iteration) |
403 | 按优先级返回 |
getAvailableItem(T request, int iteration) |
455 | 查询单个栈 |
getSortedFuzzyItems(Collection<T> out, T fuzzyItem, FuzzyMode, int iteration) |
517 | 模糊匹配排序 |
getSortedFuzzyItems(:517)是「模糊卡」的实现所在:按
FuzzyMode 决定匹配宽容度,再把候选排序。
权限检查
构造器第 2 个参数是 SecurityCache(:98)。getAccess()(:559)返回
AccessRestriction,注入 / 抽取前会与传入的 BaseActionSource 一起判定。
权限数据来自 SecurityCache。
StorageChannel 缺省
getChannel()(:543)返回 @Nullable StorageChannel。返回 null
表示不受优先级配置约束 —— 与
NetworkMonitor 语义一致。
生命周期钩子
无。本类不是 IGridCache,不参与 tick;它的事件驱动
(GridStorageCache.cellUpdate 等)由 cache 层转发。