promotional bannermobile promotional banner

Minimap Button Collector TBC

Groups your minimap addon buttons behind a single trigger. TBC Classic Anniversary.

File Details

v2.0.0-bcc

  • R
  • Apr 21, 2026
  • 27.85 KB
  • 31
  • 2.5.5
  • Classic TBC

File Name

MinimapButtonCollector-v2.0.0-bcc.zip

Supported Versions

  • 2.5.5

Minimap Button Collector

v2.0.0 (2026-04-21)

Full Changelog Previous Releases

  • feat!: v2.0.0 — side panel layout, settings panel, per-character SavedVariables (#5)
    • feat!: v2.0.0 — side panel layout, settings panel, per-character SavedVariables
      BREAKING CHANGES:
    • Hex overlay removed in favor of a side panel. The new layout is a
      floating grid anchored to a configurable corner of the minimap; the
      minimap is no longer covered while the panel is open. Full rationale
      in docs/adr/0001-drop-hex-overlay-in-favor-of-side-panel.md.
    • SavedVariables schema bumped to v2. The trigger angle moves from the
      global DB to a new MinimapButtonCollectorPerCharDB (each char keeps
      its own trigger position). v1 data is migrated on first v2 login and
      the old DB is preserved under _legacy_v1 as a safety net.
      Highlights:
    • New UI.lua implementation around a clean side panel grid with
      auto-sized rows x cols, 8 px gap, BackdropTemplate background,
      200 ms fade in and out. Panel is parented to UIParent and anchored
      via SetPoint — no Minimap:SetAlpha anywhere in the addon now, which
      eliminates a whole class of conflicts with ElvUI and other skinners.
    • Settings.lua adds a native Blizzard settings panel (/mbc config or
      right-click the trigger). v2.0.0 exposes the panel anchor and an
      About section with version, distribution links and Ko-fi. Behavior
      and Collected buttons sections land in v2.1+ as features arrive.
    • Core.lua migrates schema v1 to v2 on PLAYER_LOGIN, copies the trigger
      angle into the per-char DB, and prints a one-shot chat notice
      announcing the layout change on first v2 login.
    • .toc adds SavedVariablesPerCharacter and Settings.lua.
    • docs/adr/0001 seeds the project's ADR directory with the layout
      decision, Nygard format.
    • README rewrites Features, Usage, Roadmap and adds a Compatibility
      section to reflect the side panel reality.
      Follows: v2.1.0 (per-button hide + reorder), v2.2.0 (search/filter),
      v2.3.0 (Masque support).
      Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
    • chore: apply smoke-test refinements to v2.0.0 PR
      Iteration on feat/v2-side-panel after real-user smoke-testing exposed
      four refinements to apply before merging and tagging.
    1. Default anchor LEFT + new LEFT/RIGHT presets.
      BOTTOMLEFT left the panel centred below the minimap, wasting the
      free space beside a top-right minimap (TBC default). LEFT feels
      natural, grows downward and doesn't collide with chat or action
      bars. LEFT and RIGHT are new beside-the-minimap options on top of
      the four above/below corners.
    2. Settings panel is now a standalone floating frame.
      InterfaceOptionsFrame_OpenToCategory in TBC 2.5.5 didn't actually
      navigate to our category — right-click opened a generic options
      view. The floating frame owns its lifecycle, is drag-movable,
      responds to ESC, and works reliably across the client.
    3. "Close panel when clicking outside" toggle, default ON.
      Reverts the v1 rc5 non-modal decision for v2.0.0 based on user
      feedback. Implementation is a checkbox so anyone preferring the
      older non-modal behaviour can opt out.
    4. Collected LibDBIcon buttons no longer look desaturated.
      The longest debugging thread of this PR. Five iterations tried to
      hide LibDBIcon's decorative textures (TrackingBorder ring and
      UI-Minimap-Background disc) via path match, size heuristics, draw
      layer, and named attributes — each caught more textures but the
      icons kept looking dim.
      Tracing MBB's source showed the correct approach: keep the
      decorations intact (they're what makes the icon read as a button)
      and give the grid enough pitch that adjacent rings don't overlap.
      The real desaturation turned out to be visual contrast from the
      dark panel backdrop — a near-black plate behind colourful icons
      made them read as less vibrant by comparison.
      Final shipping look after another round of iteration: thin gold
      UI-Tooltip-Border on the panel, pale warm-gold fill at 15 % alpha.
      The lighter fill raises pixel luminance where it mixes in, so
      icons stand out against the panel rather than being dimmed by it.
      No dark plate anywhere in the addon.
      Also included:
    • /mbc debug <ButtonName> slash command for diagnosing unusual
      buttons (dumps region layer, size, alpha, vertex colour, tex id).
      Argument case is preserved — the existing /mbc parser's
      :lower() call only applies to the command token, not its arg.
    • MoveAny uses button.border = true (a boolean) rather than a
      texture reference; the border-probing code is guarded with
      type(button.border) == "table" so AdoptButton no longer crashes
      on that pattern.
    • restoreButtons simplified: collected buttons stay permanently
      parented to the panel once adopted, so we no longer reassign
      parent / point / alpha every close — only Hide() them so any
      OnUpdate loop in the owning addon stops firing while the panel
      is down. Panel:Hide() then handles visual disappearance via
      parent-alpha inheritance.
    • Fade animation now touches only the panel (children inherit its
      effective alpha) — fewer fadeEntries, same visual result.
    • CHANGELOG [2.0.0] rewritten to describe the shipping behaviour
      rather than the intermediate iterations.
      Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

    Co-authored-by: Claude Opus 4.7 (1M context) noreply@anthropic.com