Commit Graph

152 Commits

Author SHA1 Message Date
Brues 63f9b26d91 classicapi: default LATEST to MIN so source builds never soft-nudge
Replaces the 99999999 sentinel with `LATEST = MIN`. The elseif
`< LATEST` then reduces to `< MIN` on source builds, which the
preceding `if` branch always catches first — so the soft-nudge never
fires for unpinned installs. No explicit guard needed.

A source/cloned install previously showed "ClassicAPI v9999.99.99 is
available" because the sentinel leaked into FormatVersion before the
release workflow could patch it. With this layout, source installs are
silent and only properly-pinned release zips trigger the nudge.

Workflow sed broadens to "= .*" so it overwrites the line regardless
of whether the RHS is a digit string or a Lua identifier.
2026-06-22 19:47:57 -05:00
Brues 79003c0c9a minor coloring 2026-06-22 15:41:50 -05:00
Brues 614163ef45 classicapi: hardcode website URL, link to /releases/latest
The earlier change pulled the ClassicAPI URL via
GetAddOnMetadata("!!!ClassicAPI", "X-Website"), but that's only
readable when ClassicAPI is loaded — and the popup that needs the URL
is exactly the case where the dep is absent or out of date. Hardcode
PFUI_CLASSIC_API_WEBSITE as a constant in pfUI.lua instead.

Also points the editbox and chat messages at /releases/latest rather
than /releases/tag/<MIN>. GitHub redirects to the actual latest
release, so users land on something current instead of the version
floor (which may be an ancient tag).
2026-06-22 15:29:09 -05:00
Brues ff98dde670 classicapi: two-tier version check + drop hardcoded github URLs
Splits the ClassicAPI version check into a hard floor (MIN, manual)
and a soft target (LATEST, pinned by the release workflow). Below MIN
pfUI disables itself entirely as before; between MIN and LATEST it
runs normally but fires a delayed chat nudge after PLAYER_LOGIN with
the available update. PLAYER_LOGIN handlers swap to
EventUtil.ContinueOnPlayerLogin so we don't have to spin a frame for
each branch.

URLs centralize on toc X-Website fields. pfUI.lua factors out
ClassicAPIReleaseUrl(version) sourcing from !!!ClassicAPI's metadata;
modules/gui.lua and libs/libdebuff.lua replace hardcoded
me0wg4ming/pfUI links with GetAddOnMetadata(pfUI.name, "X-Website")
lookups.

release.yml gains a pre-package step that queries ClassicAPI's latest
release tag, packs it (X*10000 + Y*100 + Z), and seds only the LATEST
line in pfUI.lua so the published zip ships with the correct soft
target.
2026-06-22 15:06:04 -05:00
Brues 28ce916cc3 bump min ClassicAPI version to 1.4.3 2026-06-22 14:36:02 -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 49712fc542 bump pfUI min version 2026-06-18 23:35:43 -05:00
Brues 465ad13e9a pfUI: derive ClassicAPI version string from PFUI_CLASSIC_API_MIN
The popup text and chat message both had hard-coded "v1.2.0" strings
that fell out of sync every time the constant bumped. Decode the
packed X*10000 + Y*100 + Z form into "vX.Y.Z" via a FormatVersion
helper and substitute it into both messages. The edit-box URL also
deep-links to the matching releases/tag/<version> page so users land
directly on the release they need.
2026-06-17 21:15:07 -05:00
Brues f35ad0cc94 bump PFUI_CLASSIC_API_MIN 2026-06-17 20:57:48 -05:00
Brues 27db97d2c4 bump classicapi min version 2026-06-09 19:36:29 -05:00
brues-code 013fcc6c90 add equipment manager (#3)
* equipmentmanager

* use BAG_UPDATE_DELAYED

* CharacterFrame.backdrop doesn't on creation so check onShow

* adjust button positioning

* Show Equipment Set tooltip

* fix icon select scrolling issue

* Equip Set on double click

* slot tooltips: use location-aware GameTooltip methods

Branch on EquipmentManager_GetLocationData: SetBagItem for bagged items,
SetInventoryItem for equipped, fall back to SetInventoryItemByID for
missing or unresolved entries. Surfaces durability/charges/enchants in
the tooltip when the item is reachable.

Also cache C_EquipmentSet.GetItemLocations once per Refresh and store
it on each slot button instead of re-fetching inside the missing-item
border branch.

* purg esome comments

* use GameTooltip_Hide from !!!classicapi

* moved flyout to character frame

* ignore item icon shows on item slots now

* defer ignored-slot toggles until Save

Toggling a slot's ignored state in the flyout no longer immediately
calls SaveEquipmentSet. Instead the change is recorded in a per-set
pendingIgnoredToggles table; the overlay reflects the effective
state (persisted XOR pending) so the user sees the visual change
right away, and Save commits the toggles by replaying them into
ClassicAPI's session ignored list before SaveEquipmentSet.

Pending toggles clear on Save (committed) and on set deletion.

* overhaul icon picker

* fixed width

* fixed issue where selected icon got cleared out

* correct flyout button order

* backport more equipment manager icons

* refactor window

* fixed gear menu

* remove set cap

* bump minimum classicapi version

* bump minimum version to 1.3.3

* row menu: close on outside click

GLOBAL_MOUSE_DOWN fires regardless of which frame absorbs the click
and (unlike a veil frame) doesn't consume the original event, so
clicking another row's gear closes the old menu and opens the new
one in a single click. The gear's own OnClick handles the same-row
toggle close, since GLOBAL_MOUSE_DOWN's anchorBtn check excludes it.

Bumps minimum ClassicAPI to 1.3.4 for GLOBAL_MOUSE_DOWN /
IsMouseButtonDown.

* use pfUI.path

* comment cleanup

* bump min classicapi version

---------

Co-authored-by: Brues <5278969+brues-code@users.noreply.github.com>
2026-05-31 12:56:30 -05:00
Brues 671b7f3574 use C_AddOns.GetAddOnName 2026-05-30 23:18:16 -05:00
Brues 201a77ccbd IsContainerItemOpenable will now tell us if we can actually open the item 2026-05-29 00:31:53 -05:00
Brues b8da28ebac use IsContainerItemOpenable and bump minimum ClassicAPI version to 1.2.1 2026-05-28 14:59:31 -05:00
Brues 1fd7895ca7 move away from RAID_CLASS_COLORS dependency 2026-05-28 13:06:00 -05:00
Brues 9adc57cae6 prevent load if classicapi is not installed 2026-05-28 01:01:53 -05:00
Brues 0cddd79c55 backwards for compat for external modules that dont know we updated Registering 2026-05-27 19:00:30 -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
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
Meow 5ef01174d6 New module - InnervateCall (only for druids)
- This module will call in group/raid and battleground if you innervated yourself or someone else.
- The module will inform your group/raid/battleground if innervate is ready again.
2026-04-11 21:10:57 +02:00
Meow a95aeeb637 new module registry to warn players about new modules 2026-03-23 14:41:40 +01:00
Meow 424952c3fc fix for report 102
Fix for combat_text https://github.com/me0wg4ming/pfUI/issues/102
2026-03-23 13:02:29 +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 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 d4926a2125 img: add improved blizzard border texture 2025-06-01 23:41:21 +02:00
shagu 2bc2f2aeb1 core: use empty config variable as fallback 2024-05-19 21:49:37 +02:00
shagu b37e8bdc55 core: only set print if not existing 2024-02-28 01:43:16 +01:00
shagu e7f8a2e0be config: use modern profile as default 2023-11-03 15:13:20 +01:00
shagu 38ddca179e core: disable simple chat during cvar setup 2023-11-03 13:03:47 +01:00
shagu ce7222c32a core: allow region overwrites for tooltip font
This also fixes invalid paths on non-vanilla clients, as
the font-path was not parsed through the pfUI.media[] which
translates pfUI to pfUI-tbc on TBC gameclients.
2023-08-08 16:02:23 +02:00
Mr_Rosh df2ac5dc61 tooltip: add option to change font & font size 2023-07-24 13:07:29 +02:00
shagu 6ddd2d1ee9 core: support for zhTW region fonts 2023-06-25 12:03:01 +02:00
shagu e6af9ea6bf core: enable region fonts for unit_names 2023-02-06 10:51:58 +01:00
Pizzahawaiii 0c337d0152 core: add option to change unit name font
Allows changing the font of the unit names, PvP ranks and guild names
(above players' heads) in the general settings. Requires game restart
to be applied.
2022-12-26 10:33:26 +01:00
shagu 9a9d659fa2 fonts: add option to use orignal game fonts 2021-10-11 21:01:57 +02:00
shagu 5987dd2b33 core: add option to use blizzard borders 2021-08-25 18:22:46 +02:00
shagu 2c684e9e91 core: use local variable to check for translations
Some old addons (e.g. ArcHUD2) populate a "T" variable in global space which
made pfUI/ShaguPlates assume the translations would have already been loaded
and further loading has been stopped by this. Now using a local variable as
flag to determine if translations where actually processed or not.
2021-02-11 11:00:09 +01:00
shagu 38c0b4b7f9 core: set dropdown fonts to default size 2020-11-19 16:42:02 +01:00
shagu 7d1ccd6b3c core: remove obsolete font shortcuts 2020-11-19 16:39:14 +01:00
shagu 4dd782c650 core: remove mana color assignment 2020-10-03 00:09:41 +02:00
shagu 7669e64173 core: remove leftover semicolons 2020-08-15 19:29:24 +02:00
shagu 82c2107f42 core: add option to disable addon errors 2020-07-23 18:40:05 +02:00
shagu fe8833a5d8 core: enforce color update 2020-07-10 15:47:38 +02:00
shagu 8062da6c52 core: only initialiźe fonts after bootup 2020-06-08 23:12:08 +02:00
shagu 6e2bcdac42 fonts: use special fonts for zhCN tbc 2020-04-08 09:44:57 +02:00
shagu d029f83843 core: skip specific font for koKR clients 2020-03-30 13:49:09 +02:00
shagu d739c7f0c3 core: overwrite raidcolors only in vanilla clients 2020-03-22 14:19:23 +01:00
shagu 298d0d89ce core: add global variable to enable debug mode 2019-11-10 06:54:35 +01:00