Commit Graph
162 Commits
Author SHA1 Message Date
Brues dd8c529463 Move druid mana bar into the unit frame, off nampower
The druid secondary mana bar (shown while shapeshifted into a form that
uses energy/rage) lived in nampower.lua and read base mana through
nampower's GetUnitField. Extract it into the unit frame proper and drive
it with ClassicAPI instead:

- Create pfDruidMana_<unit> as f.druidmana in CreateUnitFrame (player and
  target), lay it out in UpdateConfig from the existing C.unitframes.druidmana*
  keys, and update it in a new pfUI.uf:UpdateDruidMana driven by the frame's
  own base-refresh pass (UNIT_MANA / UNIT_DISPLAYPOWER). No separate event
  frames, no nampower dependency.
- Read mana via UnitPower(unit, 0) / UnitPowerMax(unit, 0), the ClassicAPI
  slot getters that return the mana pool regardless of the active power, so
  it works while in Cat/Bear form.
- Add a "Show Druid Mana Bar Text" toggle (druidmanatext) so the current/max
  readout can be hidden while keeping the bar; config default, GUI checkbox,
  and locale stubs.
- Remove the now-dead block from nampower.lua.
2026-07-24 16:23:28 -05:00
Brues cf3f1e5440 Rework raid self/group frame visibility and rename the solo option
- selfinraid now gates on `not IsInGroup()`, so "show self in raid frames"
  applies only when truly solo (both party and raid suppress it), matching
  the option's actual behavior.
- Hide the redundant group frames when a party is promoted to the raid grid
  (raidforgroup + hide_in_raid), not just in an actual raid. A shared
  hide_group local drives both the party-member and self branches; the
  party-member branch is scoped to cache_raid == 0 so the raidforgroup-mapped
  raid frames (which themselves carry label "party") aren't hidden too.
- Rename "Always Show Self In Raid Frames" to "Show Self In Raid Frames When
  Solo" in gui.lua and all locale files; the four previously-translated
  strings are reset to nil stubs since the meaning changed.
2026-07-24 15:02:38 -05:00
Brues 5ed1d98ecc Raid Pets and Optimized Chat Bubble Styling
commit f19d7402810637fc32460864104cb792ac5af863
Author: Brues <5278969+brues-code@users.noreply.github.com>
Date:   Wed Jul 22 01:05:52 2026 -0500

    remove comment

commit 60f4968f06d19d42bdc6347f98ff4d5a34785e97
Author: Brues <5278969+brues-code@users.noreply.github.com>
Date:   Wed Jul 22 01:05:06 2026 -0500

    Bump ClassicAPI minimum version to 10705

    Update the minimum required ClassicAPI version from 10704 (1.7.4) to 10705 (1.7.5).

commit 088dba4c23f4aa7ce98b9ce9d75bc5892cd40520
Author: Brues <5278969+brues-code@users.noreply.github.com>
Date:   Wed Jul 22 01:04:04 2026 -0500

    Add raid-pet frames: an independent, roster-driven pet grid

    New "raidpet" unitframe type that shows raid members' pets (raidpet1..40)
    in their own movable block (pfRaidPetCluster), off by default. It's a
    flat pool of frames laid out by pfUI.uf.raid:LayoutPets straight from the
    raid roster -- cell N shows raidpet<N> -- so it's fully decoupled from how
    the raid grid arranges its own slots.

    Layout is independent of the raid grid: raidpet carries its own
    width/height plus a Layout section (raidlayout / raidpadding / raidfill),
    and its own Collapse Empty Slots toggle that packs only the pets that
    exist into the leading cells. The raid grid gets the same collapse option
    (sequential slot assignment in AddUnitToGroup instead of by subgroup).
    Collapsed pets re-pack on roster changes and on UNIT_PET so summons and
    dismisses track live without polling.

    Also:
    - unitframes: a "raidpet" branch in UpdateVisibility (hide when the pet is
      out of range or its raid<N> owner is gone), and fix cache_raid so the
      "pfRaid" prefix check doesn't misread pfRaidPet<n> frames (char 7 is
      non-numeric -> nil compare crash).
    - New "Owner Name" text option: on any pet frame (raidpet/partypet/pet) it
      shows the owner's class-colored name so you can tell whose pet it is.
    - unlock: a pfRaidPet drag cluster, a numeric-suffix guard so pfRaid no
      longer matches (and crashes on) pet frames, and RaidPet config mappings.
    - config/gui/translations for all of the above.

commit 52f02c8963fe7ec90f36100ebe069c7807529301
Author: Brues <5278969+brues-code@users.noreply.github.com>
Date:   Mon Jul 20 23:09:06 2026 -0500

    Enumerate chat bubbles via ClassicAPI instead of scanning WorldFrame

    ClassicAPI's C_ChatBubbles.GetAllChatBubbles() walks the engine's own
    bubble list and returns the exact set of live bubble frames, with real
    GetRegions(), so the decoration idiom works unchanged. Replace the
    WorldFrame:GetChildren() sweep and drop the IsBubble heuristic (unnamed
    frame whose first region is the ChatBubble-Background texture) -- the API
    only ever hands back bubbles, so that guess is both redundant and more
    fragile than the engine list. Cheaper too: it iterates only live bubbles
    rather than every world child on each chat event.
2026-07-23 23:08:05 -05:00
Brues 8506f5ffbf Localize the totem tooltip click hints
Add a Left Click / Right Click hint to the totem icon tooltip via
AddDoubleLine, matching the panel.lua convention. Reuses the existing
"Left Click" / "Right Click" strings and adds "Recast Totem" /
"Target Totem" as new translation keys (stubbed across all locales; they
fall back to English until translated).

Also drop the now-orphaned "Range Check Interval" string from every
locale manifest -- the setting was removed when librange stopped
scanning, but its translation stubs were left behind.
2026-07-20 22:16:05 -05:00
Brues 9c529512d1 Replace libtotem with ClassicAPI's native totem tracker
ClassicAPI now ships GetTotemInfo/GetTotemTimeLeft/GetTotemDuration/
TargetTotem plus a native PLAYER_TOTEM_UPDATE event, backed by a
data-driven tracker (slot from the Spell.dbc summon effect, duration from
SpellDuration.dbc, and object-manager death detection). That's exactly
what libtotem hand-rolled -- and better -- so delete the library outright:
its spellid/icon tables, the CastSpellByName/CastSpell/UseAction hooks,
the SPELL_GO commit path, and the active-totem bookkeeping.

modules/totems.lua becomes a thin consumer of the native API:
- Driven by PLAYER_TOTEM_UPDATE; drop the shaman tick-poller that only
  existed because vanilla had no totem event.
- Fix the GetTotemInfo call sites: the native 1st return is tool presence,
  not "summoned", so key active state on name/start instead.
- Right-click a totem icon to TargetTotem it; tooltip shows remaining time
  via GetTotemTimeLeft.

modules/turtle-wow.lua: drop the Totemic Recall handler that poked
libtotem:Clean() -- the native tracker detects the totems despawning and
clears the slots itself. Also clean up the now-orphaned translation string
and a stale libtotem mention in libdebuff's comment.
2026-07-20 21:51:08 -05:00
Brues 1510969105 Unused strings 2026-07-11 12:57:07 -05:00
Brues ee17a39445 updatenotify: isolate fork from upstream pfUI traffic + handle dev builds
Switches the addon-message prefix to "pfUI-brues" so we don't share an
inbound queue with upstream pfUI installs at all — they don't register
a listener for this prefix, so our broadcasts get dropped at the engine
level instead of needing branch-string filtering on their end. The
"main" branch tag stays as a tiebreaker for any future fork variant
sharing this prefix.

Source/dev installs leave the toc Version as "@project-version@" until
release tooling substitutes it. pfUI.lua now stamps those as "dev" with
major/minor/fix=0 instead of silently falling back to 1.2.0, and
updatenotify short-circuits on pfUI.version.string == "dev" before
broadcasting so dev installs don't ship a stale low version to everyone
in guild/raid. Single source of truth — the dev marker lives in pfUI.lua.

URLs centralize via the toc's X-Website. updatenotify and firstrun read
it via GetAddOnMetadata + string.format("%s"), and all eight translation
files swap their hardcoded shagu.org references for the same %s slot.

Drive-bys: groupsize math uses ClassicAPI's IsInRaid/IsInGroup; toc
Author typo "modfied" → "modified".
2026-06-22 13:51:00 -05:00
Meow 33acd7bbf5 added new button "Switch to current zone" 2026-03-12 06:34:33 +01:00
Meow b0f6984f22 Revert "Merge pull request #78 from me0wg4ming/revert-77-sp-haste-display"
This reverts commit 791feed6d0, reversing
changes made to 054149f0e2.
2026-03-01 02:13:25 +01:00
Meow 30d36a5af1 Revert "add optional sp/haste display to player frame" 2026-02-28 22:44:49 +01:00
pepopo978 3373751884 add optional sp/haste display to player frame 2026-02-28 12:41:34 -08:00
shagu 10d24b0ba1 env: update translation tables 2025-06-12 15:34:40 +02:00
shagu ed64c52745 env: update translation tables 2025-06-09 19:26:35 +02:00
shagu 7b4c839dbd env: update translation tables 2025-05-25 15:37:36 +02:00
shagu 967448002c env: update translation tables 2025-05-22 08:47:56 +02:00
shagu d93b2feabd env: update translation tables 2025-03-03 17:56:46 +01:00
shagu cc1c97ccba env: update translation tables 2025-02-15 17:25:44 +01:00
shagu e5b3177e8d env: update translation tables 2025-02-14 23:05:27 +01:00
shagu e5d5a474e7 env: update translation tables 2025-02-04 18:26:26 +01:00
shagu bdcb9dd72a env: update translation tables 2024-12-30 12:38:14 +01:00
bhhandley 50e0e33ff7 minimap: add options for zone and coordinate visibility 2024-12-30 12:36:41 +01:00
shagu a7e4142696 env: update translations 2024-11-03 10:56:50 +01:00
bhhandley d466fdd2db panel: add total line to gold info panel 2024-10-06 10:03:24 +02:00
Artur Morozov f5dcfa6e0e mapcolors: rewrite module implementation 2024-06-07 09:16:02 +02:00
Cameron Weaver (Clutch) 2e8d3e2f7a nameplate: add option to show guild names 2024-02-26 17:41:29 +01:00
Cameron Weaver (Clutch) 3cb2c70385 chat: option to /who search unknown names 2023-07-24 13:13:05 +02:00
Cameron Weaver (Clutch) 31b8f11dc0 nameplates: add option for friendly text class color 2023-03-12 20:06:38 +01:00
shagu 9f19977fce env: update translations 2023-01-27 18:04:32 +01:00
shagu 027730b53b unlock: add info about scrolling to change scale 2023-01-09 18:47:48 +01:00
shagu 5f6d9b0716 env: update translations 2021-12-13 04:12:56 +01:00
shagu ef3af4bc56 unitframes: adjust custom portrait code
* align indentation to codestyle
* remove option to enable custom size
* remove obsolete translations
2021-10-24 14:21:18 +02:00
Mr_Rosh c957fbe638 unitframes: add option for custom portrait size 2021-10-22 19:51:11 +03:00
shagu 0b107eecc6 env: update translations 2021-08-25 19:04:36 +02:00
Ícar 21e78f148a translations: update esES 2021-01-18 20:16:41 +01:00
shagu 4446e99c63 env: update translations 2021-01-18 17:41:31 +01:00
shagu dbfa98da39 env: update translations 2021-01-10 12:47:37 +01:00
shagu e17d026de7 env: update translations 2020-11-16 15:29:23 +01:00
shagu 8f6d5c5989 env: add back old translation values 2020-10-19 18:39:25 +02:00
shagu d77886c78d env: update translations 2020-10-19 18:36:25 +02:00
shagu 1811992925 env: update translations 2020-09-20 13:08:08 +02:00
shagu 99c5ccdef3 env: update translations 2020-09-13 12:26:31 +02:00
DennisWG 09498bc6cb xpbar: add option to not overlap the xpbars 2020-07-28 18:20:47 +02:00
shagu 86b8c092f9 env: update translations 2020-07-23 19:50:57 +02:00
shagu a4ba71b3ad env: update translations 2020-07-12 11:15:56 +02:00
shagu a30c2f60f2 env: update translations 2020-07-01 17:58:39 +02:00
shagu 29cd138de9 env: update translations 2020-07-01 17:33:40 +02:00
shagu c55cf1348b env: update translations 2020-06-21 18:56:58 +02:00
Ícar a04b9d940e translations: update esES 2020-06-21 18:54:50 +02:00
shagu c187e58560 env: update translations 2020-06-16 19:01:15 +02:00
shagu dc5ebfd9ed env: update translations 2020-06-15 19:16:24 +02:00