2024-03-08 02:27:04 +00:00
|
|
|
local addon, ns = ...
|
|
|
|
local T = {}
|
|
|
|
ns.T = T
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
-- # CORE > FUNCTIONS
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
-- ## FORMAT
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
T.Backdrop = {
|
|
|
|
bgFile = 'Interface\\Buttons\\WHITE8x8',
|
|
|
|
edgeFile = 'Interface\\Buttons\\WHITE8x8',
|
|
|
|
tileEdge = false,
|
|
|
|
edgeSize = 1,
|
|
|
|
insets = { left = 1, right = 1, top = 1, bottom = 1 },
|
|
|
|
}
|
|
|
|
|
|
|
|
T.ClassColor = RAID_CLASS_COLORS[select(2, UnitClass('player'))]
|
|
|
|
|
|
|
|
local function colorDurabilityPercent(perc)
|
|
|
|
perc = perc > 1 and 1 or perc < 0 and 0 or perc
|
|
|
|
local seg, relperc = math.modf(perc*2)
|
|
|
|
local r1, g1, b1, r2, g2, b2 = select(seg*3+1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0)
|
|
|
|
local r, g, b = r1+(r2-r1)*relperc, g1+(g2-g1)*relperc, b1+(b2-b1)*relperc
|
|
|
|
return format('|cff%02x%02x%02x', r*255, g*255, b*255), r, g, b
|
|
|
|
end
|
|
|
|
|
|
|
|
-- ## MODULES
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
T.GetLootSpec = function()
|
|
|
|
local lootSpecID = GetLootSpecialization()
|
2024-03-09 04:24:26 +00:00
|
|
|
local currentSpec = GetSpecialization()
|
|
|
|
local currentSpecName = currentSpec and select(2,GetSpecializationInfo(currentSpec)) or 'None'
|
2024-03-08 02:27:04 +00:00
|
|
|
|
2024-03-09 04:24:26 +00:00
|
|
|
if lootSpecID ~= 0 then
|
|
|
|
return '|cnWHITE_FONT_COLOR:Loot:|r '..select(2, GetSpecializationInfoByID(lootSpecID))..' '
|
2024-03-08 02:27:04 +00:00
|
|
|
else
|
2024-03-09 04:24:26 +00:00
|
|
|
return '|cnWHITE_FONT_COLOR:Loot:|r '..currentSpecName..' '
|
2024-03-08 02:27:04 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
T.GetLatency = function()
|
|
|
|
return '|cnWHITE_FONT_COLOR:'..select(3, GetNetStats())..' / '..select(4, GetNetStats())..'|r ms '
|
|
|
|
end
|
|
|
|
|
|
|
|
T.GetFPS = function()
|
|
|
|
return '|cnWHITE_FONT_COLOR:'..floor(GetFramerate())..'|r fps '
|
|
|
|
end
|
|
|
|
|
|
|
|
local SLOTS = {}
|
|
|
|
for _, slot in pairs({
|
|
|
|
'Head',
|
|
|
|
'Shoulder',
|
|
|
|
'Chest',
|
|
|
|
'Waist',
|
|
|
|
'Legs',
|
|
|
|
'Feet',
|
|
|
|
'Wrist',
|
|
|
|
'Hands',
|
|
|
|
'MainHand',
|
|
|
|
'SecondaryHand'
|
|
|
|
}) do
|
|
|
|
SLOTS[slot] = GetInventorySlotInfo(slot..'Slot')
|
|
|
|
end
|
|
|
|
|
|
|
|
T.GetDurability = function()
|
|
|
|
local l = 1
|
|
|
|
for slot, id in pairs(SLOTS) do
|
|
|
|
local d, md = GetInventoryItemDurability(id)
|
|
|
|
if d and md and md ~= 0 then
|
|
|
|
l = math.min(d/md, l)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
return format('%s%d|r dur ', colorDurabilityPercent(l), l*100)
|
|
|
|
end
|
|
|
|
|
|
|
|
T.GetTime = function()
|
|
|
|
-- return 24-hour notation
|
|
|
|
-- local time = date('%H:%M')
|
|
|
|
-- return '|cnWHITE_FONT_COLOR:'..time..'|r '
|
|
|
|
-- return 12-hour notation with AM/PM
|
|
|
|
local time = date('|cnWHITE_FONT_COLOR:%I:%M|r %p')
|
|
|
|
return time
|
|
|
|
end
|