ESOUI SVN ZAMStatsExp

[/] [trunk/] [ZAM_StatsExp/] [exp.lua] - Rev 8

Compare with Previous | Blame | View Log

-- ZAM_Stats © ZAM Network LLC
-- All Rights Reserved

local isVeteran, GetLevel, GetCurXP, GetMaxXP, veteranIcon
local GetUnitVeteranPoints = GetUnitVeteranPoints
local GetUnitVeteranPointsMax = GetUnitVeteranPointsMax
local GetUnitXP = GetUnitXP
local GetUnitXPMax = GetUnitXPMax
local strformat = string.format

local function UpdateVeteranStatus()
        if isVeteran ~= IsUnitVeteran("player") then
                isVeteran = IsUnitVeteran("player")
        end
        GetLevel = isVeteran and GetUnitVeteranRank or GetUnitLevel
        GetCurXP = isVeteran and GetUnitVeteranPoints or GetUnitXP
        GetMaxXP = isVeteran and GetUnitVeteranPointsMax or GetUnitXPMax
        veteranIcon = isVeteran and "|t28:28:EsoUI\\Art\\UnitFrames\\target_veteranrank_icon.dds|t" or ""
end

local module, text = ZAM_Stats:CreateModule("Exp")


CALLBACK_MANAGER:RegisterCallback("ZAM_Stats_Modules_Ready", function()
        local em = EVENT_MANAGER
        local function UpdateTextOnEvent(event)
                        ZAM_Stats:SetModuleText(text, strformat("%d%%", GetCurXP("player")/GetMaxXP("player")*100), " Lvl "..GetLevel("player")..veteranIcon)
                end

        em:RegisterForEvent(module:GetName(), EVENT_EXPERIENCE_UPDATE, UpdateTextOnEvent)
        em:RegisterForEvent(module:GetName(), EVENT_VETERAN_POINTS_UPDATE, UpdateTextOnEvent)
        em:RegisterForEvent(module:GetName(), EVENT_LEVEL_UPDATE, function() UpdateVeteranStatus() UpdateTextOnEvent() end)
        em:RegisterForEvent(module:GetName(), EVENT_VETERAN_RANK_UPDATE, function() UpdateVeteranStatus() UpdateTextOnEvent() end)
        
        UpdateVeteranStatus()
        UpdateTextOnEvent()
        
        CALLBACK_MANAGER:RegisterCallback("ZAM_Stats_Force_Refresh", UpdateTextOnEvent)
end)

Compare with Previous | Blame