381 Commits

Author SHA1 Message Date
Brues 1510969105 Unused strings 2026-07-11 12:57:07 -05:00
Brues fb5230828c Add Loot History module
A pfUI-native group-loot roll history window built on ClassicAPI's
C_LootHistory backport, adapted from the anniversary Blizzard reference.

- Movable/scrollable window (ESC-closable, Clear button) listing rolled
  items; each row expands to per-player rolls.
- Item icon/name/quality rendered via the !!!ClassicAPI Item mixin
  (Item:CreateFromItemLink + ContinueOnItemLoad), so uncached items load
  asynchronously and repaint their row.
- Winner shown on the collapsed row (name/roll/roll-type) and marked in the
  expanded list with a checkmark left of the name (matches the reference).
- Expansion state keys on the stable rollID; events (FULL_UPDATE /
  ROLL_CHANGED / ROLL_COMPLETE) drive a rebuild while shown, and re-attach
  the scroll child so a growing list scrolls without a /reload.
- Toggle via /loothistory or /lh; optional auto-show on new rolls behind
  loothistory.autoshow (default off).
2026-07-11 00:02:31 -05:00
Brues 2a5f480839 Show addon dependencies in tooltip
Add display of required and optional addon dependencies to the addons tooltip. Introduce AddDependencyLines helper in modules/addons.lua which lists dependencies with color coding: green for loaded, yellow for present but unloaded, and red for missing (uses new T["Missing"]). Store dependency arrays on addon frames (adeps / aoptdeps) using GetAddOnDependencies and C_AddOns.GetAddOnOptionalDependencies. Add translation keys 'Dependencies', 'Optional Dependencies', and 'Missing' to env/translations_enUS.lua.
2026-07-10 20:26:05 -05:00
Brues 967487e283 Utilizing ClassicAPI 1.6.0
commit d63057474083aa67fda2aa28ee6301334ffc4fdf
Author: Brues <5278969+brues-code@users.noreply.github.com>
Date:   Mon Jul 6 00:59:17 2026 -0500

    Use C_Map.GetMapOverlays instead of hardcoded pfMapOverlayData

    ClassicAPI's C_Map.GetMapOverlays reads WorldMapOverlay.dbc directly and
    returns the full overlay list for a zone (explored + unexplored) — the
    data vanilla's GetMapOverlayInfo withholds. mapreveal now iterates it
    straight (named fields: textureName/texturePath/width/height/offsets),
    dropping unpack_hash and the pfMapOverlayData tables entirely.

    Also fixes the explored-check: it compared the full texture path against
    GetMapOverlayInfo's bare-name keys, so the magnifying glass never
    suppressed on explored overlays. Now matches on the bare name.

    Removes ~870 lines of hand-measured overlay data (base + Turtle).

commit ad12c8209a80cd1211fe08e83f7013d24b5efd2d
Author: Brues <5278969+brues-code@users.noreply.github.com>
Date:   Sun Jul 5 23:45:09 2026 -0500

    utilize HookScript from ClassicAPI
2026-07-09 00:56:06 -05:00
Brues 0402db380a logically sort Castbar options 2026-07-08 09:47:13 -05:00
Brues a93e9f530c Add spell name & timer text alignment options for unit frame castbars
Adds per-unit (player/target/focus) dropdowns to align the castbar
spell name (left text) and cast timer (right text) Left/Center/Right.
Both share a castbaralign dropdown; defaults preserve current behavior
(name LEFT, timer RIGHT). Applied at castbar creation, so takes effect
on /reload like the other castbar options.
2026-07-07 16:26:48 -05:00
Brues 439d5a397a eqcompare: numeric InventoryType lookup, drop bagtypes/itemtypes locales
Both sub-tables carried per-locale strings only so pfUI's own code could
match against localized text. ClassicAPI's numeric item APIs replace
both:

- GetBagFamily now reads classID/subClassID from C_Item.GetItemInfoInstant
  and switches on the numbers (class 1 = Container, class 11 = Quiver).
- eqcompare pulls the itemID from GameTooltip:GetItem(), fetches the
  numeric invType via C_Item.GetItemInventoryTypeByID, and looks up the
  destination slot(s) in a numeric slotTable keyed by Enum.InventoryType.
  Pair-slot invtypes (finger / trinket / one-hand weapon) list both
  destinations directly, so the "_other" string-concat hack is gone.

Removes the setglobal INVTYPE_* injection, the tooltip text scan, and
the itemtypes + bagtypes locale sub-tables across all 7 files.
2026-07-01 15:43:03 -05:00
Brues 5524ad3b91 locales: strip 4 dead sub-tables (hunterpaging, interrupts, spells, icons)
Audited every consumer of pfUI_locale[*][key] across the codebase. Four
sub-tables have no non-locale-file readers left:

  - hunterpaging  — old auto-page trigger removed
  - interrupts    — replaced by Nampower SPELL_INTERRUPTED events
  - spells        — replaced by ClassicAPI Spell.dbc lookups
  - icons         — replaced by ClassicAPI C_Spell.GetSpellName / icon path

Removed the entries from all 7 locale files. ~18k dead lines gone,
~70% shrink per file.
2026-07-01 12:13:25 -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
brues-code f0d9dca63f Classic API Focus (#2)
* focus: migrate to FocusUnit / "focus" token / PLAYER_FOCUS_CHANGED

ClassicAPI now polyfills modern WoW's focus system: FocusUnit / ClearFocus
+ "focus" / "focustarget" unit tokens accepted by every UnitX function +
PLAYER_FOCUS_CHANGED event. Drop pfUI's GUID-juggling pseudo-frame.

- env/tables.lua: add "focus" and "focustarget" to pfValidUnits — the
  focus frames now follow the standard event-driven CreateUnitFrame path
  with f.label = "focus"
- modules/focus.lua: rewrite. Slash commands use FocusUnit / ClearFocus
  directly; no more manual frame.label/unitname/id manipulation. /focus
  <name> still does a target-swap to resolve names → units, then
  FocusUnit("target") captures the GUID before the target is restored.
  PLAYER_FOCUS_CHANGED triggers immediate frame refresh on assign/clear.
- api/unitframes.lua: delete the pseudo-focus block (per-tick "scan all
  units for matching name" loop) and the "focus"/"focustarget" special-
  case in the visibility branch — "focus" is now a real token.
- modules/castbar.lua: bind the focus castbar to unitstr = "focus" once;
  drop the OnUpdate that synced pfUI.castbar.focus from
  pfUI.uf.focus.label/unitname. UnitGUID("focus") resolves at read time.
- Drop C_Minimap.SetFocusByGUID / SetFocusByName / ClearFocus calls —
  C_Minimap subscribes to PLAYER_FOCUS_CHANGED on its own.

Net -183 lines. Focus stops being a pfUI-special pseudo-frame and
becomes "just another unit token" — same treatment as target/player.

* add nameplate to valid units

---------

Co-authored-by: Brues <5278969+brues-code@users.noreply.github.com>
2026-05-27 20:35:15 -05:00
Brues ba566cdd53 phase 2 removing tbc
Strip dead pfUI.client > 11200 and pfUI.expansion == "tbc" branches now
that vanilla is the only supported client.

- pfUI.lua: hardcode expansion = "vanilla"; collapse force_region matrix
- compat/vanilla.lua, libs/{libcast,libdebuff,libtotem,libunitscan,
  focus}: drop always-false early-returns
- api/unitframes.lua: delete TargetBuffOnUpdate poller + tbc visibility
  and secure-template branches; click-cast keeps only vanilla path
- api/ui-widgets.lua: unconditional EffectiveScale divide
- env/tables.lua: drop unused focus/focustarget pfValidUnits entries
- modules/actionbar.lua: simplify EnablePaging, drop ButtonSwitch/
  petvisibility, unwrap prowl block, single keybind-remap path
- modules/{castbar,chat,cooldown,loot,questitem,totems}: unwrap
  always-true conditionals
- modules/nameplates.lua: cfg-only fake-cooldown gate, unwrap overlap/
  clickthrough + mouselook blocks
- modules/friends.lua + skins/blizzard/friends.lua: maxtab = 4
- skins/blizzard/{help,game_menu,questlog}: drop tbc-only branches
2026-05-25 18:40:17 -05:00
Brues 802d47312f pfSellData: drop sell column, use C_Item.GetItemSellPriceByID
Each pfSellData entry was a "sell,buy" string. The sell price duplicates
what C_Item.GetItemSellPriceByID returns from the engine's item DBC, so
it's redundant in our table — only the buy price (curated from real
vendor encounters, not a static item property) needs to live here.

Transformed every [id]="X,Y" entry across env/tables.lua, compat/tbc.lua,
and modules/turtle-wow.lua to [id]=Y via sed. Format is now itemid →
buyPrice (number, copper).

sellvalue.lua: reads sell from C_Item.GetItemSellPriceByID(id), reads
buy from pfSellData[id]. Items that have only a sell price (not in
pfSellData) now display sell-only — previously they got no tooltip
addition because the lookup gated on table membership. Items with
buy-only (sell == 0 in old data) still display buy correctly.

autovendor.lua: replaces the pfSellData[id] gate (which only checked
table membership and unused the parsed sell/buy) with a direct
C_Item.GetItemSellPriceByID > 0 check — the engine's canonical
"is this item sellable to a vendor" answer.
2026-05-21 17:19:29 -05:00
Meow 70b44774ee removed shred from timer list, this is not a debuff! 2026-03-31 16:05:20 +02:00
Meow 3ecc52e4cc Revert "Fix for bar layout+alternatives+uneven orientation" 2026-03-30 18:53:48 +02:00
Player-Doite c29b69d469 Added and fixed form layout+ uneven orientation
Stance/Form/Aura bar layout fix (before wrong), plus support for uneven rows.
2026-03-26 19:06:25 +01:00
Meow a95aeeb637 new module registry to warn players about new modules 2026-03-23 14:41:40 +01:00
Meow 3a1b24ddd5 Update mapreveal overlay data for Turtle WoW
env/tables.lua — Updated pfMapOverlayData to current Turtle WoW WorldMapOverlay.dbc (53 zones, 707 overlays — added 12 new zones, ~40 new exploration areas)

modules/mapreveal.lua — Use separate texture pool to prevent conflicts with Blizzard overlay rendering; removed legacy errata and unused hash logic
2026-03-20 12:37:25 +01: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
Meow 37beca7103 New throttling menu
New throttling menu
2026-02-06 08:07:33 +01:00
Meow 54355c9019 enhanced merge into master
Final release!
2026-02-04 22:48:30 +01:00
shagu cecbb5077e profiles: remove right chat window default settings 2025-07-24 21:23:10 +02:00
shagu 64de4bbfa8 profiles: add new profile with light borders 2025-07-24 21:18:21 +02:00
shagu b3a4897dcd profiles: reduce buffs per row in nostalgia profile 2025-07-22 21:54:37 +02:00
shagu 7b41df16a6 buffwatch: add option to only track own debuffs 2025-07-21 16:34:06 +02:00
shagu e86ea7f05d profiles: use gradient bar textures in nostalgia 2025-07-21 16:28:41 +02:00
shagu e30b61950c profiles: increase gryphon size in nostalgia profile 2025-07-21 16:24:14 +02:00
shagu fe58d891a8 profiles: update nostalgia group sizes 2025-07-21 10:39:08 +02:00
shagu a814962082 profiles: add nostalgia profile 2025-07-20 23:13:08 +02: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
Sunelegy 282b13ae3f translations: update zhCN 2025-06-04 19:46:29 +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 bd49a202fe env: use correct value pair in grid math table 2024-11-08 19:23:33 +01:00
shagu 0e81de4dc2 locales: escape quotes in ruRU locale 2024-11-04 13:17:45 +01:00
shagu 5f62acacb1 libpredict: convert strings into locale tables 2024-11-04 12:25:03 +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
shagu 7e7c2f1df8 profiles: initialize profiles as early as possible 2024-05-19 21:49:58 +02:00
Cameron Weaver (Clutch) 2e8d3e2f7a nameplate: add option to show guild names 2024-02-26 17:41:29 +01:00