You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
2.0 KiB

local SLE, T, E, L, V, P, G = unpack(ElvUI_SLE)
local DB = SLE.DataBars
local EDB = E.DataBars
local floor, format = floor, string.format
local C_AzeriteItem_GetAzeriteItemXPInfo = C_AzeriteItem.GetAzeriteItemXPInfo
local C_AzeriteItem_GetPowerLevel = C_AzeriteItem.GetPowerLevel
local C_AzeriteItem_FindActiveAzeriteItem = C_AzeriteItem.FindActiveAzeriteItem
local function AzeriteBar_Update(self, event, unit)
if not E.db.sle.databars.azerite.longtext then return end
if (event == 'UNIT_INVENTORY_CHANGED' and unit ~= 'player') then return end
local bar = EDB.StatusBars.Azerite
local azeriteItemLocation = C_AzeriteItem_FindActiveAzeriteItem()
if azeriteItemLocation and not AzeriteUtil.IsAzeriteItemLocationBankBag(azeriteItemLocation) and (not E.db.databars.azerite.hideInCombat or not InCombatLockdown()) then
local text = ''
local xp, totalLevelXP = C_AzeriteItem_GetAzeriteItemXPInfo(azeriteItemLocation)
local xpToNextLevel = totalLevelXP - xp
local currentLevel = C_AzeriteItem_GetPowerLevel(azeriteItemLocation)
local textFormat = self.db.azerite.textFormat
if textFormat == 'PERCENT' then
text = format('%s%% [%s]', floor(xp / totalLevelXP * 100), currentLevel)
elseif textFormat == 'CURMAX' then
text = format('%s - %s [%s]', xp, totalLevelXP, currentLevel)
elseif textFormat == 'CURPERC' then
text = format('%s - %s%% [%s]', xp, floor(xp /totalLevelXP * 100), currentLevel)
elseif textFormat == 'CUR' then
text = format('%s [%s]', xp, currentLevel)
elseif textFormat == 'REM' then
text = format('%s [%s]', xpToNextLevel, currentLevel)
elseif textFormat == 'CURREM' then
text = format('%s - %s [%s]', xp, xpToNextLevel, currentLevel)
elseif textFormat == 'CURPERCREM' then
text = format('%s - %s%% (%s) [%s]', xp, floor(xp / totalLevelXP * 100), xpToNextLevel, currentLevel)
end
bar.text:SetText(text)
end
end
function DB:AzeriteInit()
-- DB:PopulateExpPatterns()
hooksecurefunc(EDB, 'AzeriteBar_Update', AzeriteBar_Update)
end