Commit Graph

171 Commits

Author SHA1 Message Date
Brues 28de6fd835 finish UnitInRaid("player") → IsInRaid() sweep
Four more sites: GetUnbuffedRoster + SendChatMessageWide in api.lua,
the loot menu's inRaid local, and the raid module's early-return
guard. Same intent, named helper.
2026-06-27 18:57:21 -05:00
Brues d6951b386e unitframes/buffwatch/libpredict: route aura reads through C_UnitAuras
ClassicAPI's recent C_UnitAuras additions (sourceUnit / sourceGUID /
non-player expirationTime / the PLAYER filter token) finally cover
everything libdebuff:UnitDebuff and :UnitOwnDebuff were doing — caster
attribution, accurate timing for non-player units, and the own-debuffs
filter. Migrating the remaining callers off the libdebuff readers.

- api/unitframes.lua: collapses the debuff render path's three-branch
  if/else into a single C_UnitAuras.GetAuraDataByIndex with a HARMFUL
  or HARMFUL|PLAYER filter selected by the selfdebuff config; tooltip
  slot-finders match by sourceGUID instead of libdebuff's caster flag;
  custom-debuff indicator scan unifies the same way.
- modules/buffwatch.lua: GetBuffData drops the libdebuff fallback;
  tooltip slot-finder mirrors the unitframes pattern.
- libs/libpredict.lua: drops the orphaned UnitHasBuff slot-loop (no
  callers left).
- api/api.lua: pfUI.api.UnitHasBuff tightens from a HELPFUL iteration
  to a single GetAuraDataBySpellName lookup.

Each site that builds a cooldown ring from expirationTime carries the
talent-extension guard — when expirationTime exceeds the dbc base
duration (e.g. Shadow Affinity → SW:P), clamp start to now and use the
remaining time as the effective duration so CooldownFrame_SetTimer
doesn't get a future start it treats as "not yet begun".
2026-06-24 22:41:13 -05:00
Brues ed5ecb1f93 character: durability % per inventory slot
Adds a Fizzle-style durability label to each character pane slot.
Renders at the bottom of the slot icon as "N%" colored by the existing
DURABILITY_THRESHOLD_COLORS table (red < orange < yellow < invasion <
green), or hidden when the item has no durability stat (necks, rings,
trinkets) or the slot is empty.

api/api.lua: new pfUI.api.CreateFontString(f, key, layer, size, flags,
font) helper following the CreateBackdrop pattern — idempotent
get-or-create that attaches the FontString to the parent frame as the
named field. Defaults to pfUI.font_default at C.global.font_size with
OUTLINE on the OVERLAY layer.

skins/blizzard/character.lua: scoreText migrated from the inline
"if not frame.scoreText then ..." block to the new helper as a working
example; new durabilityText created the same way at BOTTOM/size 10.
Durability render added to RefreshCharacterSlot — runs on every
PaperDollItemSlotButton_Update so equip/unequip/repair/damage all
refresh automatically.

api/config.lua + modules/gui.lua: new C.character.inventory.durability
toggle (default "1"). GUI lives under a new top-level "Character" tab
→ "Inventory" sub-tab, leaving room for future "Reputation" / "Skills"
sub-tabs at the same level.
2026-05-29 18:31:58 -05:00
Brues 1fd7895ca7 move away from RAID_CLASS_COLORS dependency 2026-05-28 13:06:00 -05:00
Brues b99f650694 Cap rested xp at 113% on turtle wow 2026-05-27 23:11:44 -05:00
Brues 58609b8c5c phase 1 removing tbc 2026-05-25 18:16:02 -05:00
Brues 1d27f7bed3 class color cleanup 2026-05-23 02:56:00 -05:00
Brues 8e635afeed GetItemCount via C_Item, reagents via C_Spell.GetSpellReagents
Drops the legacy pfUI.api.GetItemCount wrapper (name-based bag walk +
GetItemInfo per slot) entirely — both call sites switch to direct
C_Item.GetItemCount(itemID) calls.

actionbar reagent counter: drops the SPELL_REAGENTS tooltip-scan +
libtipscan dependency. UpdateSlot now does GetActionInfo(slot) →
spellID → C_Spell.GetSpellReagents → reagent itemID, stored per slot.
Counts update via C_Item.GetItemCount(itemID). reagent_counts is
keyed by itemID instead of localized name string. Multi-reagent
spells now resolve cleanly (only first reagent counted, matching old
single-name behavior). Macro and bag-item actions skip cleanly.

questitem: switches to hooksecurefunc("SetItemRef", ...) + the
modern GameTooltip:HasItem / :GetItem pair instead of monkey-patching
_G.SetItemRef and string.find-parsing the "item:NNN" out of the link.
Drops the libtooltip indirection for the regular tooltip path —
GameTooltip:GetItem returns name + itemID directly. AddTooltip
extended to accept the itemID (both callers already had it and were
discarding it).
2026-05-21 16:20:19 -05:00
Brues 82743b0f9a UnitAUra cleanup 2026-05-18 23:42:51 -05:00
Brues 67146ef3a4 begin utilizing ClassicAPI 2026-05-16 13:02:38 -05:00
Meow 9128f02133 Add fill order option for actionbars
- "Row-first" fills buttons left-to-right, top-to-bottom (1,2,3 / 4,5,6)
- "Column-first" fills top-to-bottom, left-to-right (1,3,5 / 2,4,6)
- "Auto" preserves the original behavior based on uneven orientation
2026-04-10 16:33:06 +02:00
Meow 5f9e69933f Revert "Added a fillmode variant to actionbars"
This reverts commit 0838c6ec3a.
2026-04-10 15:26:18 +02:00
Meow 0838c6ec3a Added a fillmode variant to actionbars 2026-04-10 15:24:39 +02:00
Meow 9b97414beb small fix for actionbars to allign properly on uneven numbers. 2026-04-09 20:34:11 +02:00
Meow 7dcac8104f hotfix
use useUiScale CVar to calculate pixel perfect borders
2026-04-01 11:46:57 +02:00
Meow df532862b6 added some nil checks for api.lua 2026-03-31 04:29:39 +02:00
Meow 3ecc52e4cc Revert "Fix for bar layout+alternatives+uneven orientation" 2026-03-30 18:53:48 +02:00
Player-Doite 9e9688072d Fix for bar layout+alternatives+uneven orientation
Fix for bar layout+alternatives+uneven orientation
2026-03-26 19:43:06 +01: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 1402818e62 added missing nil check for api.lua 2026-03-20 23:15:14 +01:00
Meow 313f01f191 fixed a rare NaN lua error 2026-03-11 05:14:35 +01:00
Meow fa7e4f8b40 Range Check: UnitXP mode
Added Range Check Mode dropdown (Vanilla / UnitXP) and UnitXP Range Threshold input field under the 40y-Range Check settings in the GUI
In UnitXP mode, UnitInRange bypasses librange entirely and queries UnitXP("distanceBetween") directly with the configured yard threshold
librange scan loop is disabled when UnitXP mode is active — no TargetUnit cycling, no spellbook scanning, no combat interruption
Fixed UnitInRange referencing librange as an undefined local instead of pfUI.api.librange, which caused silent nil returns
2026-03-04 02:27:11 +01:00
Meow def000a7c4 Refactoring: Nampower Integration & SuperWoW Cleanup
* Replaced SuperWoW GUID with native Turtle WoW GUID in focus system
* Added memoization API for `/pfcast` and `/castfocus` performance boost
* Moved Druid mana bar from superwow.lua to nampower.lua
* Cleaned up superwow.lua - removed duplicate/migrated code
* Updated GUI: "Druid Settings" replaces "SuperWoW Settings" header
* Focus system now standalone - no SuperWoW dependency required
2026-02-16 14:20:31 +01:00
Meow 54355c9019 enhanced merge into master
Final release!
2026-02-04 22:48:30 +01:00
Meow 34f5c3eb02 Version 6.1.0 - Raid/Party Frame Fixes
Bugfixes:
- Fixed 40-yard range check not working for raid/party frames
- Fixed aggro indicator not displaying properly on raid/party frames
- Improved aggro cache to only cache positive results for instant detection
- Fixed HP/Mana not updating with "Use Raid Frames for group" enabled
- Added SuperWoW nil-check for SpellInfo
- Added missing events: PARTY_MEMBER_ENABLE, PARTY_MEMBER_DISABLE, PLAYER_UPDATE_RESTING

UI Improvements:
- Share/Hoverbind buttons now show warning when module is disabled
2026-01-08 12:25:18 +01:00
Meow 5d0e195d1e performance update
performance update
2026-01-03 12:58:31 +01:00
shagu 6e9f1d6b89 api: ignore and skip invalid frame anchors 2025-07-08 21:49:10 +02:00
shagu 3c44018726 api: always write capture index cache 2025-07-07 15:27:12 +02:00
shagu 099c7e1982 api: reduce frame shadow offsets 2025-06-05 22:16:42 +02:00
shagu 8b91fb4ccc api: put custom border onto default backdrop 2025-06-05 22:16:00 +02:00
shagu 48eaf7e875 ui-widgets: increase frame level of blizz borders 2025-06-05 19:29:45 +02:00
shagu 5790ef71b6 api: cache color values for time strings 2024-05-14 08:29:28 +02:00
shagu c6766eeca1 api: set both backdrop border colors in blizz mode 2024-01-06 01:42:43 +01:00
shagu 17ebeb7dc9 api: add function to determine empty tables 2023-11-03 15:10:42 +01:00
shagu ffdbb63110 api: reuse several string variables in cmatch 2023-10-03 13:21:42 +02:00
shagu cea8e750d2 api: make sure anchor exists before aligning to it 2023-02-28 19:09:04 +01:00
shagu 3d9547c340 api: update time string comments 2022-07-02 14:29:14 +02:00
shagu 1bd358eb13 api: use correct combat events for autohide 2022-06-14 19:16:01 +02:00
shagu 1bc5d09327 api: clear events in autohide disable 2022-06-14 18:41:58 +02:00
shagu f13f132021 api: add combat based autohide to api call 2022-06-14 18:32:43 +02:00
shagu b233dc9e1a api: adjust autohide speed on high frame rates 2022-06-14 18:31:32 +02:00
shagu 0214eebf36 core: switch from mousedown to drag functions
Due to crashes/freezes while moving some frames, one possible
reason could be that pfUI was using OnMouseDown and OnMouseUp
to run its frame-moving code. I have noticed better performance
when using the intended functions, OnDragStart and OnDragStop
to move frames.

This commit changes every occurrence of such functions and splits
drag and click into seperate functions where required.
2022-05-07 21:35:52 +02:00
shagu 5987dd2b33 core: add option to use blizzard borders 2021-08-25 18:22:46 +02:00
shagu f525aefb2e api: case insensitive search for item names 2020-11-16 15:50:07 +01:00
shagu 2e816f71d7 api: fix description of slash command query 2020-11-16 15:28:28 +01:00
shagu ec594df203 api: add api to easily register slash commands 2020-11-16 15:22:02 +01:00
shagu 3bd6378de8 api: add function to find slash commands 2020-11-16 15:21:07 +01:00
shagu 5f354e218e api: rewrite rgbhex function
* remove useless caching
* remove variable creation within function
* limit values on all type of inputs
* use only one string.format
2020-10-27 09:50:19 +01:00
shagu 89c27f788a api: limit rgbhex values to 1 2020-10-27 09:01:19 +01:00
shagu 94738bab45 api: add api call to find item in bags 2020-09-04 08:14:55 +02:00