Add per-character spellbook collector

New Collectors/Spellbook.lua walks GetNumSpellTabs() and emits one entry
per tab with name, texture, offset, numSpells, and a spells[] array of
{ slot, name, rank, spellID, icon }.

3.3.5/Ascension API differences are handled defensively: name comes
from GetSpellBookItemInfo or vanilla GetSpellName; spellID is parsed
out of GetSpellLink (3.3.5 doesn't return it from GetSpellBookItemInfo);
icon falls back to GetSpellTexture if GetSpellInfo doesn't have it yet.

Wiring:
  - CoaExporter.toc: load Collectors/Spellbook.lua after Talents
  - Core.lua: AssembleExport() includes spellbook for all + spellbook
  - Core.lua: HandleExport() accepts /coae export spellbook
  - Core.lua: debug output shows tab + spell counts
  - UI/ExportFrame.lua: "Spellbook" button in the Character section
This commit is contained in:
2026-05-07 12:08:23 +02:00
parent cc5a87d2fb
commit 6badf0e7ea
5 changed files with 124 additions and 7 deletions
+1
View File
@@ -28,6 +28,7 @@ local function buildSections()
{ title = "Character", items = {
{ "All", function() local ae = ce(); if ae then ae:Export("all") end end },
{ "Talents", function() local ae = ce(); if ae then ae:Export("talents") end end },
{ "Spellbook", function() local ae = ce(); if ae then ae:Export("spellbook") end end },
{ "Gear", function() local ae = ce(); if ae then ae:Export("gear") end end },
{ "Enchants", function() local ae = ce(); if ae then ae:Export("enchants") end end },
}},