SpatialPylonCluster(appeng.me.cluster.implementations.SpatialPylonCluster)
基本信息
| 属性 | 值 |
|---|---|
| 源码 | appeng/me/cluster/implementations/SpatialPylonCluster.java |
| 类声明行号 | 22 |
| 实现接口 | IAECluster(仅此一个) |
| 构造器 | :32 (DimensionalCoord min, DimensionalCoord max) |
| 配套计算器 | SpatialPylonCalculator.java:23 |
| 成员 tile 判据 | te instanceof TileSpatialPylon(SpatialPylonCalculator.java:91) |
职责
把一列空间柱方块聚合成一根「空间柱」,为空间 IO 通道提供加速。
唯一使用 DimensionalCoord 的 cluster
三个 cluster 里只有它用 DimensionalCoord(:32)而不是 WorldCoord。
因为空间柱可能跨维度堆叠(端面在不同维度)。
对比:
| cluster | 构造器坐标类型 | 源文件:行 |
|---|---|---|
CraftingCPUCluster |
WorldCoord |
:234 |
QuantumCluster |
WorldCoord |
:51 |
SpatialPylonCluster |
DimensionalCoord |
:32 |
关键方法
| 方法 | 行号 | 说明 |
|---|---|---|
updateStatus(boolean updateGrid) |
48 | 重算效率 |
destroy() |
55 | |
getTiles() |
68 | |
tileCount() |
72 | |
getCurrentAxis() |
76 | 当前主导轴向 |
isValid() |
84 | 是否仍构成有效柱 |
getCurrentAxis() 返回 Axis(Minecraft 原生枚举),说明空间 IO 是按轴
加速的 —— 沿同一轴排列的柱体共享一份计算结果。
效率的消费者
SpatialPylonCache(me/cache/SpatialPylonCache.java:31)通过
ISpatialCache 暴露 requiredPower()(:172)与 currentEfficiency()(:177),
数据最终来自本 cluster。见 grid-cache 总览。
覆写了 matchesExistingCluster
SpatialPylonCalculator.java:47 覆写了基类的
matchesExistingCluster(IAECluster, WorldCoord, WorldCoord)(me/cluster/MBCalculator.java:126)。
三个计算器中只有它这么做 —— 因为空间柱需要区分「同一根柱的延伸」与
「另一根柱」,而 CPU / 量子桥不需要。
生命周期钩子
无 IGridCache 钩子。生命周期由 MBCalculator.calculateMultiblock
(me/cluster/MBCalculator.java:29)驱动。
与既有维度的关系
- 成员方块:方块空间柱
- 消费方:方块空间 IO 端口
- 中继:方块空间中继
- 开关:AEFeature.SpatialIO