WoWInterface SVN PowerUp

[/] [trunk/] [PowerUp/] [PowerUp.lua] - Rev 13

Compare with Previous | Blame | View Log

--[[

        PowerUp
        by Ailae of Emeriss-EU
        
        Tracker for Holy Power and Soul Shards
        Loosely based on the corresponding elements in oUF
        
        Thanks to lorelye over @ wowace forums for name suggestion
]]

local addon, PowerUp = ...
local db

PowerUp.class = select(2, UnitClass("player"))

function PowerUp:ADDON_LOADED(name)
        if name ~= addon then return end
        
        if (self.class == "PALADIN" or self.class == "WARLOCK") then
                PowerUpDB = PowerUpDB or self.defaults
                
                -- in case there's a new option (trial)
                for k,v in pairs(self.defaults) do
                        if type(PowerUpDB[k]) == "nil" then
                                PowerUpDB[k] = v
                        end
                end
                db = PowerUpDB
                
                self.frame:SetBackdrop({bgFile = "Interface\\ChatFrame\\ChatFrameBackground", insets = {top = -1, left = -1, bottom = -1, right = -1},})
                self.frame:SetBackdropColor(0, 0, 0, .5)
                self.frame:SetPoint(db.point, UIParent, db.x, db.y)
                        
                self.frame:SetMovable(true)
                self.frame:SetScript("OnMouseDown", function()
                        if(IsShiftKeyDown()) then
                                self.frame:ClearAllPoints()
                                self.frame:StartMoving()
                        end
                end)

                self.frame:SetScript("OnMouseUp", function()
                        self.frame:StopMovingOrSizing()
                        db.point, _, _, db.x, db.y = self.frame:GetPoint()
                end)
                
                SLASH_PowerUp1 = "/pu"
                SLASH_PowerUp2 = "/powerup"
                SlashCmdList.PowerUp = function()
                        InterfaceOptionsFrame_OpenToCategory(self.panel)
                end             
                self:HideBlizzard()
                self:Init()
        end
        
        self:UnregisterEvent("ADDON_LOADED")
end

function PowerUp:HideBlizzard()
        if db.hideBlizz then
                PaladinPowerBar:Hide()
                PaladinPowerBar:UnregisterAllEvents()
                ShardBarFrame:Hide()
                ShardBarFrame:UnregisterAllEvents()     
        else
                PaladinPowerBar_OnLoad(PaladinPowerBar)
                -- ShardBar_OnLoad(ShardBarFrame)
        end
end

-- Create frames
function PowerUp:Workshop()
        self.bars = {}
        
        for i=1, db.max do 
                local t = self.frame:CreateTexture(nil, "OVERLAY")
                if i == 1 then
                        t:SetPoint("LEFT", self.frame, "LEFT")
                else
                        t:SetPoint("TOPLEFT", self.bars[i - 1], "TOPRIGHT", 1, 0)
                end
        
                self.bars[i] = t
        end
end

-- Style bars
function PowerUp:Paintshop()
        self.frame:SetSize(db.width, db.height)
        
        for i=1, #self.bars do
                self.bars[i]:SetTexture(db.texture)
                self.bars[i]:SetVertexColor(db.colors[self.class].r, db.colors[self.class].g, db.colors[self.class].b)
                self.bars[i]:SetWidth((db.width-2)/db.max)
                self.bars[i]:SetHeight(db.height)
        end
end

PowerUp.frame = CreateFrame("Frame", nil, UIParent)
PowerUp.frame:SetScript("OnEvent", function(self, event, ...) return PowerUp[event] and PowerUp[event](PowerUp, ...) end)

function PowerUp:RegisterEvent(event) return self.frame:RegisterEvent(event) end
function PowerUp:UnregisterEvent(event) return self.frame:UnregisterEvent(event) end

PowerUp:RegisterEvent("ADDON_LOADED")

Compare with Previous | Blame