/Tukui/modules/misc/altpowerbar.lua

http://github.com/Asphyxia/Tukui · Lua · 56 lines · 49 code · 7 blank · 0 comment · 4 complexity · 25745b04c2ff10074a8836d93081cf18 MD5 · raw file

  1. local T, C, L = unpack(select(2, ...))
  2. if IsAddOnLoaded("SmellyPowerBar") then return end
  3. PlayerPowerBarAlt:UnregisterEvent("UNIT_POWER_BAR_SHOW")
  4. PlayerPowerBarAlt:UnregisterEvent("UNIT_POWER_BAR_HIDE")
  5. PlayerPowerBarAlt:UnregisterEvent("PLAYER_ENTERING_WORLD")
  6. local AltPowerBar = CreateFrame("Frame", "TukuiAltPowerBar", TukuiInfoLeft)
  7. AltPowerBar:SetAllPoints()
  8. AltPowerBar:SetFrameStrata("HIGH")
  9. AltPowerBar:SetFrameLevel(2)
  10. AltPowerBar:EnableMouse(true)
  11. AltPowerBar:SetTemplate("Default")
  12. local AltPowerBarStatus = CreateFrame("StatusBar", "TukuiAltPowerBarStatus", AltPowerBar)
  13. AltPowerBarStatus:SetFrameLevel(AltPowerBar:GetFrameLevel() + 1)
  14. AltPowerBarStatus:SetStatusBarTexture(C.media.normTex)
  15. AltPowerBarStatus:SetMinMaxValues(0, 100)
  16. AltPowerBarStatus:Point("TOPLEFT", TukuiInfoLeft, "TOPLEFT", 2, -2)
  17. AltPowerBarStatus:Point("BOTTOMRIGHT", TukuiInfoLeft, "BOTTOMRIGHT", -2, 2)
  18. local AltPowerText = AltPowerBarStatus:CreateFontString(nil, "OVERLAY")
  19. AltPowerText:SetFont(C.media.font, 12)
  20. AltPowerText:Point("CENTER", AltPowerBar, "CENTER", 0, 0)
  21. AltPowerText:SetShadowColor(0, 0, 0)
  22. AltPowerText:SetShadowOffset(1.25, -1.25)
  23. AltPowerBar:RegisterEvent("UNIT_POWER")
  24. AltPowerBar:RegisterEvent("UNIT_POWER_BAR_SHOW")
  25. AltPowerBar:RegisterEvent("UNIT_POWER_BAR_HIDE")
  26. AltPowerBar:RegisterEvent("PLAYER_ENTERING_WORLD")
  27. AltPowerBar:SetScript("OnEvent", function(self)
  28. self:UnregisterEvent("PLAYER_ENTERING_WORLD")
  29. if UnitAlternatePowerInfo("player") then
  30. self:Show()
  31. else
  32. self:Hide()
  33. end
  34. end)
  35. local TimeSinceLastUpdate = 1
  36. AltPowerBarStatus:SetScript("OnUpdate", function(self, elapsed)
  37. if not AltPowerBar:IsShown() then return end
  38. TimeSinceLastUpdate = TimeSinceLastUpdate + elapsed
  39. if (TimeSinceLastUpdate >= 1) then
  40. self:SetMinMaxValues(0, UnitPowerMax("player", ALTERNATE_POWER_INDEX))
  41. local power = UnitPower("player", ALTERNATE_POWER_INDEX)
  42. local mpower = UnitPowerMax("player", ALTERNATE_POWER_INDEX)
  43. self:SetValue(power)
  44. AltPowerText:SetText(power.." / "..mpower)
  45. local r, g, b = oUFTukui.ColorGradient(power/mpower, 0,.8,0,.8,.8,0,.8,0,0)
  46. AltPowerBarStatus:SetStatusBarColor(r, g, b)
  47. self.TimeSinceLastUpdate = 0
  48. end
  49. end)