EnergyWatcher(appeng.me.energy.EnergyWatcher)

基本信息

属性 值
源码 appeng/me/energy/EnergyWatcher.java
类声明行号 24
实现接口 IEnergyWatcher(appeng/api/)
构造器 :30,(EnergyGridCache cache, IEnergyWatcherHost host)

职责

「一台设备关心的能量阈值」的持有者,外加回调转发。

双重身份

⚠️ 本类有两个容易混淆的身份:

身份 方法集 元素类型
IEnergyWatcher post(EnergyGridCache)(:35)、getHost()(:39) —
集合 size :44 / isEmpty :49 / contains :54 / iterator :59 / toArray :64 :69 / add(Double) :74 / remove :84 / containsAll :90 / addAll :95 Double(阈值)

源码里没有 implements Set<Double> 声明,但集合方法集是完整的。 add(Double e)(:74)加的是阈值,不是 watcher。

与 EnergyThreshold 的关系

EnergyThreshold(me/energy/EnergyThreshold.java:16)把 (double 阈值, IEnergyWatcher 归属) 打成一对。设备登记阈值时 通常同时做两件事:往本类(集合)加一个 Double, 并让 EnergyThreshold 记住该归哪个 watcher。

⚠️ 具体登记逻辑在 EnergyGridCache 与设备 tile 侧, me/energy/ 包内没有编排代码。

生命周期

阶段 位置
创建 设备 tile 构造时(收 EnergyGridCache 与 IEnergyWatcherHost)
触发 EnergyGridCache 检测到跨档时调 post(...)(:35)
释放 设备 tile 卸载

本类不是 IGridCache,没有 onUpdateTick / addNode / removeNode 等网格钩子。

相关条目