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 层转发。

相关条目