7 Commits

Author SHA1 Message Date
florian.berthold 7e5c58d1ca feat(catalog): wire up Icons collector (TOC + router); fix MysticScrollProbe nil crash 1.0-coa.1 2026-05-29 10:43:54 +02:00
florian.berthold a57bc77de6 Common.lua: surface playerClass in CoaExporterCatalog._meta
Diagnostic so we can tell whether the patched scan actually ran
(if _meta.playerClass is non-Unknown, /reload picked up the new file)
without having to inspect the chat log.
2026-05-09 21:19:24 +02:00
florian.berthold 166eb1ec5e Common.lua: fall back to player's class when entry.Class is missing
Ascension's `C_CharacterAdvancement.GetEntryByInternalID` returns the
active character's *own* class entries with `Class` empty (the API
treats the player's class as implicit), while still returning `Class`
populated for every other class.

The entry-walk gate `if entry and entry.Class then ...` was therefore
silently dropping every talent of whatever class you ran the export
on. A Venomancer alt would correctly capture the 41 *other* classes'
talents/skills but produce zero rows for Prophet itself, leaving the
db.exil.es Venomancer page perpetually missing icons for Rotting Away,
Lure, Envenomed Weapons, and friends.

Cache UnitClass("player") at the start of C.Run and substitute it for
`entry.Class` whenever that field is missing or empty. The bucketing
key in `info.cls` now matches the localized class string (consistent
with how the other 41 classes show up in CoaExporterCatalog.talents).
2026-05-09 21:11:09 +02:00
florian.berthold f9a7ab5beb UI/Markdown: surface spellbook in MD output and sidebar
- New AE:GenerateMarkdownSpellbook(): one section per spell tab
  (General, class, pet) with icon + name + db.ascension.gg link + rank.
  Skips empty tabs.
- /coae export mdspellbook        new slash subcommand
- /coae export md                 now appends a Spellbook section after
                                  Talents in the full wiki page
- UI sidebar: "MD Spellbook" button added under Markdown (Wiki)
2026-05-07 12:20:44 +02:00
florian.berthold 6badf0e7ea 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
2026-05-07 12:08:23 +02:00
florian.berthold cc5a87d2fb UI: left-side nav with grouped sections + Reload UI button
Replaces the cramped two-row button strip with a proper sidebar layout:

  Character        Markdown       Catalog       Scrolls    Tools
  - All            - MD Gear      - Skills      - Scan     - Reload UI
  - Talents        - MD Enchants  - Talents     - Status   - Debug
  - Gear           - MD Full      - All                    - Help
  - Enchants

Section headers in gold; full-width buttons stacked vertically.

The new "Reload UI" button calls ReloadUI() so guildies can flush a
catalog dump to disk without leaving the export window. Debug and Help
buttons route through SlashCmdList["COAE"] so the UI and slash share
one code path.

Frame is 720x500 (was 700x520); the right-side copy-out edit box keeps
its existing CoaExporter_ShowExportFrame() entry point so Core.lua is
unchanged.
2026-05-07 11:34:51 +02:00
florian.berthold 2b97a68317 Initial CoaExporter: merge AscensionExporter + CoA skill/talent dumpers
Folds three previously-separate Lua addons into one for guild-member use:

  - ascension-char-exporter (per-character JSON/Wiki.js Markdown via /ascx)
  - CoA_SkillExporter      (skills/dispels/passives catalog via /skilldump)
  - CoA_TalentExporter     (talent-tree catalog via /talentdumpall)

The two CoA catalog dumpers were ~90% identical entry-walkers. Pulled the
shared C_CharacterAdvancement.GetAllEntries() loop into Catalogs/Common.lua
and have Skills.lua / Talents.lua register collectors that share a single
scan pass (so /coae catalog all walks the entry list once, not twice).

Per-character collectors (Talents, Gear, Enchants, MysticScrolls,
MysticScrollProbe) and the AtlasLootAscension-derived ScrollCatalog data
are kept verbatim, just rebranded.

Slash interface:

  /coae export {all|talents|gear|enchants|mdgear|mdenchants|md}
  /coae catalog {all|skills|talents|dispels [class]|passives [class]|status}
  /coae scrolls {scan|export|reset|status}
  /coae sv on|off | debug | help

Aliases: /coaexp, /ascx, /asxc, plus legacy /skilldump /talentdumpall
/dispels /passives that map to the catalog subcommands.

SavedVariables: CoaExporterSaved, CoaExporterConfig, CoaExporterScrollCache,
CoaExporterCatalog (skills/dispels/levelPassives/talents/_meta).
2026-05-07 10:43:16 +02:00