CraftingCPUCluster(appeng.me.cluster.implementations.CraftingCPUCluster)
基本信息
| 属性 | 值 |
|---|---|
| 源码 | appeng/me/cluster/implementations/CraftingCPUCluster.java |
| 类声明行号 | 138 |
| 实现接口 | IAECluster(多方块)与 ICraftingCPU(加工)—— 双重身份 |
| 构造器 | :234 (WorldCoord min, WorldCoord max) |
| 配套计算器 | CraftingCPUCalculator.java:29 |
| 成员 tile 判据 | te instanceof TileCraftingTile(CraftingCPUCalculator.java:123) |
职责
把散落的加工单元方块聚合成一个可被寻址的「CPU」。它同时是: 多方块集群(几何)、加工 CPU(逻辑)、可注入物品的容器(三方角色)。
监听者机制(ICraftingCPU 侧)
| 方法 | 行号 | 事件类型 |
|---|---|---|
initializeDefaultOnCompleteListener() |
265 | protected,返回默认列表 |
addOnCompleteListener(CraftCompleteListener) |
270 | 加工完成 |
addOnCancelListener(CraftCancelListener) |
275 | 加工取消 |
addOnCraftingUpdateListener(CraftUpdateListener) |
280 | 进度更新 |
addListener(IMEMonitorHandlerReceiver, Object token) |
288 | 库存变更 |
removeListener(IMEMonitorHandlerReceiver) |
296 | 同上 |
物品注入
| 方法 | 行号 |
|---|---|
canAccept(IAEStack<?> input) |
366 |
injectItems(IAEStack<?>, Actionable, BaseActionSource) |
371 |
postChange(IAEStack<?> diff, BaseActionSource) |
522,protected |
getInventory() |
300 → MECraftingInventory |
getFinalMultiOutput() |
248 |
resetFinalOutput() |
241 |
markDirty() |
542 |
状态
| 方法 | 行号 | 说明 |
|---|---|---|
updateStatus(boolean updateGrid) |
305 | 推进状态并可回写网格 |
isDestroyed() |
252 | |
getLastCraftingLink() |
256 | |
isCraftingLinkStandalone() |
261 | 独立加工(非附属某个请求) |
destroy() |
312 |
tile 管理
| 方法 | 行号 |
|---|---|
getTiles() |
337 → Iterator<IGridHost> |
addTile(TileCraftingTile) |
341,protected |
与诊断子系统的关系
本类与 CraftingCpuDiagnostics(me/cluster/implementations/CraftingCpuDiagnostics.java:18)
配合记录产出与回收的时间差。该类归入 me/diagnostics 维度 叙述。
me/diagnostics/ 下的 CraftingDiagnosticSessionId(:6)、
CraftingNetworkDiagnostics(:17)提供 session 标识与汇总。
与既有维度的关系
- 成员方块:方块加工单元
- 监控方块:方块加工监控
- 开关:AEFeature.CraftingCpu、 AEFeature.XtremeCraftingCpu
- 索引写入:CraftingGridCache