local T, C, L = unpack(Tukui) -- Import: T - functions, constants, variables; C - config; L - locales if C.classbar.soulShards[1] ~= true or T.myclass ~= "WARLOCK" then return end local tbWidth, tbHeight = C.classbar.soulShards[2], C.classbar.soulShards[3] local mover = CreateFrame("Frame", "TukuiSoulShardsMover", UIParent) mover:Width(tbWidth+4) mover:Height(tbHeight+4) mover:Point("TOP", UIParent, "CENTER", 0, -150) mover:SetTemplate("Thick") mover:SetBackdropBorderColor(1,0,0) mover:SetClampedToScreen(true) mover:SetMovable(true) mover:SetFrameStrata("HIGH") mover:AddText("text", "Move Soul Shards", "CENTER") mover:Hide() tinsert(T.AllowFrameMoving, mover) local sshards = CreateFrame("Frame", "TukuiSoulShards", UIParent) sshards:Width(tbWidth) sshards:Height(tbHeight) sshards:Point("CENTER", mover) local shards = {} for i=1,3 do shards[i] = CreateFrame("Frame", "TukuiSoulShards_Shard"..i, sshards) shards[i]:SetWidth((tbWidth-2) / 3) shards[i]:SetHeight(tbHeight) shards[i]:CreateBackdrop("Transparent") shards[i].backdrop:ThickBorder() shards[i].tex = shards[i]:CreateTexture(nil, "OVERLAY") shards[i].tex:SetTexture(C.media.normTex) shards[i].tex:SetVertexColor(150/255,100/255,250/255) shards[i].tex:AllPoints(shards[i]) if i==1 then shards[i]:SetPoint("LEFT", sshards, "LEFT", 0, 0) else shards[i]:SetPoint("LEFT", shards[i-1], "RIGHT", 5, 0) end end local function UpdateShards() local numShards = UnitPower("player", SPELL_POWER_SOUL_SHARDS) for i = 1, 3 do if (i <= numShards) then shards[i].tex:Show() else shards[i].tex:Hide() end end end sshards:RegisterEvent("UNIT_POWER") sshards:RegisterEvent("PLAYER_ENTERING_WORLD") sshards:SetScript("OnEvent", UpdateShards) local vehicle = CreateFrame("Frame") vehicle:RegisterEvent("VEHICLE_UPDATE") vehicle:SetScript("OnEvent", function() if UnitHasVehicleUI("player") then sshards:Hide() else sshards:Show() end end)