Commit Graph

370 Commits

Author SHA1 Message Date
Brues be6ae25315 libdebuff/nameplates: drop dead per-aura readers and debuff cache
With every external caller of libdebuff:UnitDebuff / :UnitOwnDebuff
now on C_UnitAuras, the two public per-aura readers and the
nameplate-side cache they were feeding have no consumers.

- libs/libdebuff.lua: removes libdebuff:UnitDebuff (~120 lines),
  libdebuff:UnitOwnDebuff (~75 lines), the _ownDebuffSortFunc helper,
  and the local cache table. The slotOwnership / ownDebuffs /
  allAuraCasts / pendingCasts bookkeeping stays — GetBestAuraCast
  (libpredict) and GetEnhancedDebuffs (CleveRoids) still read it, and
  the event handlers maintain it. GetSlotCaster / GetDebuffSlotMap
  stay too; the DEBUFF_ADDED_OTHER handler and the debug printer use
  them. File goes 2010 → 1870 lines.
- modules/nameplates.lua: deletes PlateCacheDebuffs (was already
  rewritten on C_UnitAuras and unused once the display loop bypassed
  the cache), PlateUnitDebuff, the cachedVerify scaffolding, and the
  nameplate.UnitDebuff / nameplate.CacheDebuffs registrations.
- api/config.lua + modules/gui.lua: drops the now-defunct
  "guessdebuffs" knob — its only effect was gating the dead cache.
2026-06-24 22:41:36 -05:00
Brues fd21b24a74 utilize C_UnitAuras for nameplate auras 2026-06-24 19:14:36 -05:00
Brues 50d06f2e7a nameplates: cachedGuid + percent-mode guard + name text position
- Switch the four GUID reads in OnDataChanged from plate.parent:GetName(1)
  (SuperWoW idiom) to plate.cachedGuid (set by NAME_PLATE_UNIT_ADDED via
  UnitGUID(token)). Move the initial OnDataChanged call out of
  OnConfigChange's CREATE path so it runs after UNIT_ADDED has populated
  cachedGuid; re-add it explicitly in the user-config-change loop.

- Reject GetUnitField's health/maxHealth when maxHealth == 100 — the
  engine writes (hp_percent, 100) into UnitFields for non-detailed units
  (UPDATE_PARTIAL packets carry percent only). Without this guard,
  Nampower's raw field read returns the percent and the nameplate displays
  "5 / 100" as if it were real HP. Mirrors libhealth's heuristic so we
  fall through to its estimator instead.

- New config: nametextpos (LEFT/CENTER/RIGHT, defaults to CENTER).
  Decouple the bar's anchor from the name so the name's JustifyH can
  shift left/right without dragging the bar with it.
2026-06-16 19:53:52 -05:00
Brues 671939fe9e add auto sort on open feature - disabled by default 2026-05-30 00:31:47 -05:00
Brues 6af7da55d6 Reputation Frame: Enhance faction standing bars 2026-05-29 18:49:38 -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 7c5e4a0e08 add Item Count module 2026-05-28 13:24:50 -05:00
Brues 710be52f35 phase 3 removing tbc
Drop the now-vestigial expansion plumbing.

- Delete modules/thirdparty-tbc.lua + its xml Include
- Strip 10 tbc-tagged CreateConfig calls in modules/gui.lua
- Drop the expansion arg from CreateConfig() signature + the disabled-
  entry rendering path that depended on it
- Drop the showdisabled GUI toggle + its default
- Simplify pfUI:RegisterModule / pfUI:RegisterSkin to (name, func) only
- Strip the leading version arg ("vanilla:tbc", etc.) from all 114
  Register call sites
- Delete the pfUI.expansion variable
2026-05-25 18:50:53 -05:00
Meow 56e9dcb8c0 Update config.lua
Added config migration to reset removed 'Show Only Own Debuffs' setting for Unit Frames and Nameplates
2026-04-04 00:50:37 +02:00
Meow aa2cb95ec2 Several changes
Fix stale debuff icons/tooltips on target frame after target swap
Fix debuffs not showing on nameplates for timer-less spells (e.g. Hurricane)
Fix buffwatch timer visually speeding up when another debuff fades
Remove 50ms aura cache (slotMapCache/auraFC) - caused stale debuff data
Remove "Show Only Own Debuffs" from unitframes and nameplates GUI
Force selfdebuff=0 for unitframes/nameplates on login to reset old SavedVariables
2026-03-31 19:51:36 +02:00
Meow 1f72b93ea5 New feature for "Buff" > "Target Debuff Bar"
"Target Debuff Bar" should now correctly show only own debuffs (there will be still debuffs that are not shown up properly like AOE spells or procs)
2026-03-31 07:11:48 +02:00
Meow 491fcd51c8 New option to pick Original or pfui raid marks! 2026-03-31 02:20:53 +02:00
Meow 1e3c260e52 pull request merge
https://github.com/me0wg4ming/pfUI/pull/118
2026-03-23 11:37:31 +01:00
Meow 33acd7bbf5 added new button "Switch to current zone" 2026-03-12 06:34:33 +01:00
Meow fef9f1a515 show attack speed 2026-03-04 19:21:34 +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 f7d177d135 Revert "Add skin for StatCompare and fix BetterCharacterStats" 2026-03-01 07:41:57 +01:00
Meow 544eea9d74 Merge pull request #80 from K0lonel/master
Add skin for StatCompare and fix BetterCharacterStats

Pullrequest by: K0lonel
2026-03-01 02:29:11 +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
Kolonel e20dd00213 Enable statcompare in third-party configurations 2026-03-01 02:25:28 +02: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 bd36d91189 added option to show debuffs only for enemys OR friendly nameplates
added option to show debuffs only for enemys OR friendly nameplates
2026-02-28 21:32:17 +01:00
Meow 236a2fce6c perf/fix: port experimental optimizations + focus rework + raidmarkers
Performance optimizations ported from experimental:
- libdebuff: replace 5s startup timer with next-frame defer
- libdebuff: use arg6 auraSlot directly (Nampower 2.29+) instead of GetDebuffSlotMap lookup
- libdebuff: invalidate slotMapCache on PLAYER_TARGET_CHANGED
- nameplates: detect Nampower 2.27.2+ for GUID-based nameplate lookup

Raidmarkers module ported from experimental:
- added raidmarkers.lua
- added config defaults and GUI section
- registered in modules.xml

focus.lua rework:
- removed CastSpellByNameNoQueue (Nampower's CastSpellByName now supports unit tokens/GUIDs natively)
- /focus Name: TargetByName with correct previous target restore + ClearTarget() fallback
- /focus Name: prefix match via SlashCmdList.TARGET when exact match fails
- suppress UI_ERROR_MESSAGE during targeting attempts

swingtimer fixes:
- non-Hunter ranged bar now fills left->right like MH/OH
- fix 1px artifact on Hunter bar center by using Hide() instead of SetWidth(0.1)
2026-02-22 19:08:37 +01:00
Meow 6f28fb3730 Added warn color for hunters ranged swing timers (hunters only)
Added warn color for hunters ranged swing timers (hunters only)
2026-02-20 16:01:01 +01:00
Meow 92e22becce Added very accurate ranged swing timer.
Added very accurate ranged swing timer.
2026-02-20 15:14:16 +01:00
Meow fe93577825 working swingtimer re-written - no errors on load
working swingtimer re-written - no errors on load >.<
2026-02-19 17:16:48 +01:00
Meow a2cdaeb73c reverting last commit since it caused conflicts.
reverting last commit since it caused conflicts.
2026-02-19 07:31:39 +01:00
Meow 53969ddc01 swing timer fixes and additions
* fixed offhand timer incorrectly showing for 2H weapon users
* fixed sw_texture resolving pfUI.media key correctly instead of passing raw file path
* added proper offhand weapon detection via GetEquippedItem + GetItemStatsField (Nampower), with vanilla API fallback
* added UNIT_DIED event to reset timer when target dies
* added ACTIONBAR_SLOT_CHANGED event to keep HS/Cleave slot cache up to date
* added immediate offhand bar hide when OH weapon is unequipped mid-combat
* added player GUID caching for UNIT_DIED comparison
* added GUI options: texture, font size, show/hide timer text, MH/OH labels, offhand bar, HS/Cleave queue color
* added HS/Cleave queue color coding for Warriors (green = Cleave, yellow = Heroic Strike)
* added unit frame text options: attack speed, min/max damage, unit string, HP/mana display variants, pet name
* removed unreliable dual-wield heuristic guard (mhAge < 0.1)

Co-authored-by: Zedris
2026-02-19 05:04:32 +01:00
Meow b5a7e86ab4 new module named swingtimer
new module named swingtimer
2026-02-18 16:13:17 +01:00
Meow 64c50e9580 some small changes for druid mana bar
some small changes for druid mana bar
2026-02-17 12:54:09 +01:00
Meow b9eaae5a57 improvements for druid mana bar
improvements for druid mana bar
2026-02-17 12:22:01 +01: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
Meow 7c91ccf360 small update
Please read the readme to see what has been changed.
2026-01-27 07:32:16 +01:00
Meow 7898895cf4 timer animation fix
timer animation fix
2026-01-24 02:33:17 +01:00
Meow 8af8809ada new nameplate feature
new nameplate feature
2026-01-21 20:58:38 +01:00
Jrc13245 321fb3c14e disable unfavorable settings interfering with SuperCleveRoidMacros when addon is present 2026-01-13 14:56:02 -05:00
Meow e83ff80538 Version 6.1.1 - Chat & Nameplate Level Fixes
Bugfixes:
- Fixed targeting high-level players overwriting known level with -1
- Chat now shows "??" instead of -1 for unknown levels
- Nameplates now use stored level from database after reload
- Nameplate level color now uses difficulty color when loaded from DB

Config Changes:
- Chat player level display now disabled by default
2026-01-08 19:02:02 +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 7b41df16a6 buffwatch: add option to only track own debuffs 2025-07-21 16:34:06 +02:00
Sleepybear 2953f8ffde unitframes: add options to reposition and resize pvp icon 2025-07-14 23:02:12 +02:00
shagu 124dcf2e8f minimap: add option to set minimap arrow scaling 2025-06-14 19:11:59 +02:00
shagu c30cca2640 raid: add option to display raid group number 2025-06-14 18:49:05 +02:00
shagu 8c291301bc config: enable nameplate combatstate colors by default 2025-06-12 15:31:42 +02:00
shagu e902da1413 nameplates: add new option to define offtanks 2025-06-12 15:27:32 +02:00
shagu 860d5cca48 config: update default raid icon positions 2025-06-09 19:34:22 +02:00
Caelan dcff2b91f1 unitframes: add raid icon offset and alignment options 2025-06-09 19:25:21 +02:00
shagu 51924f0ca0 nameplates: add experimental option to show own debuffs 2025-05-25 14:28:17 +02:00