Bring in 27 module files from Dusk/ShaguTweaks-Extras-ClassicAPI
(8e14bb4): action bar, chat, loot, macro, merchant (Buy Em All),
minimap & world map, tooltip and unit frame modules, with their
textures. Titles are unchanged, so saved toggles carry over.
- Categories: Chat -> Chat & Social, World Map -> Minimap & World Map,
Merchant & Auction -> Merchant; Macro is a new category.
- Texture paths point at ShaguTweaks\img.
- Not merged: Raid Frames, Bag Item Click and Bag Search Bar (Bagshui
covers them), Auction Alt-Buy (aux covers it).
- Chat note when the old ShaguTweaks-extras addon is still enabled.
- English translation keys, notices, license copy, asset provenance,
README, changelog and version 3.7.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
- The map keeps the scale picked with Ctrl+Mousewheel (saved per
character, .4 to 2). It was reset to .85 on every open and by the
Turtle WoW maximize wrapper.
- The title bar drags the window: on Turtle the title sits 17 units above
the frame, so the frame's click area now extends over it.
- With OctoBus loaded, a Transports button left of the Continent dropdown
runs OctoBus' own toggle. Its window is lifted above the map while both
are open and restored when the map closes.
- New Loot History module (/loothistory), ported from brues-code/pfUI and
rebuilt with stock 1.12 widgets, on ClassicAPI's C_LootHistory.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
The feature list now covers Swing Timer and Wand Timer (with the queue
colors and the ClassicAPI requirement), Hide Pet Unit Frame, the XP
numbers, the World Map raid colors, the bounded player cache and Range
Color's 0.2-second check. Swing Timer and Wand Timer join the list of
modules that use ClassicAPI directly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
Two Action Bar options, off by default, ported from brues-code/pfUI's
swing timer and restyled as classic cast bars: dark background,
UI-StatusBar fill, the cast bar border and spark, and the weapon's icon
on the left like Improved Castbar's spell icon.
- Swing Timer: main hand and off hand (shields are skipped).
- Wand Timer: wand Shoot, and Auto Shot for bows, guns and crossbows,
red during Auto Shot's last half second.
ClassicAPI's PLAYER_SWING drives the timers and PLAYER_SWING_RANGE_UPDATE
grays a bar while the target is out of reach. Auto-attack state uses the
1.12 PLAYER_ENTER_COMBAT/PLAYER_LEAVE_COMBAT and START/STOP_AUTOREPEAT_SPELL
events, plus START/STOP_AUTOATTACK on ClassicAPI v1.18.14+. Without
PLAYER_SWING (before v1.15.10) both options do nothing.
The bars stack just above the cast bar. Holding Ctrl+Shift+Alt shows a
preview to drag; right-click resets. The position is saved per character.
pfUI's MIT license is preserved in LICENSES/pfUI-MIT.txt and credited in
THIRD_PARTY_NOTICES.md and the README.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
Hide Pet Unit Frame (Unit Frames, off by default) parents PetFrame to a
frame that is never shown. PetFrame_Update shows the frame again on
every pet change, so a plain Hide() would not last; with the hidden
parent the stock pet code runs unchanged and nothing draws.
XP Bar Text shows current/needed XP like the reputation bar
("1555/3000 51%"), followed by the rested bonus as before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
- libunitscan: expire the shared player cache once per session (180 days
for known classes, 90 for class-less, at most 10,000 players). Every
sighting now stamps an age, so roster and mouseover entries can expire.
- libunitscan: keep a player's GUID only while the class is unknown and
resolve such entries later with GetPlayerInfoByGUID.
- libunitscan: skip the GUID lookup for known chat speakers seen within
the hour, throttle full guild rescans to once a minute, skip UnitGUID
when UnitClass answered, and query ClassicAPI's player cache once per
miss instead of twice.
- Social Colors: drop its separate 180-day cleanup.
- Range Color: use its own 0.2 s timer. Sharing Blizzard's rangeTimer ran
the check every frame for every ranged button.
- Docs/PERFORMANCE.md: document the cache rules.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
- Debuff Timer: hide the native Cooldown's own countdown numbers so the
countdownForCooldowns CVar cannot double the overlay text.
- README: merge the duplicated feature lists, match module names and
default states to the in-game options, link the extra Docs, and state
the recommended ClassicAPI version.
- Docs/CLASSICAPI_UPDATES.md: record the v1.17.7 to v1.18.13 review.
- .gitignore: ignore editor and merge leftovers.
- ShaguTweaks.toc: drop the Russian note from the English-only fork.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
Restore Real Health Numbers as a standalone module with a lazy Vanilla health estimator fallback, keep Big Health presentation-only, clarify the module tooltip, and fix aura dragging for BuffButton0/BuffButton32/TempEnchant1 without StartMoving().
Merge extended movable-frame support into the core module, keep one Ctrl+Shift controller and one alignment grid, preserve saved positions, and retain MIT attribution.