SavedVariables 擁有持久配置表和遷移。Renderer 擁有渲染的 UI 狀態。IconPool 擁有框架物件。Scheduler 擁有應有的工作。DebugState 擁有 debug/session 快照。輸入:
輸出:
狀態變更: - 可以初始化外掛名稱空間一次 - 不得改變 SavedVariables
輸入:
輸出:
CreateTable、FreezeTable、IsFrozen、泳池助手、安全擦除/release、
穩定的枚舉助手,除錯斷言readSafeFieldreadSafeScalarmarkBoundaryappendBoundaryWarningclearTimer狀態變更:
輸入:
輸出:
UNKNOWN 和 EMPTY狀態變更:
輸入:
輸出:
- 透過參數化 pcall 錯誤隔離來分派對已註冊模組處理程序的調用,確保一個模組處理程序中的故障不會阻止其他註冊者
狀態變更:
輸入:
輸出:
pcall 隔離下進行回呼度調度,確保捕獲作業運行時故障並且不會破壞全域程式碼框架狀態變更:
輸入:
舊版全域變數:EA_Config、EA_Position、EA_Items、EA_AltItems、
EA_TarItems、EA_ScdItems、EA_GrpItems、EA_Pos
輸出:
版本化的活動設定文件
狀態變更:
EAM_DB.revision輸入:
GetFramerate,戰鬥鎖定狀態,選用debugprofilestop輸出:
狀態變更:
輸入:
UNIT_AURA、PLAYER_TARGET_CHANGED、登入/world 事件輸出:
EAM_AURA_STATE_CHANGED 事件透過參數化狀態和 frameName 觸發到 EventRouterAuraStatePool 分配的標準化 AuraState 和 AlertStateauraInstanceID 鍵入的增量感知光環緩存狀態變更:
AuraStatePool輸入:
EAM_AURA_STATE_CHANGED、EAM_COOLDOWN_STATE_CHANGED、EAM_ITEM_COOLDOWN_STATE_CHANGED、EAM_GROUND_EFFECT_STATE_CHANGED 和 EAM_TOTEM_STATE_CHANGED 事件輸出:
-batch/throttled 呼叫包裝在佈局批次控制中的 Renderer.render (Renderer.BeginBatch / Renderer.EndBatch)
- 在 UI 隱藏渲染完成後,透過 state.releaseFunc(state) 回收多類型狀態表以回收非活動狀態(Aura、Cooldown、Item、GroundEffect、Totem)
狀態變更:
輸入:
輸出:
CooldownState 和 AlertState狀態變更:
狀態:
EventAlertMod.toc,不屬於正式執行期模組。LegacyReference/Services/ShadowHostService.lua,只供 CDM/FramePool 歷史決策追溯。LegacyReference/;Renderer 不查找或吸附 ShadowHost。封存原因:
EAM.Services.ShadowHostService == nil 作為零載入契約。輸入:
輸出:
ItemCooldownState 和 AlertState狀態變更:
輸入:
輸出:
狀態變更:
輸入:
輸出:
pcall 隔離和 issecretvalue 檢查的保護,以繞過戰鬥中的限制值 /table 運行時異常狀態變更:
輸入:
輸出:
EAM_GROUND_EFFECT_STATE_CHANGED 事件觸發到 EventRouter 並帶有狀態和 frameNameGroundEffectStatePool 分配的標準化 GroundEffectState 和 AlertState狀態變更:
GroundEffectStatePool輸入:
輸出:
EAM_TOTEM_STATE_CHANGED 事件觸發到 EventRouter 並帶有狀態和 frameNameTotemStatePool 分配的標準化 TotemState 和 AlertState狀態變更:
TotemStatePool輸入:
輸出:
狀態變更:
輸入:
IconRenderState輸出:
Renderer.BeginBatch / Renderer.EndBatch) 以延遲昂貴的 X/Y 佈局計算狀態變更:
輸入:
CLASS_TOKEN_TO_ID)輸出:
SavedVariables 配置變更狀態變更:
輸入:
/eam 指令文本輸出:
狀態變更: - 可呼叫模組API;不得直接編輯服務內部 - 僅透過「Core/SavedVariables」寫入持久警報配置
輸入:
輸出:
DebugSnapshot狀態變更:
輸入:
DebugSnapshotdebug-min、analysis-full、github-issue輸出:
狀態變更:
輸入:
quick/core/boundary/all suite。輸出:
EAM_FLOW_VALIDATION_REPORT schema 1 JSON。EAM_FLOW_TEST_REPORT_JSON。狀態變更:
EAM.db/EAM_DB,但必須以 pcall 保證還原;不得寫入真實 SavedVariables。輸入:
/eam test。輸出:
狀態變更:
PLAYER_REGEN_ENABLED。輸入:
輸出:
邊界:
| 模組 | 輸入 | 輸出 | 禁止 |
|---|---|---|---|
AuraCapabilityService |
build/API surface | backend snapshot | 只看 TOC 判定 |
AuraRuleCompiler |
純設定 DB | stable runtime plan | AuraData/UI |
AuraContainerService |
plan/revision | player/target containers | 戰鬥結構修改 |
NativeAuraRenderer |
AuraButton callback | 綁定 Regions | Aura 狀態推導 |
AuraSoundService |
sound rules | registration IDs | 讀 AuraData |
Native 模式與 AlertManager/一般 Renderer 的契約是「零 Aura state 事件」。
| 模組 | 輸入 | 輸出 | 禁止 |
|---|---|---|---|
Services/TooltipMonitorService |
GameTooltip post-call、MODIFIER_STATE_CHANGED、EAM Popup action |
安全 ID 顯示、脫戰五秒 scalar candidate、action 白名單、SavedVariables 公開 API 呼叫、匿名狀態計數 | 儲存 TooltipData/AuraData/Frame、保留戰鬥候選、讀 UnitAura payload、Hook Blizzard 點擊、模擬右鍵 |
UI/TooltipMonitorMenu |
服務提供的純 scalar candidate | 游標旁 EAM 自有視窗、監控類型按鈕、Aura/未解析 Macro 手動 ID | 直接寫 EAM_DB、secure action attribute、戰鬥中建立或顯示、保存 Blizzard frame |
Tooltip callback 的責任只到「追加文字與更新 candidate」,不可直接開啟 UI;戰鬥中只可追加安全文字,不可更新 candidate。儲存路由固定如下:Spell → spell cooldown;Item → item cooldown;Aura → 使用者選 player/target;Macro → 只提供已安全解析的 spell/item,未解析時由使用者輸入 ID 並選類型。EAM 自有按鈕透過其 OnClick script 提交;只有 added/updated 由正式 Options.notifyConfigChanged() 統一刷新五個下游,unchanged 不刷新。
SavedVariables 擁有持久配置表和遷移。Renderer 擁有渲染的 UI 狀態。IconPool 擁有框架物件。Scheduler 擁有應有的工作。DebugState 擁有 debug/session 快照。輸入:
輸出:
狀態變更: - 可以初始化外掛名稱空間一次 - 不得改變 SavedVariables
輸入:
輸出:
CreateTable、FreezeTable、IsFrozen、泳池助手、安全擦除/release、
穩定的枚舉助手,除錯斷言readSafeFieldreadSafeScalarmarkBoundaryappendBoundaryWarningclearTimer狀態變更:
輸入:
輸出:
UNKNOWN 和 EMPTY狀態變更:
輸入:
輸出:
- 透過參數化 pcall 錯誤隔離來分派對已註冊模組處理程序的調用,確保一個模組處理程序中的故障不會阻止其他註冊者
狀態變更:
輸入:
輸出:
pcall 隔離下進行回呼度調度,確保捕獲作業運行時故障並且不會破壞全域程式碼框架狀態變更:
輸入:
舊版全域變數:EA_Config、EA_Position、EA_Items、EA_AltItems、
EA_TarItems、EA_ScdItems、EA_GrpItems、EA_Pos
輸出:
版本化的活動設定文件
狀態變更:
EAM_DB.revision輸入:
GetFramerate,戰鬥鎖定狀態,選用debugprofilestop輸出:
狀態變更:
輸入:
UNIT_AURA、PLAYER_TARGET_CHANGED、登入/world 事件輸出:
EAM_AURA_STATE_CHANGED 事件透過參數化狀態和 frameName 觸發到 EventRouterAuraStatePool 分配的標準化 AuraState 和 AlertStateauraInstanceID 鍵入的增量感知光環緩存狀態變更:
AuraStatePool輸入:
EAM_AURA_STATE_CHANGED、EAM_COOLDOWN_STATE_CHANGED、EAM_ITEM_COOLDOWN_STATE_CHANGED、EAM_GROUND_EFFECT_STATE_CHANGED 和 EAM_TOTEM_STATE_CHANGED 事件輸出:
-batch/throttled 呼叫包裝在佈局批次控制中的 Renderer.render (Renderer.BeginBatch / Renderer.EndBatch)
- 在 UI 隱藏渲染完成後,透過 state.releaseFunc(state) 回收多類型狀態表以回收非活動狀態(Aura、Cooldown、Item、GroundEffect、Totem)
狀態變更:
輸入:
輸出:
CooldownState 和 AlertState狀態變更:
狀態:
EventAlertMod.toc,不屬於正式執行期模組。LegacyReference/Services/ShadowHostService.lua,只供 CDM/FramePool 歷史決策追溯。LegacyReference/;Renderer 不查找或吸附 ShadowHost。封存原因:
EAM.Services.ShadowHostService == nil 作為零載入契約。輸入:
輸出:
ItemCooldownState 和 AlertState狀態變更:
輸入:
輸出:
狀態變更:
輸入:
輸出:
pcall 隔離和 issecretvalue 檢查的保護,以繞過戰鬥中的限制值 /table 運行時異常狀態變更:
輸入:
輸出:
EAM_GROUND_EFFECT_STATE_CHANGED 事件觸發到 EventRouter 並帶有狀態和 frameNameGroundEffectStatePool 分配的標準化 GroundEffectState 和 AlertState狀態變更:
GroundEffectStatePool輸入:
輸出:
EAM_TOTEM_STATE_CHANGED 事件觸發到 EventRouter 並帶有狀態和 frameNameTotemStatePool 分配的標準化 TotemState 和 AlertState狀態變更:
TotemStatePool輸入:
輸出:
狀態變更:
輸入:
IconRenderState輸出:
Renderer.BeginBatch / Renderer.EndBatch) 以延遲昂貴的 X/Y 佈局計算狀態變更:
輸入:
CLASS_TOKEN_TO_ID)輸出:
SavedVariables 配置變更狀態變更:
輸入:
/eam 指令文本輸出:
狀態變更: - 可呼叫模組API;不得直接編輯服務內部 - 僅透過「Core/SavedVariables」寫入持久警報配置
輸入:
輸出:
DebugSnapshot狀態變更:
輸入:
DebugSnapshotdebug-min、analysis-full、github-issue輸出:
狀態變更:
輸入:
quick/core/boundary/all suite。輸出:
EAM_FLOW_VALIDATION_REPORT schema 1 JSON。EAM_FLOW_TEST_REPORT_JSON。狀態變更:
EAM.db/EAM_DB,但必須以 pcall 保證還原;不得寫入真實 SavedVariables。輸入:
/eam test。輸出:
狀態變更:
PLAYER_REGEN_ENABLED。輸入:
輸出:
邊界:
| 模組 | 輸入 | 輸出 | 禁止 |
|---|---|---|---|
AuraCapabilityService |
build/API surface | backend snapshot | 只看 TOC 判定 |
AuraRuleCompiler |
純設定 DB | stable runtime plan | AuraData/UI |
AuraContainerService |
plan/revision | player/target containers | 戰鬥結構修改 |
NativeAuraRenderer |
AuraButton callback | 綁定 Regions | Aura 狀態推導 |
AuraSoundService |
sound rules | registration IDs | 讀 AuraData |
Native 模式與 AlertManager/一般 Renderer 的契約是「零 Aura state 事件」。
| 模組 | 輸入 | 輸出 | 禁止 |
|---|---|---|---|
Services/TooltipMonitorService |
GameTooltip post-call、MODIFIER_STATE_CHANGED、EAM Popup action |
安全 ID 顯示、脫戰五秒 scalar candidate、action 白名單、SavedVariables 公開 API 呼叫、匿名狀態計數 | 儲存 TooltipData/AuraData/Frame、保留戰鬥候選、讀 UnitAura payload、Hook Blizzard 點擊、模擬右鍵 |
UI/TooltipMonitorMenu |
服務提供的純 scalar candidate | 游標旁 EAM 自有視窗、監控類型按鈕、Aura/未解析 Macro 手動 ID | 直接寫 EAM_DB、secure action attribute、戰鬥中建立或顯示、保存 Blizzard frame |
Tooltip callback 的責任只到「追加文字與更新 candidate」,不可直接開啟 UI;戰鬥中只可追加安全文字,不可更新 candidate。儲存路由固定如下:Spell → spell cooldown;Item → item cooldown;Aura → 使用者選 player/target;Macro → 只提供已安全解析的 spell/item,未解析時由使用者輸入 ID 並選類型。EAM 自有按鈕透過其 OnClick script 提交;只有 added/updated 由正式 Options.notifyConfigChanged() 統一刷新五個下游,unchanged 不刷新。