QuantumCluster(appeng.me.cluster.implementations.QuantumCluster)
基本信息
| 属性 | 值 |
|---|---|
| 源码 | appeng/me/cluster/implementations/QuantumCluster.java |
| 类声明行号 | 38 |
| 实现接口 | appeng.api.storage.ILocatable(可寻址)与 IAECluster |
| 构造器 | :51 (WorldCoord min, WorldCoord max) |
| 配套计算器 | QuantumCalculator.java:27 |
| 成员 tile 判据 | te instanceof TileQuantumBridge(QuantumCalculator.java:125) |
职责
把量子链接舱 / 量子环方块聚合成「量子桥」。两座桥对齐后,
updateStatus(:66)会在两端之间建立一条真正的网格连接。
跨空间建边(本类最关键的行为)
// QuantumCluster.java:127
AEApi.instance().createGridConnection(sideA.getNode(), sideB.getNode()));
这让两座相距很远(甚至跨维度)的桥逻辑上成为同一张网。
建边后的连接被包进 ConnectionWrapper(getConnection(),:254),
而不是裸 IGridConnection —— 因为量子桥要能在运行时拆开重连,
ConnectionWrapper(me/cache/helpers/ConnectionWrapper.java:15)提供了
setter。
关键方法
| 方法 | 行号 | 说明 |
|---|---|---|
updateStatus(boolean updateGrid) |
66 | 检查对齐 → 建边 / 拆边 |
destroy() |
182 | |
onUnload(WorldEvent.Unload) |
58 | 世界卸载时拆边,防止悬空连接 |
getTiles() |
209 | |
isCorner(TileQuantumBridge) |
213 | 判定某桥是否为包围盒角点 |
getCenter() |
224 | 返回中心 tile |
getOtherSide() |
250 | 对端所在位置(long) |
setUpdateStatus(boolean) |
238 | 门控是否重算 |
getLocatableSerial() |
220 | ILocatable 契约 |
ILocatable 的意义
getLocatableSerial()(:220)返回 long 序列号,使量子桥可以出现在
空间存储(appeng/spatial/,不在本分片)的物品视图里。
对比 CraftingCPUCluster 实现的是 ICraftingCPU(逻辑角色),
QuantumCluster 实现的是 ILocatable(空间寻址角色)。
生命周期钩子
无 IGridCache 钩子(cluster 不是 cache)。它的生命周期由
MBCalculator.calculateMultiblock(me/cluster/MBCalculator.java:29)驱动。
与既有维度的关系
- 成员方块:方块量子链接舱、 方块量子环
- 开关:AEFeature.QuantumNetworkBridge
- 建边机制:me/grid-core 总览