/Tukui/modules/actionbars/Bar1.lua
http://github.com/Asphyxia/Tukui · Lua · 98 lines · 76 code · 7 blank · 15 comment · 8 complexity · 0a244aef01ac42d993718d9528900434 MD5 · raw file
- local T, C, L = unpack(select(2, ...)) -- Import: T - functions, constants, variables; C - config; L - locales
- if not C["actionbar"].enable == true then return end
- ---------------------------------------------------------------------------
- -- Setup Main Action Bar.
- -- Now used for stances, Bonus, Vehicle at the same time.
- -- Since t12, it's also working for druid cat stealth. (a lot requested)
- ---------------------------------------------------------------------------
- local bar = TukuiBar1
- --[[
- Bonus bar classes id
- DRUID: Caster: 0, Cat: 1, Tree of Life: 0, Bear: 3, Moonkin: 4
- WARRIOR: Battle Stance: 1, Defensive Stance: 2, Berserker Stance: 3
- ROGUE: Normal: 0, Stealthed: 1
- PRIEST: Normal: 0, Shadowform: 1
-
- When Possessing a Target: 5
- ]]--
- local Page = {
- ["DRUID"] = "[bonusbar:1,nostealth] 7; [bonusbar:1,stealth] 8; [bonusbar:2] 8; [bonusbar:3] 9; [bonusbar:4] 10;",
- ["WARRIOR"] = "[bonusbar:1] 7; [bonusbar:2] 8; [bonusbar:3] 9;",
- ["PRIEST"] = "[bonusbar:1] 7;",
- ["ROGUE"] = "[bonusbar:1] 7; [form:3] 7;",
- ["DEFAULT"] = "[bonusbar:5] 11; [bar:2] 2; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6;",
- }
- local function GetBar()
- local condition = Page["DEFAULT"]
- local class = T.myclass
- local page = Page[class]
- if page then
- condition = condition.." "..page
- end
- condition = condition.." 1"
- return condition
- end
- bar:RegisterEvent("PLAYER_LOGIN")
- bar:RegisterEvent("PLAYER_ENTERING_WORLD")
- bar:RegisterEvent("KNOWN_CURRENCY_TYPES_UPDATE")
- bar:RegisterEvent("CURRENCY_DISPLAY_UPDATE")
- bar:RegisterEvent("BAG_UPDATE")
- bar:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED")
- bar:SetScript("OnEvent", function(self, event, ...)
- if event == "PLAYER_LOGIN" then
- local button
- for i = 1, NUM_ACTIONBAR_BUTTONS do
- button = _G["ActionButton"..i]
- self:SetFrameRef("ActionButton"..i, button)
- end
- self:Execute([[
- buttons = table.new()
- for i = 1, 12 do
- table.insert(buttons, self:GetFrameRef("ActionButton"..i))
- end
- ]])
- self:SetAttribute("_onstate-page", [[
- for i, button in ipairs(buttons) do
- button:SetAttribute("actionpage", tonumber(newstate))
- end
- ]])
-
- RegisterStateDriver(self, "page", GetBar())
- elseif event == "PLAYER_ENTERING_WORLD" then
- if T.toc < 40200 then MainMenuBar_UpdateKeyRing() end
-
- local button
- for i = 1, 12 do
- button = _G["ActionButton"..i]
- button:Size(T.buttonsize, T.buttonsize)
- button:ClearAllPoints()
- button:SetParent(bar)
- button:SetFrameStrata("BACKGROUND")
- button:SetFrameLevel(15)
- if i == 1 then
- if C["actionbar"].mainswap then
- button:Point("TOPLEFT", 5, -5)
- else
- button:Point("BOTTOMLEFT", 5, 5)
- end
- else
- local previous = _G["ActionButton"..i-1]
- button:Point("LEFT", previous, "RIGHT", T.buttonspacing, 0)
- end
- end
- elseif event == "ACTIVE_TALENT_GROUP_CHANGED" then
- -- attempt to fix blocked glyph change after switching spec.
- LoadAddOn("Blizzard_GlyphUI")
- else
- MainMenuBar_OnEvent(self, event, ...)
- end
- end)