PathGridCache(appeng.me.cache.PathGridCache)

基本信息

属性 值
源码 appeng/me/cache/PathGridCache.java
类声明行号 47
实现接口 appeng.api.networking.IPathingGrid
注册 core/Registration.java:546(键 IPathingGrid.class)
构造器 :65

职责

控制器路由状态的持有者。它保存「当前控制器在哪、启动到什么阶段、 各节点要多少通道」,并提供 repath() 作为全网重算的入口。

关键方法

方法 行号 说明
onUpdateTick() 70 推进启动进度 / 通道传播
repath() 352 全网重算路径
isNetworkBooting() 342 启动中
getControllerState() 347 返回 api/networking/pathing/ControllerState
updateNodReq(MENetworkChannelChanged) 323 某节点通道需求变了
getControllerAnimation() 203 供渲染(core/settings/ControllerAnimation)
cycleControllerAnimation(boolean) 207 手动切换动画
setControllerAnimation(ControllerAnimation) 212 写入

repath() 是建边 / 拆边的唯一后果

me/GridConnection.java:254-261:

final IPathingGrid p = this.sideA.getInternalGrid().getCache(IPathingGrid.class);
if (AEConfig.instance.debugPathFinding) { ... }
p.repath();

AEConfig.instance.debugPathFinding 打开时会打坐标 + AELog.printStackTrace(Level.INFO)。 注意 repath() 在 mergeGrids 之后、addConnection 之前调用 (GridConnection.java:251 vs :263-264)。

生命周期

钩子 行号 有实现
onUpdateTick 70 ✅
addNode 150 ✅
removeNode 125 ✅
onSplit 179 ✅
onJoin 186 ✅
populateGridStorage 195 ✅

路径是必须持久化的:拆档后要恢复到原有路由,否则通道会全部重算。

与方块控制器的双向关系

PathGridCache 存控制器坐标,TileController 读它渲染。渲染动画枚举定义在 appeng/core/settings/ControllerAnimation.java(不在本分片范围)。

控制器方块条目:方块控制器。

相关条目