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
47 lines
2.0 KiB
local SLE, _, E = unpack(select(2, ...))
|
|
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
|
|
|