Files
coa-weakauras/WeakAuras/Compatibility.lua
T
2025-01-25 19:03:51 +01:00

126 lines
2.7 KiB
Lua

local ipairs = ipairs
local pairs = pairs
local abs, ceil, floor = math.abs, math.ceil, math.floor
local GetInstanceInfo = GetInstanceInfo
local GetNumPartyMembers = GetNumPartyMembers
local GetNumRaidMembers = GetNumRaidMembers
function noop()
end
function ipairs_reverse(table)
local function Enumerator(table, index)
index = index - 1;
local value = table[index];
if value ~= nil then
return index, value;
end
end
return Enumerator, table, #table + 1;
end
function tInvert(tbl)
local inverted = {};
for k, v in pairs(tbl) do
inverted[v] = k;
end
return inverted;
end
function Round(value)
if value < 0 then
return ceil(value - .5);
end
return floor(value + .5);
end
function tIndexOf(tbl, item)
for i, v in ipairs(tbl) do
if item == v then
return i;
end
end
end
function TableHasAnyEntries(tbl)
if tbl and type(tbl) == "table" then
for _ in pairs(tbl) do
return true
end
end
return false
end
function tAppendAll(table, addedArray)
for i, element in ipairs(addedArray) do
tinsert(table, element);
end
end
function MergeTable(t1, t2)
local merged = {}
for k, v in pairs(t1) do
merged[k] = v
end
for k, v in pairs(t2) do
merged[k] = v
end
return merged
end
function IsInGroup()
return GetNumPartyMembers() > 0 or GetNumRaidMembers() > 0
end
function IsInRaid()
return GetNumRaidMembers() > 0
end
function GetNumSubgroupMembers()
return GetNumPartyMembers()
end
function GetNumGroupMembers()
return IsInRaid() and GetNumRaidMembers() or GetNumPartyMembers()
end
RAID_CLASS_COLORS.HUNTER.colorStr = "ffabd473"
RAID_CLASS_COLORS.WARLOCK.colorStr = "ff8788ee"
RAID_CLASS_COLORS.PRIEST.colorStr = "ffffffff"
RAID_CLASS_COLORS.PALADIN.colorStr = "fff58cba"
RAID_CLASS_COLORS.MAGE.colorStr = "ff3fc7eb"
RAID_CLASS_COLORS.ROGUE.colorStr = "fffff569"
RAID_CLASS_COLORS.DRUID.colorStr = "ffff7d0a"
RAID_CLASS_COLORS.SHAMAN.colorStr = "ff0070de"
RAID_CLASS_COLORS.WARRIOR.colorStr = "ffc79c6e"
RAID_CLASS_COLORS.DEATHKNIGHT.colorStr = "ffc41f3b"
function Clamp(value, min, max)
if value > max then
return max;
elseif value < min then
return min;
end
return value;
end
-- This section is mostly used by Private.SmoothStatusBarMixin
function Lerp(startValue, endValue, amount)
return (1 - amount) * startValue + amount * endValue;
end
function Saturate(value)
return Clamp(value, 0, 1);
end
local TARGET_FRAME_PER_SEC = 60.0;
function DeltaLerp(startValue, endValue, amount, timeSec)
return Lerp(startValue, endValue, Saturate(amount * timeSec * TARGET_FRAME_PER_SEC));
end
function FrameDeltaLerp(startValue, endValue, amount, elapsed)
return DeltaLerp(startValue, endValue, amount, elapsed);
end