From 65843024b963967a213b925e229d6575fcd3c97b Mon Sep 17 00:00:00 2001 From: Steven Jackson Date: Mon, 21 Jul 2014 23:47:23 -0500 Subject: [PATCH] new features --- Interface/AddOns/SVUI/packages/actionbar/SVBar.lua | 795 ++++++++++++++--- Interface/AddOns/SVUI/packages/actionbar/SVBar.xml | 2 +- .../SVUI/packages/actionbar/SVBar_KeyBind.lua | 513 +++++++++++ .../SVUI/packages/actionbar/common/_load.xml | 7 - .../SVUI/packages/actionbar/common/actionbar.lua | 98 --- .../SVUI/packages/actionbar/common/keybinds.lua | 525 ------------ .../SVUI/packages/actionbar/common/microbar.lua | 208 ----- .../SVUI/packages/actionbar/common/petbar.lua | 130 --- .../SVUI/packages/actionbar/common/stancebar.lua | 162 ---- Interface/AddOns/SVUI/packages/aura/SVAura.lua | 2 +- Interface/AddOns/SVUI/packages/bag/SVBag.lua | 2 +- Interface/AddOns/SVUI/packages/chat/SVChat.lua | 20 +- Interface/AddOns/SVUI/packages/dock/SVDock.lua | 738 ++++++++++++++-- Interface/AddOns/SVUI/packages/dock/SVDock.xml | 1 - .../AddOns/SVUI/packages/dock/common/_load.xml | 4 - .../AddOns/SVUI/packages/dock/common/docklets.lua | 382 --------- .../AddOns/SVUI/packages/dock/common/toolbar.lua | 365 -------- .../AddOns/SVUI/packages/henchmen/SVHenchmen.lua | 626 +++++++++++--- .../AddOns/SVUI/packages/henchmen/SVHenchmen.xml | 1 - .../AddOns/SVUI/packages/henchmen/common/_load.xml | 3 - .../SVUI/packages/henchmen/common/minions.lua | 458 ---------- .../AddOns/SVUI/packages/laborer/SVLaborer.lua | 86 +- .../SVUI/packages/laborer/common/archaeology.lua | 15 +- .../SVUI/packages/laborer/common/cooking.lua | 9 +- .../SVUI/packages/laborer/common/farming.lua | 21 +- .../SVUI/packages/laborer/common/fishing.lua | 17 +- Interface/AddOns/SVUI/packages/map/SVMap.lua | 614 ++++++++++--- Interface/AddOns/SVUI/packages/map/SVMap.xml | 1 - .../AddOns/SVUI/packages/map/common/_load.xml | 4 - .../AddOns/SVUI/packages/map/common/mmbar.lua | 214 ----- .../AddOns/SVUI/packages/map/common/worldmap.lua | 240 ------ .../AddOns/SVUI/packages/override/SVOverride.lua | 20 +- .../AddOns/SVUI/packages/override/common/alert.lua | 8 +- .../SVUI/packages/override/common/looting.lua | 8 +- .../SVUI/packages/override/common/mirror.lua | 6 +- Interface/AddOns/SVUI/packages/stats/SVStats.lua | 11 +- .../AddOns/SVUI/packages/stats/common/broker.lua | 82 -- .../AddOns/SVUI/packages/stats/common/gold.lua | 44 +- .../SVUI/packages/stats/common/reputation.lua | 8 +- .../AddOns/SVUI/packages/stats/common/tokens.lua | 8 +- Interface/AddOns/SVUI/packages/tip/SVTip.lua | 26 +- Interface/AddOns/SVUI/packages/unit/SVUnit.lua | 178 +++- .../AddOns/SVUI/packages/unit/class/_load.xml | 1 - .../AddOns/SVUI/packages/unit/class/classbar.lua | 87 -- .../SVUI/packages/unit/class/deathknight.lua | 41 +- .../AddOns/SVUI/packages/unit/class/druid.lua | 47 +- .../AddOns/SVUI/packages/unit/class/hunter.lua | 18 +- Interface/AddOns/SVUI/packages/unit/class/mage.lua | 40 +- Interface/AddOns/SVUI/packages/unit/class/monk.lua | 37 +- .../AddOns/SVUI/packages/unit/class/paladin.lua | 40 +- .../AddOns/SVUI/packages/unit/class/priest.lua | 42 +- .../AddOns/SVUI/packages/unit/class/rogue.lua | 45 +- .../AddOns/SVUI/packages/unit/class/shaman.lua | 38 +- .../AddOns/SVUI/packages/unit/class/warlock.lua | 59 +- .../AddOns/SVUI/packages/unit/class/warrior.lua | 18 +- .../AddOns/SVUI/packages/unit/common/_load.xml | 11 +- .../SVUI/packages/unit/common/actionpanel.lua | 357 -------- .../AddOns/SVUI/packages/unit/common/aurabars.lua | 178 ---- .../AddOns/SVUI/packages/unit/common/auras.lua | 133 ++- .../AddOns/SVUI/packages/unit/common/castbar.lua | 6 +- .../SVUI/packages/unit/common/essentials.lua | 898 ++++++++++++++++++++ .../AddOns/SVUI/packages/unit/common/glow.lua | 136 --- .../AddOns/SVUI/packages/unit/common/health.lua | 343 -------- .../AddOns/SVUI/packages/unit/common/misc.lua | 387 ++++++++- .../AddOns/SVUI/packages/unit/common/portrait.lua | 148 ---- .../AddOns/SVUI/packages/unit/common/power.lua | 149 ---- .../SVUI/packages/unit/common/prediction.lua | 176 ---- .../AddOns/SVUI/packages/unit/common/secure.lua | 216 ----- .../AddOns/SVUI/packages/unit/common/unique.lua | 266 ------ .../AddOns/SVUI/packages/unit/frames/groups.lua | 14 +- .../AddOns/SVUI/packages/unit/frames/units.lua | 40 +- Interface/AddOns/SVUI/scripts/pvp.lua | 7 +- Interface/AddOns/SVUI/scripts/questwatch.lua | 6 +- Interface/AddOns/SVUI/scripts/threat.lua | 2 +- Interface/AddOns/SVUI/scripts/totems.lua | 4 +- Interface/AddOns/SVUI/system/classes/Database.lua | 5 +- Interface/AddOns/SVUI/system/classes/Registry.lua | 122 +-- Interface/AddOns/SVUI/system/installer.lua | 14 +- Interface/AddOns/SVUI/system/mentalo.lua | 25 +- .../libs/AceGUI-3.0/AceGUI-3.0.lua | 323 +++++++ Interface/AddOns/SVUI_ConfigOMatic/libs/_load.xml | 2 +- .../AddOns/SVUI_ConfigOMatic/modules/chat.lua | 1 - .../AddOns/SVUI_ConfigOMatic/modules/henchmen.lua | 1 - Interface/AddOns/SVUI_ConfigOMatic/modules/map.lua | 8 +- .../SVUI_ConfigOMatic/modules/units/player.lua | 12 +- .../AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.lua | 67 +- .../AddOns/SVUI_StyleOMatic/addons/archeology.lua | 4 +- .../SVUI_StyleOMatic/addons/supervillain.lua | 284 +------ .../SVUI_StyleOMatic/addons/thirdparty/Omen.lua | 5 +- .../SVUI_StyleOMatic/addons/thirdparty/Recount.lua | 3 +- .../SVUI_StyleOMatic/addons/thirdparty/Skada.lua | 9 +- .../SVUI_StyleOMatic/addons/thirdparty/TinyDPS.lua | 3 +- .../addons/thirdparty/alDamageMeter.lua | 3 +- 93 files changed, 5353 insertions(+), 6190 deletions(-) create mode 100644 Interface/AddOns/SVUI/packages/actionbar/SVBar_KeyBind.lua delete mode 100644 Interface/AddOns/SVUI/packages/actionbar/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/actionbar/common/actionbar.lua delete mode 100644 Interface/AddOns/SVUI/packages/actionbar/common/keybinds.lua delete mode 100644 Interface/AddOns/SVUI/packages/actionbar/common/microbar.lua delete mode 100644 Interface/AddOns/SVUI/packages/actionbar/common/petbar.lua delete mode 100644 Interface/AddOns/SVUI/packages/actionbar/common/stancebar.lua delete mode 100644 Interface/AddOns/SVUI/packages/dock/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/dock/common/docklets.lua delete mode 100644 Interface/AddOns/SVUI/packages/dock/common/toolbar.lua delete mode 100644 Interface/AddOns/SVUI/packages/henchmen/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/henchmen/common/minions.lua delete mode 100644 Interface/AddOns/SVUI/packages/map/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/map/common/mmbar.lua delete mode 100644 Interface/AddOns/SVUI/packages/map/common/worldmap.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/broker.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/classbar.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/actionpanel.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/aurabars.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/common/essentials.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/glow.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/health.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/portrait.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/power.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/prediction.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/secure.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/unique.lua diff --git a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua index e2c1ca3..426c3a1 100644 --- a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua +++ b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua @@ -36,6 +36,8 @@ GET ADDON DATA local SuperVillain, L = unpack(select(2, ...)); local MOD = {}; local LibAB = LibStub("LibActionButton-1.0"); +local NUM_ACTIONBAR_BUTTONS = NUM_ACTIONBAR_BUTTONS + MOD.Storage = {}; MOD.Storage["Cache"] = {}; MOD.Storage["Bar1"] = {}; @@ -232,6 +234,22 @@ local CLEANFONT = SuperVillain.Media.font.roboto; local SetSpellFlyoutHook; local NewFrame = CreateFrame; local NewHook = hooksecurefunc; +local ICON_FILE = [[Interface\AddOns\SVUI\assets\artwork\Icons\MICROMENU]] +local ICON_DATA = { + {"CharacterMicroButton",0,0.25,0,0.25}, -- MICRO-CHARACTER + {"SpellbookMicroButton",0.25,0.5,0,0.25}, -- MICRO-SPELLBOOK + {"TalentMicroButton",0.5,0.75,0,0.25}, -- MICRO-TALENTS + {"AchievementMicroButton",0.75,1,0,0.25}, -- MICRO-ACHIEVEMENTS + {"QuestLogMicroButton",0,0.25,0.25,0.5}, -- MICRO-QUESTS + {"GuildMicroButton",0.25,0.5,0.25,0.5}, -- MICRO-GUILD + {"PVPMicroButton",0.5,0.75,0.25,0.5}, -- MICRO-PVP + {"LFDMicroButton",0.75,1,0.25,0.5}, -- MICRO-LFD + {"EJMicroButton",0,0.25,0.5,0.75}, -- MICRO-ENCOUNTER + {"StoreMicroButton",0.25,0.5,0.5,0.75}, -- MICRO-STORE + {"CompanionsMicroButton",0.5,0.75,0.5,0.75},-- MICRO-COMPANION + {"MainMenuMicroButton",0.75,1,0.5,0.75}, -- MICRO-SYSTEM + {"HelpMicroButton",0,0.25,0.75,1}, -- MICRO-HELP +}; --[[ ########################################################## LOCAL FUNCTIONS @@ -247,6 +265,87 @@ local Bar_OnLeave = function(self) if(self._fade) then SuperVillain:SecureFadeOut(self, 1, self:GetAlpha(), 0) end +end + +local function RefreshMicrobar() + if not SVUI_MicroBar then return end + local lastParent = SVUI_MicroBar; + local buttonSize = MOD.db.Micro.buttonsize or 30; + local spacing = MOD.db.Micro.buttonspacing or 1; + local barWidth = (buttonSize + spacing) * 13; + SVUI_MicroBar_MOVE:Size(barWidth, buttonSize + 6) + SVUI_MicroBar:SetAllPoints(SVUI_MicroBar_MOVE) + for i=1,13 do + local data = ICON_DATA[i] + local button = _G[data[1]] + button:ClearAllPoints() + button:Size(buttonSize, buttonSize + 28) + button._fade = MOD.db.Micro.mouseover + if lastParent == SVUI_MicroBar then + button:SetPoint("BOTTOMLEFT",lastParent,"BOTTOMLEFT",1,1) + else + button:SetPoint('LEFT',lastParent,'RIGHT',spacing,0) + end + lastParent = button; + button:Show() + end +end + +local SVUIMicroButton_SetNormal = function() + local level = MainMenuMicroButton:GetFrameLevel() + if(level > 0) then + MainMenuMicroButton:SetFrameLevel(level - 1) + else + MainMenuMicroButton:SetFrameLevel(0) + end + MainMenuMicroButton:SetFrameStrata("BACKGROUND") + MainMenuMicroButton.overlay:SetFrameLevel(level + 1) + MainMenuMicroButton.overlay:SetFrameStrata("HIGH") + MainMenuBarPerformanceBar:Hide() + HelpMicroButton:Show() +end + +local SVUIMicroButtonsParent = function(self) + if self ~= SVUI_MicroBar then + self = SVUI_MicroBar + end + for i=1,13 do + local data = ICON_DATA[i] + _G[data[1]]:SetParent(SVUI_MicroBar) + end +end + +local MicroButton_OnEnter = function(self) + if InCombatLockdown()then return end + self.overlay:SetPanelColor("highlight") + self.overlay.icon:SetGradient("VERTICAL", 0.75, 0.75, 0.75, 1, 1, 1) + if(self._fade) then + SuperVillain:SecureFadeIn(SVUI_MicroBar,0.2,SVUI_MicroBar:GetAlpha(),1) + SuperVillain:SecureFadeOut(SVUI_MicroBar.screenMarker,0.1,SVUI_MicroBar:GetAlpha(),0) + end +end + +local MicroButton_OnLeave = function(self) + if InCombatLockdown()then return end + self.overlay:SetPanelColor("special") + self.overlay.icon:SetGradient("VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1) + if(self._fade) then + SuperVillain:SecureFadeOut(SVUI_MicroBar,1,SVUI_MicroBar:GetAlpha(),0) + SuperVillain:SecureFadeIn(SVUI_MicroBar.screenMarker,5,SVUI_MicroBar:GetAlpha(),1) + end +end + +local MicroButton_OnUpdate = function() + if(not MOD.db.Micro.mouseover) then + SVUI_MicroBar:SetAlpha(1) + SVUI_MicroBar.screenMarker:SetAlpha(0) + else + SVUI_MicroBar:SetAlpha(0) + SVUI_MicroBar.screenMarker:SetAlpha(1) + end + GuildMicroButtonTabard:ClearAllPoints(); + GuildMicroButtonTabard:Hide(); + RefreshMicrobar() end function MOD:FixKeybindText(button) @@ -485,13 +584,15 @@ do local SpellFlyout_OnShow = function() for i=1,maxFlyoutCount do - if _G["SpellFlyoutButton"..i] then - ModifyActionButton(_G["SpellFlyoutButton"..i]) - SaveActionButton(_G["SpellFlyoutButton"..i]) + local name = ("SpellFlyoutButton%s"):format(i) + local button = _G[name] + if(button) then + ModifyActionButton(button) + SaveActionButton(button) - _G["SpellFlyoutButton"..i]:HookScript('OnEnter', SpellFlyoutButton_OnEnter) + button:HookScript('OnEnter', SpellFlyoutButton_OnEnter) - _G["SpellFlyoutButton"..i]:HookScript('OnLeave', SpellFlyoutButton_OnLeave) + button:HookScript('OnLeave', SpellFlyoutButton_OnLeave) end end SpellFlyout:HookScript('OnEnter', SpellFlyout_OnEnter) @@ -522,29 +623,35 @@ function MOD:UpdateBarBindings(pet,stance) local preset = self.Storage['Stance']; local bindText = preset.binding; for i=1,NUM_STANCE_SLOTS do + local name = ("SVUI_StanceBarButton%s"):format(i) + local hkname = ("SVUI_StanceBarButton%sHotKey"):format(i) + local hotkey = _G[hkname] if self.db.hotkeytext then - local key = format(bindText, i); + local key = bindText:format(i); local binding = GetBindingKey(key) - _G["SVUI_StanceBarButton"..i.."HotKey"]:Show() - _G["SVUI_StanceBarButton"..i.."HotKey"]:SetText(binding) - MOD:FixKeybindText(_G["SVUI_StanceBarButton"..i]) + hotkey:Show() + hotkey:SetText(binding) + MOD:FixKeybindText(_G[name]) else - _G["SVUI_StanceBarButton"..i.."HotKey"]:Hide() + hotkey:Hide() end end end if pet == true then local preset = self.Storage['Pet']; local bindText = preset.binding; - for i=1,NUM_PET_ACTION_SLOTS do + for i=1,NUM_PET_ACTION_SLOTS do + local name = ("PetActionButton%s"):format(i) + local hkname = ("PetActionButton%sHotKey"):format(i) + local hotkey = _G[hkname] if self.db.hotkeytext then - local key = format(bindText, i); + local key = bindText:format(i); local binding = GetBindingKey(key) - _G["PetActionButton"..i.."HotKey"]:Show() - _G["PetActionButton"..i.."HotKey"]:SetText(binding) - MOD:FixKeybindText(_G["PetActionButton"..i]) + hotkey:Show() + hotkey:SetText(binding) + MOD:FixKeybindText(_G[name]) else - _G["PetActionButton"..i.."HotKey"]:Hide() + hotkey:Hide() end end end @@ -562,11 +669,11 @@ function MOD:UpdateAllBindings(event) local buttons = stored.buttons; if not bar or not buttons then return end ClearOverrideBindings(bar); - local nameMod = bar:GetName().."Button"; + local nameMod = bar:GetName(); local thisBinding = stored.binding; for i=1,#buttons do - local binding = format(thisBinding, i); - local btn = nameMod..i; + local binding = thisBinding:format(i); + local btn = ("%sButton%d"):format(nameMod,i); for x=1,select('#',GetBindingKey(binding)) do local key = select(x,GetBindingKey(binding)) if (key and key ~= "") then @@ -592,7 +699,7 @@ function MOD:SetBarConfigData(barID) SetModifiedClick("PICKUPACTION", self.db.unlock) for i,button in pairs(buttonList)do if thisBinding then - data.config.keyBoundTarget = format(thisBinding,i) + data.config.keyBoundTarget = thisBinding:format(i) end button.keyBoundTarget = data.config.keyBoundTarget; button.postKeybind = self.FixKeybindText; @@ -604,19 +711,27 @@ function MOD:SetBarConfigData(barID) end function MOD:UpdateBarPagingDefaults() - local parse = "[vehicleui,mod:alt,mod:ctrl] %d; [possessbar] %d; [overridebar] %d; [form,noform] 0; [shapeshift] 13; [bar:2] 2; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6;"; + local parse, custom; if self.db.Bar6.enable then - parse = "[vehicleui,mod:alt,mod:ctrl] %d; [possessbar] %d; [overridebar] %d; [form,noform] 0; [shapeshift] 13; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6;"; + parse = "[vehicleui,mod:alt,mod:ctrl] %d; [possessbar] %d; [overridebar] %d; [form,noform] 0; [shapeshift] 13; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6; %s"; + else + parse = "[vehicleui,mod:alt,mod:ctrl] %d; [possessbar] %d; [overridebar] %d; [form,noform] 0; [shapeshift] 13; [bar:2] 2; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6; %s"; end if self.db.Bar1.useCustomPaging then - parse = parse .. " " .. self.db.Bar1.customPaging[SuperVillain.class]; + custom = self.db.Bar1.customPaging[SuperVillain.class]; + else + custom = "" end - self.Storage['Bar1'].conditions = format(parse, GetVehicleBarIndex(), GetVehicleBarIndex(), GetOverrideBarIndex()); + + self.Storage['Bar1'].conditions = parse:format(GetVehicleBarIndex(), GetVehicleBarIndex(), GetOverrideBarIndex(), custom); + for i=2, 6 do - if self.db['Bar'..i].useCustomPaging then - self.Storage['Bar'..i].conditions = self.db['Bar'..i].customPaging[SuperVillain.class]; + local id = ("Bar%d"):format(i) + if self.db[id].useCustomPaging then + self.Storage[id].conditions = self.db[id].customPaging[SuperVillain.class]; end end + if((not SuperVillain.db.SVBar.enable or InCombatLockdown()) or not self.isInitialized) then return end local Bar2Option = InterfaceOptionsActionBarsPanelBottomRight local Bar3Option = InterfaceOptionsActionBarsPanelBottomLeft @@ -836,10 +951,11 @@ do end --RegisterStateDriver(bar, "show", barVisibility) else - local page = _getPage(id, data.page, data.conditions) - if data.conditions:find("[form, noform]") then + local p,c = data.page, data.conditions + local page = _getPage(id, p, c) + if c:find("[form, noform]") then bar:SetAttribute("hasTempBar", true) - local newCondition = gsub(data.conditions, " %[form, noform%] 0; ", ""); + local newCondition = c:gsub(" %[form, noform%] 0; ", ""); bar:SetAttribute("newCondition", newCondition) else bar:SetAttribute("hasTempBar", false) @@ -858,8 +974,8 @@ do else bar:Hide() UnregisterStateDriver(bar, "visibility") - end - SuperVillain:SetSnapOffset("SVUI_Action"..id.."_MOVE", (space / 2)) + end + SuperVillain:SetSnapOffset(("SVUI_Action%d_MOVE"):format(id), (space / 2)) end end end @@ -867,7 +983,7 @@ end function MOD:RefreshActionBars() if InCombatLockdown() then return end self:UpdateBarPagingDefaults() - for button,_ in pairs(self.Storage.Cache)do + for button, _ in pairs(self.Storage.Cache)do if button then ModifyActionButton(button) SaveActionButton(button) @@ -875,16 +991,17 @@ function MOD:RefreshActionBars() SetFlyoutButton(button) end else - self.Storage.Cache[button]=nil + self.Storage.Cache[button] = nil end end - for t=1,6 do - self:RefreshBar("Bar"..t) + for i = 1, 6 do + local id = ("Bar%d"):format(i) + self:RefreshBar(id) end self:RefreshBar("Pet") self:RefreshBar("Stance") - self:UpdateBarBindings(true,true) - for barID,stored in pairs(self.Storage)do + self:UpdateBarBindings(true, true) + for barID, stored in pairs(self.Storage)do if barID ~= "Pet" and barID ~= "Stance" then self:SetBarConfigData(barID) end @@ -892,16 +1009,16 @@ function MOD:RefreshActionBars() end local Vehicle_Updater = function() - local bar = MOD.Storage['Bar1'].bar - local space = SuperVillain:Scale(MOD.db['Bar1'].buttonspacing) - local total = MOD.db['Bar1'].buttons; - local rows = MOD.db['Bar1'].buttonsPerRow; - local size = SuperVillain:Scale(MOD.db['Bar1'].buttonsize) - local point = MOD.db['Bar1'].point; + local bar = MOD.Storage["Bar1"].bar + local space = SuperVillain:Scale(MOD.db["Bar1"].buttonspacing) + local total = MOD.db["Bar1"].buttons; + local rows = MOD.db["Bar1"].buttonsPerRow; + local size = SuperVillain:Scale(MOD.db["Bar1"].buttonsize) + local point = MOD.db["Bar1"].point; local columns = ceil(total / rows) - if (HasOverrideActionBar() or HasVehicleActionBar()) and total==12 then + if (HasOverrideActionBar() or HasVehicleActionBar()) and total == 12 then bar.backdrop:ClearAllPoints() - bar.backdrop:Point(MOD.db['Bar1'].point, bar, MOD.db['Bar1'].point) + bar.backdrop:Point(MOD.db["Bar1"].point, bar, MOD.db["Bar1"].point) bar.backdrop:Width(space + ((size * rows) + (space * (rows - 1)) + space)) bar.backdrop:Height(space + ((size * columns) + (space * (columns - 1)) + space)) bar.backdrop:SetFrameLevel(0); @@ -916,41 +1033,11 @@ end HOOKED / REGISTERED FUNCTIONS ########################################################## ]]-- -local CreateExtraBar = function(self) - local specialBar = CreateFrame("Frame", "SVUI_SpecialAbility", SuperVillain.UIParent) - specialBar:Point("TOP", SuperVillain.UIParent, "CENTER", 0, -50) - specialBar:Size(ExtraActionBarFrame:GetSize()) - ExtraActionBarFrame:SetParent(specialBar) - ExtraActionBarFrame:ClearAllPoints() - ExtraActionBarFrame:SetPoint("CENTER", specialBar, "CENTER") - ExtraActionBarFrame.ignoreFramePositionManager = true; - local max = ExtraActionBarFrame:GetNumChildren() - for i = 1, max do - if _G["ExtraActionButton"..i] then - _G["ExtraActionButton"..i].noResize = true; - _G["ExtraActionButton"..i].pushed = true; - _G["ExtraActionButton"..i].checked = true; - ModifyActionButton(_G["ExtraActionButton"..i]) - _G["ExtraActionButton"..i]:SetFixedPanelTemplate() - _G["ExtraActionButton"..i.."Icon"]:SetDrawLayer("ARTWORK") - _G["ExtraActionButton"..i.."Cooldown"]:FillInner() - local checkedTexture = _G["ExtraActionButton"..i]:CreateTexture(nil, "OVERLAY") - checkedTexture:SetTexture(0.9, 0.8, 0.1, 0.3) - checkedTexture:FillInner() - _G["ExtraActionButton"..i]:SetCheckedTexture(checkedTexture) - end - end - if HasExtraActionBar()then - ExtraActionBarFrame:Show() - end - SuperVillain:SetSVMovable(specialBar, "SVUI_SpecialAbility_MOVE", L["Boss Button"], nil, nil, nil, "ALL, ACTIONBAR") -end - local SVUIOptionsPanel_OnEvent = function() - InterfaceOptionsActionBarsPanelBottomRight.Text:SetText(format(L['Remove Bar %d Action Page'],2)) - InterfaceOptionsActionBarsPanelBottomLeft.Text:SetText(format(L['Remove Bar %d Action Page'],3)) - InterfaceOptionsActionBarsPanelRightTwo.Text:SetText(format(L['Remove Bar %d Action Page'],4)) - InterfaceOptionsActionBarsPanelRight.Text:SetText(format(L['Remove Bar %d Action Page'],5)) + InterfaceOptionsActionBarsPanelBottomRight.Text:SetText((L['Remove Bar %d Action Page']):format(2)) + InterfaceOptionsActionBarsPanelBottomLeft.Text:SetText((L['Remove Bar %d Action Page']):format(3)) + InterfaceOptionsActionBarsPanelRightTwo.Text:SetText((L['Remove Bar %d Action Page']):format(4)) + InterfaceOptionsActionBarsPanelRight.Text:SetText((L['Remove Bar %d Action Page']):format(5)) InterfaceOptionsActionBarsPanelBottomRight:SetScript('OnEnter',nil) InterfaceOptionsActionBarsPanelBottomLeft:SetScript('OnEnter',nil) InterfaceOptionsActionBarsPanelRightTwo:SetScript('OnEnter',nil) @@ -963,63 +1050,527 @@ local SVUIButton_ShowOverlayGlow = function(self) self.overlay:WrapOuter(self, size) end -local function ResetAllBindings() +local ResetAllBindings = function(self) if InCombatLockdown()then return end - for barID,stored in pairs(MOD.Storage)do + for barID,stored in pairs(self.Storage)do local bar = stored.bar; if not bar then return end ClearOverrideBindings(bar); end - MOD:RegisterEvent("PLAYER_REGEN_DISABLED","UpdateAllBindings") + self:RegisterEvent("PLAYER_REGEN_DISABLED", "UpdateAllBindings") end +--[[ +########################################################## +BAR CREATION +########################################################## +]]-- +local CreateActionBars, CreateStanceBar, CreatePetBar, CreateMicroBar; + +CreateActionBars = function(self) + for i = 1, 6 do + local barID = ("Bar%d"):format(i) + local barName = ("SVUI_Action%s"):format(barID) + local buttonMax = NUM_ACTIONBAR_BUTTONS + + local thisBar = CreateFrame("Frame", barName, SuperVillain.UIParent, "SecureHandlerStateTemplate") + + if(i == 1) then + thisBar:Point("BOTTOM", SuperVillain.UIParent, "BOTTOM", 0, 28) + elseif(i == 2) then + thisBar:Point("BOTTOM", _G["SVUI_ActionBar1"], "TOP", 0, 4) + elseif(i == 3) then + thisBar:Point("BOTTOMLEFT", _G["SVUI_ActionBar1"], "BOTTOMRIGHT", 4, 0) + elseif(i == 4) then + thisBar:Point("RIGHT", SuperVillain.UIParent, "RIGHT", -4, 0) + elseif(i == 5) then + thisBar:Point("BOTTOMRIGHT", _G["SVUI_ActionBar1"], "BOTTOMLEFT", -4, 0) + else + thisBar:Point("BOTTOM", _G["SVUI_ActionBar2"], "TOP", 0, 4) + end + + local bg = CreateFrame("Frame", nil, thisBar) + bg:SetAllPoints() + bg:SetFrameLevel(0) + thisBar:SetFrameLevel(5) + bg:SetPanelTemplate("Component") + bg:SetPanelColor("dark") + thisBar.backdrop = bg + + self.Storage[barID].buttons = {} + + for k = 1, buttonMax do + local buttonName = ("%sButton%d"):format(barName, k) + self.Storage[barID].buttons[k] = LibAB:CreateButton(k, buttonName, thisBar, nil) + self.Storage[barID].buttons[k]:SetState(0, "action", k) + for x = 1, 14 do + local calc = (x - 1) * buttonMax + k; + self.Storage[barID].buttons[k]:SetState(x, "action", calc) + end; + if k == 12 then + self.Storage[barID].buttons[k]:SetState(12, "custom", { + func = function(...) + if UnitExists("vehicle") then + VehicleExit() + else + PetDismiss() + end + end, + texture = "Interface\\Vehicles\\UI-Vehicles-Button-Exit-Down", + tooltip = LEAVE_VEHICLE + }); + end + end; + self:SetBarConfigData(barID) + if i == 1 then + thisBar:SetAttribute("hasTempBar", true) + else + thisBar:SetAttribute("hasTempBar", false) + end; + thisBar:SetAttribute("_onstate-page", [[ + if HasTempShapeshiftActionBar() and self:GetAttribute("hasTempBar") then + newstate = GetTempShapeshiftBarIndex() or newstate + end + + if newstate ~= 0 then + self:SetAttribute("state", newstate) + control:ChildUpdate("state", newstate) + else + local newCondition = self:GetAttribute("newCondition") + if newCondition then + newstate = SecureCmdOptionParse(newCondition) + self:SetAttribute("state", newstate) + control:ChildUpdate("state", newstate) + end + end + ]]); + self.Storage[barID].bar = thisBar; + self:RefreshBar(barID) + SuperVillain:SetSVMovable(thisBar, L[barID], nil, nil, nil, "ALL, ACTIONBARS") + end +end + +do + local function SetStanceBarButtons() + local maxForms = GetNumShapeshiftForms(); + local currentForm = GetShapeshiftForm(); + local maxButtons = NUM_STANCE_SLOTS; + local texture, name, isActive, isCastable, _; + for i = 1, maxButtons do + local button = _G["SVUI_StanceBarButton"..i] + local icon = _G["SVUI_StanceBarButton"..i.."Icon"] + local cd = _G["SVUI_StanceBarButton"..i.."Cooldown"] + if i <= maxForms then + texture, name, isActive, isCastable = GetShapeshiftFormInfo(i) + if texture == "Interface\\Icons\\Spell_Nature_WispSplode" and MOD.db.Stance.style == "darkenInactive" then + _, _, texture = GetSpellInfo(name) + end + icon:SetTexture(texture) + if texture then + cd:SetAlpha(1) + else + cd:SetAlpha(0) + end + if isActive then + StanceBarFrame.lastSelected = button:GetID() + if maxForms == 1 then + button:SetChecked(1) + else + if button.checked then button.checked:SetTexture(0, 0.5, 0, 0.2) end + button:SetBackdropBorderColor(0.4, 0.8, 0) + button:SetChecked(MOD.db.Stance.style ~= "darkenInactive") + end + else + if maxForms == 1 or currentForm == 0 then + button:SetChecked(0) + else + button:SetBackdropBorderColor(0, 0, 0) + button:SetChecked(MOD.db.Stance.style == "darkenInactive") + if button.checked then + button.checked:SetAlpha(1) + if MOD.db.Stance.style == "darkenInactive" then + button.checked:SetTexture(0, 0, 0, 0.75) + else + button.checked:SetTexture(1, 1, 1, 0.25) + end + end + end + end + if isCastable then + icon:SetVertexColor(1.0, 1.0, 1.0) + else + icon:SetVertexColor(0.4, 0.4, 0.4) + end + end + end + end + + local function UpdateShapeshiftForms(self, event) + if InCombatLockdown() or not _G["SVUI_StanceBar"] then return end + local bar = _G["SVUI_StanceBar"]; + for i = 1, #MOD.Storage["Stance"].buttons do + MOD.Storage["Stance"].buttons[i]:Hide() + end + local ready = false; + local maxForms = GetNumShapeshiftForms() + for i = 1, NUM_STANCE_SLOTS do + if not MOD.Storage["Stance"].buttons[i]then + MOD.Storage["Stance"].buttons[i] = CreateFrame("CheckButton", format("SVUI_StanceBarButton%d", i), bar, "StanceButtonTemplate") + MOD.Storage["Stance"].buttons[i]:SetID(i) + ready = true + end + if i <= maxForms then + MOD.Storage["Stance"].buttons[i]:Show() + else + MOD.Storage["Stance"].buttons[i]:Hide() + end + end + MOD:RefreshBar("Stance") + if event == "UPDATE_SHAPESHIFT_FORMS" then + SetStanceBarButtons() + end + if not C_PetBattles.IsInBattle() or ready then + if maxForms == 0 then + UnregisterStateDriver(bar, "show") + bar:Hide() + else + bar:Show() + RegisterStateDriver(bar, "show", "[petbattle] hide;show") + end + end + end + + local function UpdateShapeshiftCD() + local maxForms = GetNumShapeshiftForms() + for i = 1, NUM_STANCE_SLOTS do + if i <= maxForms then + local cooldown = _G["SVUI_StanceBarButton"..i.."Cooldown"] + local start, duration, enable = GetShapeshiftFormCooldown(i) + CooldownFrame_SetTimer(cooldown, start, duration, enable) + end + end + end + + CreateStanceBar = function(self) + local barID = "Stance"; + local parent = _G["SVUI_ActionBar1"] + local maxForms = GetNumShapeshiftForms(); + if self.db["Bar2"].enable then + parent = _G["SVUI_ActionBar2"] + end + local stanceBar = CreateFrame("Frame", "SVUI_StanceBar", SuperVillain.UIParent, "SecureHandlerStateTemplate") + stanceBar:Point("BOTTOMRIGHT",parent,"TOPRIGHT",0,2); + stanceBar:SetFrameLevel(5); + local bg = CreateFrame("Frame", nil, stanceBar) + bg:SetAllPoints(); + bg:SetFrameLevel(0); + bg:SetPanelTemplate("Component") + bg:SetPanelColor("dark") + stanceBar.backdrop = bg; + for i = 1, NUM_STANCE_SLOTS do + self.Storage[barID].buttons[i] = _G["SVUI_StanceBarButton"..i] + end + stanceBar:SetAttribute("_onstate-show", [[ + if newstate == "hide" then + self:Hide(); + else + self:Show(); + end + ]]); + self.Storage[barID].bar = stanceBar; + self:RegisterEvent("UPDATE_SHAPESHIFT_FORMS", UpdateShapeshiftForms) + self:RegisterEvent("UPDATE_SHAPESHIFT_COOLDOWN", UpdateShapeshiftCD) + self:RegisterEvent("UPDATE_SHAPESHIFT_USABLE", SetStanceBarButtons) + self:RegisterEvent("UPDATE_SHAPESHIFT_FORM", SetStanceBarButtons) + self:RegisterEvent("ACTIONBAR_PAGE_CHANGED", SetStanceBarButtons) + UpdateShapeshiftForms() + SuperVillain:SetSVMovable(stanceBar, L["Stance Bar"], nil, -3, nil, "ALL, ACTIONBARS") + self:RefreshBar("Stance") + SetStanceBarButtons() + self:UpdateBarBindings(false, true) + end +end + +do + local RefreshPet = function(self, event, arg) + if event == "UNIT_AURA" and arg ~= "pet" then return end + for i = 1, NUM_PET_ACTION_SLOTS, 1 do + local name = "PetActionButton"..i; + local button = _G[name] + local icon = _G[name.."Icon"] + local auto = _G[name.."AutoCastable"] + local shine = _G[name.."Shine"] + local checked = button:GetCheckedTexture() + local actionName, subtext, actionIcon, isToken, isActive, autoCastAllowed, autoCastEnabled = GetPetActionInfo(i) + button:SetChecked(0) + button:SetBackdropBorderColor(0, 0, 0) + checked:SetAlpha(0) + if(not isToken) then + icon:SetTexture(actionIcon) + button.tooltipName = actionName + else + icon:SetTexture(_G[actionIcon]) + button.tooltipName = _G[actionName] + end + button.isToken = isToken; + button.tooltipSubtext = subtext; + if arg and actionName ~= "PET_ACTION_FOLLOW" then + if(IsPetAttackAction(i)) then PetActionButton_StartFlash(button) end + else + if(IsPetAttackAction(i)) then PetActionButton_StopFlash(button) end + end + if autoCastAllowed then + auto:Show() + else + auto:Hide() + end + if (isActive and actionName ~= "PET_ACTION_FOLLOW") then + button:SetChecked(1) + checked:SetAlpha(1) + button:SetBackdropBorderColor(0.4, 0.8, 0) + else + button:SetChecked(0) + checked:SetAlpha(0) + button:SetBackdropBorderColor(0, 0, 0) + end + if(autoCastEnabled) then + AutoCastShine_AutoCastStart(shine) + else + AutoCastShine_AutoCastStop(shine) + end + button:SetAlpha(1) + if actionIcon then + icon:Show() + if GetPetActionSlotUsable(i)then + SetDesaturation(icon, nil) + else + SetDesaturation(icon, 1) + end + else + icon:Hide() + end + if(not PetHasActionBar() and actionIcon and actionName ~= "PET_ACTION_FOLLOW") then + PetActionButton_StopFlash(button) + SetDesaturation(icon, 1) + button:SetChecked(0) + end + end + end + + CreatePetBar = function(self) + local barID = "Pet"; + local parent = _G["SVUI_ActionBar1"] + if self.db["Bar2"].enable then + parent = _G["SVUI_ActionBar2"] + end + local petBar = CreateFrame("Frame", "SVUI_PetActionBar", SuperVillain.UIParent, "SecureHandlerStateTemplate") + petBar:Point("BOTTOMLEFT",parent,"TOPLEFT",0,2); + petBar:SetFrameLevel(5); + local bg = CreateFrame("Frame", nil, petBar) + bg:SetAllPoints(); + bg:SetFrameLevel(0); + bg:SetPanelTemplate("Component") + bg:SetPanelColor("dark") + petBar.backdrop = bg; + for i = 1, NUM_PET_ACTION_SLOTS do + self.Storage[barID].buttons[i] = _G["PetActionButton"..i] + end + petBar:SetAttribute("_onstate-show", [[ + if newstate == "hide" then + self:Hide(); + else + self:Show(); + end + ]]); + self.Storage[barID].bar = petBar; + PetActionBarFrame.showgrid = 1; + PetActionBar_ShowGrid(); + self:RefreshBar("Pet") + self:UpdateBarBindings(true, false) + self:RegisterEvent("PLAYER_CONTROL_GAINED", RefreshPet) + self:RegisterEvent("PLAYER_ENTERING_WORLD", RefreshPet) + self:RegisterEvent("PLAYER_CONTROL_LOST", RefreshPet) + self:RegisterEvent("PET_BAR_UPDATE", RefreshPet) + self:RegisterEvent("UNIT_PET", RefreshPet) + self:RegisterEvent("UNIT_FLAGS", RefreshPet) + self:RegisterEvent("UNIT_AURA", RefreshPet) + self:RegisterEvent("PLAYER_FARSIGHT_FOCUS_CHANGED", RefreshPet) + self:RegisterEvent("PET_BAR_UPDATE_COOLDOWN", PetActionBar_UpdateCooldowns) + + SuperVillain:SetSVMovable(petBar, L["Pet Bar"], nil, nil, nil, "ALL, ACTIONBARS") + end +end + +CreateMicroBar = function(self) + local buttonSize = self.db.Micro.buttonsize or 30; + local spacing = self.db.Micro.buttonspacing or 1; + local barWidth = (buttonSize + spacing) * 13; + local microBar = NewFrame('Frame','SVUI_MicroBar',SuperVillain.UIParent) + microBar:Size(barWidth,buttonSize + 6) + microBar:SetFrameStrata("HIGH") + microBar:SetFrameLevel(0) + microBar:Point('TOP',SuperVillain.UIParent,'TOP',0,4) + SuperVillain:AddToDisplayAudit(microBar) + for i=1,13 do + local data = ICON_DATA[i] + local button = _G[data[1]] + button:SetParent(SVUI_MicroBar) + button:Size(buttonSize, buttonSize + 28) + button.Flash:SetTexture("") + if button.SetPushedTexture then + button:SetPushedTexture("") + end + if button.SetNormalTexture then + button:SetNormalTexture("") + end + if button.SetDisabledTexture then + button:SetDisabledTexture("") + end + if button.SetHighlightTexture then + button:SetHighlightTexture("") + end + button:Formula409() + + local buttonMask = NewFrame("Frame",nil,button) + buttonMask:SetPoint("TOPLEFT",button,"TOPLEFT",0,-28) + buttonMask:SetPoint("BOTTOMRIGHT",button,"BOTTOMRIGHT",0,0) + buttonMask:SetFramedButtonTemplate() + buttonMask:SetPanelColor() + buttonMask.icon = buttonMask:CreateTexture(nil,"OVERLAY",nil,2) + buttonMask.icon:FillInner(buttonMask,2,2) + buttonMask.icon:SetTexture(ICON_FILE) + buttonMask.icon:SetTexCoord(data[2],data[3],data[4],data[5]) + buttonMask.icon:SetGradient("VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1) + button.overlay = buttonMask; + button._fade = self.db.Micro.mouseover + button:HookScript('OnEnter', MicroButton_OnEnter) + button:HookScript('OnLeave', MicroButton_OnLeave) + button:Show() + end + + MicroButtonPortrait:ClearAllPoints() + MicroButtonPortrait:Hide() + MainMenuBarPerformanceBar:ClearAllPoints() + MainMenuBarPerformanceBar:Hide() + + NewHook('MainMenuMicroButton_SetNormal', SVUIMicroButton_SetNormal) + NewHook('UpdateMicroButtonsParent', SVUIMicroButtonsParent) + NewHook('MoveMicroButtons', RefreshMicrobar) + NewHook('UpdateMicroButtons', MicroButton_OnUpdate) + + SVUIMicroButtonsParent(microBar) + SVUIMicroButton_SetNormal() + + SuperVillain:SetSVMovable(microBar, L["Micro Bar"]) + + RefreshMicrobar() + + microBar.screenMarker = NewFrame('Frame',nil,SuperVillain.UIParent) + microBar.screenMarker:Point('TOP',SuperVillain.UIParent,'TOP',0,2) + microBar.screenMarker:Size(20,20) + microBar.screenMarker:SetFrameStrata("BACKGROUND") + microBar.screenMarker:SetFrameLevel(4) + microBar.screenMarker.icon = microBar.screenMarker:CreateTexture(nil,'OVERLAY') + microBar.screenMarker.icon:SetAllPoints(microBar.screenMarker) + microBar.screenMarker.icon:SetTexture("Interface\\Addons\\SVUI\\assets\\artwork\\Icons\\ARROW-DOWN") + microBar.screenMarker.icon:SetGradient("VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1) + + SVUI_MicroBar:SetAlpha(0) +end + +local CreateExtraBar = function(self) + local specialBar = CreateFrame("Frame", "SVUI_SpecialAbility", SuperVillain.UIParent) + specialBar:Point("TOP", SuperVillain.UIParent, "CENTER", 0, -50) + specialBar:Size(ExtraActionBarFrame:GetSize()) + ExtraActionBarFrame:SetParent(specialBar) + ExtraActionBarFrame:ClearAllPoints() + ExtraActionBarFrame:SetPoint("CENTER", specialBar, "CENTER") + ExtraActionBarFrame.ignoreFramePositionManager = true; + local max = ExtraActionBarFrame:GetNumChildren() + for i = 1, max do + local name = ("ExtraActionButton%d"):format(i) + local icon = ("%sIcon"):format(name) + local cool = ("%sCooldown"):format(name) + local button = _G[name] + if(button) then + button.noResize = true; + button.pushed = true; + button.checked = true; + ModifyActionButton(button) + button:SetFixedPanelTemplate() + _G[icon]:SetDrawLayer("ARTWORK") + _G[cool]:FillInner() + local checkedTexture = button:CreateTexture(nil, "OVERLAY") + checkedTexture:SetTexture(0.9, 0.8, 0.1, 0.3) + checkedTexture:FillInner() + button:SetCheckedTexture(checkedTexture) + end + end + if HasExtraActionBar()then + ExtraActionBarFrame:Show() + end + SuperVillain:SetSVMovable(specialBar, L["Boss Button"], nil, nil, nil, "ALL, ACTIONBAR") +end +--[[ +########################################################## +DEFAULT REMOVAL +########################################################## +]]-- local function RemoveDefaults() - local removalManager=CreateFrame("Frame") + local removalManager = CreateFrame("Frame") removalManager:Hide() MultiBarBottomLeft:SetParent(removalManager) MultiBarBottomRight:SetParent(removalManager) MultiBarLeft:SetParent(removalManager) MultiBarRight:SetParent(removalManager) - for i=1,12 do - _G["ActionButton"..i]:Hide() - _G["ActionButton"..i]:UnregisterAllEvents() - _G["ActionButton"..i]:SetAttribute("statehidden",true) - _G["MultiBarBottomLeftButton"..i]:Hide() - _G["MultiBarBottomLeftButton"..i]:UnregisterAllEvents() - _G["MultiBarBottomLeftButton"..i]:SetAttribute("statehidden",true) - _G["MultiBarBottomRightButton"..i]:Hide() - _G["MultiBarBottomRightButton"..i]:UnregisterAllEvents() - _G["MultiBarBottomRightButton"..i]:SetAttribute("statehidden",true) - _G["MultiBarRightButton"..i]:Hide() - _G["MultiBarRightButton"..i]:UnregisterAllEvents() - _G["MultiBarRightButton"..i]:SetAttribute("statehidden",true) - _G["MultiBarLeftButton"..i]:Hide() - _G["MultiBarLeftButton"..i]:UnregisterAllEvents() - _G["MultiBarLeftButton"..i]:SetAttribute("statehidden",true) - if _G["VehicleMenuBarActionButton"..i] then - _G["VehicleMenuBarActionButton"..i]:Hide() - _G["VehicleMenuBarActionButton"..i]:UnregisterAllEvents() - _G["VehicleMenuBarActionButton"..i]:SetAttribute("statehidden",true) - end - if _G['OverrideActionBarButton'..i] then - _G['OverrideActionBarButton'..i]:Hide() - _G['OverrideActionBarButton'..i]:UnregisterAllEvents() - _G['OverrideActionBarButton'..i]:SetAttribute("statehidden",true) + for i = 1, 12 do + local ab = _G[("ActionButton%d"):format(i)] + ab:Hide() + ab:UnregisterAllEvents() + ab:SetAttribute("statehidden", true) + local mbl = _G[("MultiBarLeftButton%d"):format(i)] + mbl:Hide() + mbl:UnregisterAllEvents() + mbl:SetAttribute("statehidden", true) + local mbr = _G[("MultiBarRightButton%d"):format(i)] + mbr:Hide() + mbr:UnregisterAllEvents() + mbr:SetAttribute("statehidden", true) + local mbbl = _G[("MultiBarBottomLeftButton%d"):format(i)] + mbbl:Hide() + mbbl:UnregisterAllEvents() + mbbl:SetAttribute("statehidden", true) + local mbbr = _G[("MultiBarBottomRightButton%d"):format(i)] + mbbr:Hide() + mbbr:UnregisterAllEvents() + mbbr:SetAttribute("statehidden", true) + local mca = _G[("MultiCastActionButton%d"):format(i)] + mca:Hide() + mca:UnregisterAllEvents() + mca:SetAttribute("statehidden", true) + local vb = _G[("VehicleMenuBarActionButton%d"):format(i)] + if(vb) then + vb:Hide() + vb:UnregisterAllEvents() + vb:SetAttribute("statehidden", true) + end + local ob = _G[("OverrideActionBarButton%d"):format(i)] + if(ob) then + ob:Hide() + ob:UnregisterAllEvents() + ob:SetAttribute("statehidden", true) end - _G['MultiCastActionButton'..i]:Hide() - _G['MultiCastActionButton'..i]:UnregisterAllEvents() - _G['MultiCastActionButton'..i]:SetAttribute("statehidden",true) end ActionBarController:UnregisterAllEvents() - ActionBarController:RegisterEvent('UPDATE_EXTRA_ACTIONBAR') + ActionBarController:RegisterEvent("UPDATE_EXTRA_ACTIONBAR") MainMenuBar:EnableMouse(false) MainMenuBar:SetAlpha(0) MainMenuExpBar:UnregisterAllEvents() MainMenuExpBar:Hide() MainMenuExpBar:SetParent(removalManager) local maxChildren = MainMenuBar:GetNumChildren(); - for i=1,maxChildren do - local child=select(i,MainMenuBar:GetChildren()) + for i = 1, maxChildren do + local child = select(i, MainMenuBar:GetChildren()) if child then child:UnregisterAllEvents() child:Hide() @@ -1075,6 +1626,8 @@ end BUILD FUNCTION / UPDATE ########################################################## ]]-- +MOD.UpdateMicroButtons = MicroButton_OnUpdate + function MOD:ReLoad() self:RefreshActionBars(); end @@ -1084,14 +1637,21 @@ function MOD:Load() RemoveDefaults(); self:Protect("RefreshActionBars"); self:UpdateBarPagingDefaults(); - SuperVillain.Registry:RunTemp("SVBar"); + CreateActionBars(self) + CreateStanceBar(self) + CreatePetBar(self) + CreateMicroBar(self) + CreateExtraBar(self) + + self:LoadKeyBinder() + self:RegisterEvent("UPDATE_BINDINGS", "UpdateAllBindings") self:RegisterEvent("PET_BATTLE_CLOSE", "UpdateAllBindings") self:RegisterEvent("PET_BATTLE_OPENING_DONE", ResetAllBindings) self:RegisterEvent("UPDATE_VEHICLE_ACTIONBAR", Vehicle_Updater) self:RegisterEvent("UPDATE_OVERRIDE_ACTIONBAR", Vehicle_Updater) if C_PetBattles.IsInBattle()then - ResetAllBindings() + ResetAllBindings(self) else self:UpdateAllBindings() end @@ -1102,5 +1662,4 @@ function MOD:Load() MOD.IsLoaded = true end -SuperVillain.Registry:NewPackage(MOD, "SVBar") -SuperVillain.Registry:Temp("SVBar", CreateExtraBar) \ No newline at end of file +SuperVillain.Registry:NewPackage(MOD, "SVBar") \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/actionbar/SVBar.xml b/Interface/AddOns/SVUI/packages/actionbar/SVBar.xml index 0ce0c19..d9ab5f5 100644 --- a/Interface/AddOns/SVUI/packages/actionbar/SVBar.xml +++ b/Interface/AddOns/SVUI/packages/actionbar/SVBar.xml @@ -1,4 +1,4 @@