Skip to content

DragonUI CoA 3.1.4

Choose a tag to compare

@PentSec PentSec released this 24 Sep 01:17
· 326 commits to main since this release

DragonUI CoA 3.1.4

What's Changed

🚀 Ascension/PentSec

  • feat(.toc): now show a DragonUI logo

  • feat(merchant): retail-style vendor window chrome

  • feat(options): add merchant toggle to modules tab

  • feat(modules): add Low HP Alert and Level Up Enhance with i18n & database defaults

  • fix(database): centerName on UnitFrame now is false by default

  • fix(hp_low_alert): self-initializations

  • fix(modules): make #468's Low HP Alert and Level Up Enhance production-ready - #14

  • fix: conflict

  • fix: resolve leftover conflict markers merged into main

  • fix(petpane): format pet stat and attack power tooltips (#469)

  • Update api.lua

  • chore: add upstream sync

  • Update README.md

  • Update DragonUI.toc

  • Update README.md

🔀 Merged from upstream (NeticSoul/DragonUI)

  • feat(questtracker): cap the tracker height #480 - Stop the tracker above the bags or the screen bottom and hide quests that don't fit. - Add an optional Custom Height setting (400-1000) and translate it into all locales.

  • feat(nameplates): editable Modern fonts, text outline toggle and full translations

  • feat(tooltip): hide aura spell IDs by default behind a new Auras option #474

  • feat(worldmap): inn pins with the hearthstone's inn marked, and Dalaran's own map pins - Add innkeeper pins on zone maps, generated from AzerothCore spawns placed by the client's ADT/WMO areas, with NewEra's hearthstone icon. - Mark the inn the hearthstone is bound to, remembered from the innkeeper at bind time and matched by the localized bind name otherwise. - Title Dalaran's inns by their room name from each locale's WMOAreaTable, since they all bind as "Dalaran". - Key Dalaran's pins by floor, which also brings back the Violet Hold entrance that never drew. - Add a Show Inns toggle to the map filter and the options panel, translated into all locales.

  • feat(nameplates): add a modern retail plate style (beta) - New "Nameplate Art" dropdown in the nameplate options: Heritage keeps the DragonUI art, Modern draws retail's nameplate chrome, downported from DragonUI_NewEra. - Modern ships its own toggles for the selection border, the dim overlay on non-targets, the mouseover wash and retail threat colors, and seeds the bar sizes each style is authored against. - Riding along: the health and power fill now crops instead of stretching in both styles, plus fixes for the clickbox size on recycled plates, raid markers going missing, and uninterruptible cast detection.

  • feat(worldmap): localize flight master pins for German and French

  • feat(worldmap): draw the player arrow with the minimap's own texture - Swap the client's 3D arrow model for the flat poi-player texture the minimap already uses. - Hang it off WorldMapPlayer, which the client re-anchors every frame, so position, off-map visibility and canvas scale come for free. - Draw it where the model drew, over the quest pins, and hold it at one size against the canvas scale.

  • fix(merchant): retail-accurate vendor window on top of #459 - Keep the sell-junk icon visible by raising the button above the opaque bottom band once it exists; it tied at the band's frame level and its icon lost the draw order at random. - Detect junk from the link colour instead of GetItemInfo, so uncached grays no longer leave the button disabled. - Stop replacing core's AceDB profile callbacks, which the module registered under the same key and silently disabled RefreshConfig for every module. - Show the quest-starter bang again by matching ITEM_STARTS_QUEST (3.3.5a has no ITEM_SPELL_STARTS_QUEST) and cache the tooltip scan per item. - Build the chrome inside the first MERCHANT_SHOW instead of a frame later, and drop the duplicate per-update pass, the non-existent GET_ITEM_INFO_RECEIVED watcher and the per-update O(n^2) region walk. - Use retail's empty-slot recess and slot ring on every row, the buyback slot and the repair/sell buttons, matching New Era. - Keep all repair buttons at 36px with retail's anchors, since 3.3.5a shrinks two of them to 32 when guild-bank repair is available. - Re-run the repair-state updaters after the reskin, so the anvils are grey from the first frame when nothing needs repairing. - Move the insets, money frame and portrait to retail geometry with the marble inset ground, and show the buyback name and price again. - Simplify the lifecycle to the load-once pattern and write only the UIPanelLayout xoffset attribute, like characterpanel.

  • fix(worldmap): hand-in text for completed quests and one shared quest pick

  • fix(worldmap): quest objectives filter uses Blizzard's own checkbox #486

  • fix(nameplates,loot): overlap-free health text, per-spell debuff rules and stuck loot window

  • fix(mainbars): XP/rep bar fills, tick layering and XP tooltips - Crop DFUI XP/rep fills by texcoord so low values stay inside the frame. - Stretch the 16px rep sheets to close the gap under the top border. - Keep DFUI XP/rep bars below the gryphons, like RetailUI. - Raise the exhaustion tick above the XP bar and main bar in both styles. - Unify the XP bar tooltip across styles and give the tick a rest tooltip.

  • fix(collections): shift-click mounts and pets to link them in chat - Insert the spell link into the open chat, or the plain name into the macro editor, from list rows and the info icon.

  • fix(extrabar): dynamic macro icons, equipped border and real item tooltips #481 - Resolve macro icons, the equipped border and item tooltips from the live macro, worn item and owned copy on every refresh (plus UNIT_PET), so the extra bar matches the native bars instead of the static drop-time data and base item links.

  • fix(nameplates): light the Modern mouseover wash on the plate the click will hit - Follow the client's own plate highlight instead of a geometric hit test, since it marks the plate a click selects; in a 1800-sample capture the wash sat on the wrong plate 23% of the time. - Ignore a highlight the cursor is not over and hide it, because turning the camera over a plate strands the client's highlight there and it captured the wash for seconds at a time. - Take the nearest plate when two highlights overlap, and no plate at all while the cursor is over the UI rather than the world. - Test the cursor only against plates that carry a highlight, which drops the per-frame IsMouseOver call on every plate.

  • fix(nameplates): depth bands, hover, selection border and cast fade glitches - Redraw the target highlight on the frame the target flips instead of waiting for the budgeted mass refresh, so the selection border no longer lags on crowded screens. - Keep the cast spell name, icon and shield up until the bar itself hides, so success, interrupt and silence endings fade them together. - Rebuild a plate's frame stack from the plate when depth ordering is turned off, since replaying saved levels let SetFrameLevel's child drag misplace them and dropped plate borders until a reload. - Raise frame levels in +128 steps, this client's per-call cap, so a plate jumping more than eight depth bands (like a new target) actually reaches its band. - Re-seat a plate's depth band when the client's own hover or target lift drags it into the next plate's band. - Pick a single hovered plate for the Modern mouseover wash, preferring the client's own highlight, since IsMouseOver is true for every overlapped plate and the wash could land on the plate behind.

  • fix(modules): make #468's Low HP Alert and Level Up Enhance production-ready

  • fix(actionbars): light up ranked hunter aspects on the extra bar in non-English clients #479

  • fix(characterpanel): keep the settings cog menu open when picking a background and model backdrop

  • fix(unitframes): keep the class icon when Blizzard redraws the focus portrait #430

  • fix(bags): re-check unusable item tints when profession skills change #423

  • fix(questtracker): show the hand-in text on quests that are ready to turn in #454

  • fix(extrabar): cast on right-click like the stock action bars #472

  • fix(characterpanel): center the weapon row on the three weapon slots #417

  • fix(itemquality): size the quality glow so it tints the slot border #408

  • fix(actionbars): stop keybinds firing the form bar after a page change #465

  • fix(micromenu): survive a micro button that ships without all four textures #473

  • fix(characterpanel): tick the gear summary checks as they are toggled #450

  • fix(extrabar): swap hunter aspects to their active icon #447

  • fix(loot): wait for Blizzard to fill the loot frame before updating it #458

  • fix(mainbars): stop the rep bar eating clicks and keep stock bars stock - Park Blizzard's ReputationWatchBar off-screen again after it re-anchors itself #436 - Only re-lay out the bars when mainbars actually applied #463

  • fix(fonts): point ruRU at its own FRIZQT__.TTF so the map coordinates stop erroring #451

  • fix(worldmap): stop the toggle's shadow wiping the frame's bottom rail - The shadow hung off the button at BASE_LEVEL + 5, which outranks the nine-slice on the border itself. - Hang it off the border in ARTWORK like its left twin in pins.lua: still over the terrain, now under the frame art.

  • fix(worldmap): stop a quest row bleeding past the list's gold line - The list clipped flush with the frame's bottom edge, so a map dropped on a fractional pixel showed a row under it. - Raise the bottom clip 2px, mirroring the inset the top already had.

  • fix(mainbars): keep the action bars out of the HIGH strata - Blizzard puts the four MultiBars, BonusActionBarFrame and VehicleMenuBarActionButtonFrame in HIGH, over every window raised to the top of MEDIUM. - Normalise all six to MEDIUM in StabilizeSecondaryBarLayering, plus pUiMainBarArt and ExhaustionTick. - Drop addon.ActionBarFrames from the gryphons' maxLevel: those editor containers sit at level 100 and pushed the art to 115. - Walk the bar list with pairs, so a missing frame no longer truncates the loop.

  • fix(worldmap): show an instance's recommended levels, not its entry gate - minLevel/maxLevel is the range you are allowed to enter at, which reads "70 - 83" on every level-cap raid; the recommended band is what the place was built for. - Cap the top at MAX_PLAYER_LEVEL, since that band runs past the cap as well.

  • fix(worldmap): ship every instance header in every locale

  • fix(unitframes): stop the boss health hook throwing on a non-string unit

  • fix(worldmap): pin flight masters on capital maps, and repaint the filter reliably - Give a capital's own map its flight point: a node named "City, Zone" now also lands on the map named after the city, and one named after nothing but its city ("The Exodar") also lands on the zone around it. - Guard the quest frame lookup in the POI refresh, which threw on a nil row and left the filter's own repaint unreached. - Restore the shared swap badge when re-enabling, so a selected completed quest comes back too.

  • fix(worldmap): rotate the player arrow every frame, and stop fading by default

  • fix(worldmap): hide the list badges with the map pins, and drag from the whole title bar

  • fix(worldmap): map fixes and options for #449, #451, #453 and #455

  • refactor(petpane): tidy the pet stat tooltip formatting

  • refactor(minimap): leave the minimap mask alone when the module is disabled #460

  • perf(nameplates): draw the Modern capsule with 1-3 textures instead of 9 - Pre-render the Modern nine-slices for the seeded 148x16 bar into nameplate-bake.blp, so the background and selection overlays draw with one texture and the fill with three, taking a plate from 29 visible textures to 7. - Draw any nine-slice whose axis scales uniformly as a single span, which also takes the cast bar frame from nine pieces to three. - Stop allocating a closure per plate per frame in the native font chrome reassert, which was most of the ~110 KB/s the engine tick allocated.

  • perf(nameplates): cut Modern style per-tick overhead


Based on NeticSoul/DragonUI
Join our Discord uVsEaAUGcx