local SCALE = 1
--local WIDTH = 348
local WIDTH = 236
local HEIGHT = 8
local _, CLASS = UnitClass('player')
local COLOR = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[CLASS] or RAID_CLASS_COLORS[CLASS]
local POSITION = {'CENTER', UIParent, 'CENTER', 0, 17}
local OFFSET = -13
local TIP = {'TOPRIGHT', UIParent, -275, -235}
-- local TEXTURE = [[Interface\AddOns\LynExperience\assets\statusbar]]
local CLASSCOLOR = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[CLASS] or RAID_CLASS_COLORS[CLASS]
f = CreateFrame('Frame', nil, UIParent)
f:SetPoint(POSITION[1], POSITION[2], POSITION[3], POSITION[4], POSITION[5])
f:SetWidth(WIDTH)
f:SetHeight(HEIGHT)
f:SetScale(SCALE)
local setBar = function(frame)
-- frame:SetStatusBarTexture(TEXTURE)
frame:SetWidth(WIDTH)
frame:SetHeight(HEIGHT)
frame:SetScale(SCALE)
end
local setBackdrop = function(frame)
frame.bg = CreateFrame('Frame', nil, frame)
frame.bg:SetBackdrop({
bgFile = [[Interface/Buttons/WHITE8X8]],
tiled = false,
insets = {left = 0, right = 0, top = 0, bottom = 0}
})
frame.bg:SetPoint('TOPLEFT', frame, 0, 0)
frame.bg:SetPoint('BOTTOMRIGHT', frame, 0, 0)
frame.bg:SetFrameLevel(1)
frame.bg:SetBackdropColor(0, 0, 0, 0.2)
frame.shadow = CreateFrame('Frame', nil, frame)
frame.shadow:SetBackdrop({
bgFile = [[Interface\Tooltips\UI-Tooltip-Background]],
tiled = false,
insets = {left = 0, right = 0, top = 0, bottom = 0}
})
frame.shadow:SetPoint('TOPLEFT', frame, -3, 3)
frame.shadow:SetPoint('BOTTOMRIGHT', frame, 3, -3)
frame.shadow:SetFrameLevel(0)
frame.shadow:SetBackdropColor(0, 0, 0, 0)
end
local azerite = CreateFrame('StatusBar', nil, f, 'AnimatedStatusBarTemplate')
setBar(azerite)
azerite:SetFrameLevel(4)
azerite:SetStatusBarColor(.9, .8, .6)
azerite:SetAnimatedTextureColors(.9, .8, .6)
azerite:SetPoint(POSITION[1], POSITION[2], POSITION[3], POSITION[4], POSITION[5] + OFFSET)
setBackdrop(azerite)
local azerite_update = function(self,event)
local azeriteItemLocation = C_AzeriteItem.FindActiveAzeriteItem()
if azeriteItemLocation then
local xp, totalLevelXP = C_AzeriteItem.GetAzeriteItemXPInfo(azeriteItemLocation)
local currentLevel = C_AzeriteItem.GetPowerLevel(azeriteItemLocation)
local xpToNextLevel = totalLevelXP - xp
if not azerite:IsShown() then
azerite:Show()
end
azerite:SetAnimatedValues(xp, 0, totalLevelXP)
else
if azerite:IsShown() then
azerite:Hide()
end
end
if event == 'AZERITE_ITEM_EXPERIENCE_CHANGED' or event == 'PLAYER_ENTERING_WORLD' then
if not azerite:IsShown() then
azerite:Show()
end
end
end
local showAzeriteTooltip = function(self)
local azeriteItemLocation = C_AzeriteItem.FindActiveAzeriteItem();
local azeriteItem = Item:CreateFromItemLocation(azeriteItemLocation);
local azeriteItemName = azeriteItem:GetItemName();
local xp, totalLevelXP = C_AzeriteItem.GetAzeriteItemXPInfo(azeriteItemLocation)
local currentLevel = C_AzeriteItem.GetPowerLevel(azeriteItemLocation)
local xpToNextLevel = totalLevelXP - xp
GameTooltip:SetOwner(self, 'ANCHOR_NONE')
GameTooltip:SetPoint(TIP[1], TIP[2], TIP[3], TIP[4], TIP[5])
GameTooltip:SetText(AZERITE_POWER_TOOLTIP_TITLE:format(currentLevel, xpToNextLevel), HIGHLIGHT_FONT_COLOR:GetRGB());
GameTooltip:AddLine(AZERITE_POWER_TOOLTIP_BODY:format(azeriteItemName));
GameTooltip:Show()
end
azerite:SetScript('OnEnter', showAzeriteTooltip)
azerite:SetScript('OnLeave', function() GameTooltip:Hide() end)
azerite:SetScript("OnEvent",azerite_update)
azerite:RegisterEvent('AZERITE_ITEM_EXPERIENCE_CHANGED')
azerite:RegisterEvent('PLAYER_ENTERING_WORLD')