From 5cfab9da43cd6e0cb877a375c1ee04c5c47d50ad Mon Sep 17 00:00:00 2001 From: Steven Jackson Date: Tue, 14 Oct 2014 14:15:58 -0500 Subject: [PATCH] 5.0.12 --- Interface/AddOns/SVUI/packages/dock/SVDock.lua | 4 +- Interface/AddOns/SVUI/scripts/ego.lua | 102 +++-- Interface/AddOns/SVUI/scripts/questwatch.lua | 433 ++++---------------- .../AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua | 136 +++--- .../SVUI_CraftOMatic/components/archaeology.lua | 11 +- .../AddOns/SVUI_CraftOMatic/components/cooking.lua | 7 +- .../AddOns/SVUI_CraftOMatic/components/farming.lua | 6 +- .../AddOns/SVUI_CraftOMatic/components/fishing.lua | 6 +- .../BUTTONS/ActionBarFlyoutButton-FlyoutMid.blp | Bin 0 -> 3940 bytes .../ActionBarFlyoutButton-FlyoutMidLeft.blp | Bin 0 -> 3940 bytes Interface/BUTTONS/ActionBarFlyoutButton.blp | Bin 0 -> 12132 bytes Interface/BUTTONS/Thumbs.db | Bin 0 -> 3072 bytes Interface/BUTTONS/UI-Button-Borders.blp | Bin 0 -> 23060 bytes Interface/BUTTONS/UI-Button-Borders2.blp | Bin 0 -> 88596 bytes Interface/BUTTONS/UI-CheckBox-Check-Disabled.blp | Bin 0 -> 2580 bytes Interface/BUTTONS/UI-CheckBox-Check.blp | Bin 0 -> 2580 bytes Interface/BUTTONS/UI-CheckBox-Down.blp | Bin 0 -> 2580 bytes Interface/BUTTONS/UI-CheckBox-Up.blp | Bin 0 -> 2580 bytes Interface/BUTTONS/UI-Debuff-Overlays.blp | Bin 0 -> 12132 bytes Interface/BUTTONS/UI-MinusButton-Disabled.blp | Bin 0 -> 1556 bytes Interface/BUTTONS/UI-MinusButton-Down.blp | Bin 0 -> 1556 bytes Interface/BUTTONS/UI-MinusButton-Up.blp | Bin 0 -> 1556 bytes Interface/BUTTONS/UI-SliderBar-Border.blp | Bin 1564 -> 1924 bytes 23 files changed, 217 insertions(+), 488 deletions(-) create mode 100644 Interface/BUTTONS/ActionBarFlyoutButton-FlyoutMid.blp create mode 100644 Interface/BUTTONS/ActionBarFlyoutButton-FlyoutMidLeft.blp create mode 100644 Interface/BUTTONS/ActionBarFlyoutButton.blp create mode 100644 Interface/BUTTONS/Thumbs.db create mode 100644 Interface/BUTTONS/UI-Button-Borders.blp create mode 100644 Interface/BUTTONS/UI-Button-Borders2.blp create mode 100644 Interface/BUTTONS/UI-CheckBox-Check-Disabled.blp create mode 100644 Interface/BUTTONS/UI-CheckBox-Check.blp create mode 100644 Interface/BUTTONS/UI-CheckBox-Down.blp create mode 100644 Interface/BUTTONS/UI-CheckBox-Up.blp create mode 100644 Interface/BUTTONS/UI-Debuff-Overlays.blp create mode 100644 Interface/BUTTONS/UI-MinusButton-Disabled.blp create mode 100644 Interface/BUTTONS/UI-MinusButton-Down.blp create mode 100644 Interface/BUTTONS/UI-MinusButton-Up.blp diff --git a/Interface/AddOns/SVUI/packages/dock/SVDock.lua b/Interface/AddOns/SVUI/packages/dock/SVDock.lua index b91bf9b..5018ff0 100644 --- a/Interface/AddOns/SVUI/packages/dock/SVDock.lua +++ b/Interface/AddOns/SVUI/packages/dock/SVDock.lua @@ -395,6 +395,8 @@ function MOD:CreateBasicToolButton(name,texture,onclick,frameName,isdefault) DEFAULT_DOCKLET = fName button:SaveColors("green", "green") end + + return button end --[[ ########################################################## @@ -879,7 +881,7 @@ function SV:RegisterDocklet(name, tooltip, texture, onclick, isdefault) frame.FrameName = name; tinsert(DOCKLET_CACHE, frame); frame.listIndex = #DOCKLET_CACHE; - self.SVDock:CreateBasicToolButton(tooltip, texture, onclick, name, isdefault) + frame.ToolbarButton = self.SVDock:CreateBasicToolButton(tooltip, texture, onclick, name, isdefault) end end diff --git a/Interface/AddOns/SVUI/scripts/ego.lua b/Interface/AddOns/SVUI/scripts/ego.lua index 4cebace..5b6a9fa 100644 --- a/Interface/AddOns/SVUI/scripts/ego.lua +++ b/Interface/AddOns/SVUI/scripts/ego.lua @@ -33,66 +33,88 @@ local L = SV.L local Sequences = { {65, 1000}, --shrug + {68, 1000}, --cheer {70, 1000}, --laugh {74, 1000}, --roar + {77, 1000}, --cry + {84, 1000}, --point {82, 1000}, --flex }; +local EgoFrame = CreateFrame("PlayerModel", "SVUI_EgoModel", UIParent); + local function rng() return random(1, #Sequences) end -local GoGoGadget = function(self, key) +local LaunchAnimation = function(self, key) key = key or rng() local emote = Sequences[key][1] - self:SetAlpha(1) - self.Model1:SetAnimation(emote) - self.Model2:SetAnimation(emote) + self:Show() + self:SetAnimation(emote) + self.anim:Play() end -local function LoadSVEgo() - local GameMenuFrame = _G.GameMenuFrame +local LaunchFreezeFrame = function(self, key) + key = key or rng() + local animation = Sequences[key] + local size = SVUIParent:GetHeight() + self:Show() + self:SetSequenceTime(unpack(animation)) + self.anim[2]:SetOffset(size, -size) + self.anim[2]:SetOffset(0, 0) + self.anim:Play() +end - local EgoFrame = CreateFrame("Frame", "SVUI_EgoFrame", UIParent); - EgoFrame:SetParent(GameMenuFrame) - EgoFrame:SetFrameLevel(0) - EgoFrame:SetAllPoints(SV.UIParent) +local ResetPosition = function(self) + local size = SVUIParent:GetHeight() + self:SetPoint("TOP", SV.UIParent, "TOP", 0, 0) + self:SetWidth(size) + self:SetHeight(size) + self:SetUnit("player") +end - EgoFrame.BG1 = EgoFrame:CreateTexture(nil, "BACKGROUND", nil, -7) - EgoFrame.BG1:SetPoint("TOPLEFT", EgoFrame, "TOPLEFT", 0, 0) - EgoFrame.BG1:SetPoint("BOTTOMRIGHT", EgoFrame, "TOPRIGHT", 0, -300) - EgoFrame.BG1:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) - EgoFrame.BG1:SetVertexColor(0, 0, 0, 0.8) +local Ego_OnEvent = function(self, event) + if event == "ACHIEVEMENT_EARNED" then + self:LaunchAnimation(4) + else + self:LaunchAnimation(6) + end +end - EgoFrame.BG2 = EgoFrame:CreateTexture(nil, "BACKGROUND", nil, -7) - EgoFrame.BG2:SetPoint("BOTTOMLEFT", EgoFrame, "BOTTOMLEFT", 0, 0) - EgoFrame.BG2:SetPoint("TOPRIGHT", EgoFrame, "BOTTOMRIGHT", 0, 300) - EgoFrame.BG2:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) - EgoFrame.BG2:SetVertexColor(0, 0, 0, 0.8) +function SV:ToggleEgo() + if not SV.db.general.ego then + EgoFrame:UnregisterEvent("ACHIEVEMENT_EARNED") + EgoFrame:UnregisterEvent("SCREENSHOT_SUCCEEDED") + EgoFrame:SetScript("OnEvent", nil) + else + EgoFrame:RegisterEvent("ACHIEVEMENT_EARNED") + EgoFrame:RegisterEvent("SCREENSHOT_SUCCEEDED") + EgoFrame:SetScript("OnEvent", Ego_OnEvent) + end +end - EgoFrame.Model1 = CreateFrame("PlayerModel", "SVUI_EgoModel1", EgoFrame); - EgoFrame.Model1:SetUnit("player") - EgoFrame.Model1:SetRotation(1) - EgoFrame.Model1:SetPortraitZoom(0.3) - EgoFrame.Model1:SetPosition(0,0,-0.25) - EgoFrame.Model1:SetFrameStrata("BACKGROUND") - EgoFrame.Model1:SetPoint("TOPLEFT", EgoFrame, "TOPLEFT", -250, -300) - EgoFrame.Model1:SetPoint("BOTTOMRIGHT", EgoFrame, "BOTTOM", 0, 300) +local EgoPop_OnUpdate = function(self) self.parent:SetAlpha(0) end - EgoFrame.Model2 = CreateFrame("PlayerModel", "SVUI_EgoModel2", EgoFrame); - EgoFrame.Model2:SetUnit("player") - EgoFrame.Model2:SetRotation(-1) - EgoFrame.Model2:SetPortraitZoom(0.3) - EgoFrame.Model2:SetPosition(0,0,-0.25) - EgoFrame.Model2:SetFrameStrata("BACKGROUND") - EgoFrame.Model2:SetPoint("TOPRIGHT", EgoFrame, "TOPRIGHT", 250, -300) - EgoFrame.Model2:SetPoint("BOTTOMLEFT", EgoFrame, "BOTTOM", 250, 300) +local function LoadSVEgo() + local size = UIParent:GetWidth() + EgoFrame:SetParent(SV.UIParent) + EgoFrame:SetPoint("TOP", SV.UIParent, "TOP", 0, 0) + EgoFrame:SetWidth(size) + EgoFrame:SetHeight(size) + EgoFrame:SetUnit("player") + EgoFrame.LaunchAnimation = LaunchAnimation + EgoFrame.LaunchFreezeFrame = LaunchFreezeFrame + EgoFrame.ResetPosition = ResetPosition + SV.Animate:Slide(EgoFrame, 0, 0, true, 1.5) + EgoFrame.anim[4]:SetScript("OnFinished", EgoPop_OnUpdate) - EgoFrame.GoGoGadget = GoGoGadget + EgoFrame:Hide() +end - EgoFrame:SetScript("OnShow", function(self) - self:GoGoGadget() - end) +_G.SlashCmdList["BADASS"] = function() + EgoFrame:LaunchAnimation(4) end +_G.SLASH_BADASS1 = "/badass" SV:NewScript(LoadSVEgo) \ No newline at end of file diff --git a/Interface/AddOns/SVUI/scripts/questwatch.lua b/Interface/AddOns/SVUI/scripts/questwatch.lua index e7884af..4932ff6 100644 --- a/Interface/AddOns/SVUI/scripts/questwatch.lua +++ b/Interface/AddOns/SVUI/scripts/questwatch.lua @@ -53,299 +53,59 @@ GET ADDON DATA ]]-- local SV = select(2, ...) local L = SV.L -local QuestDocklet = CreateFrame("Frame", "SVQuestFrameEventListener", UIParent) --[[ ########################################################## LOCAL VARS ########################################################## ]]-- -local WatchFrame = _G["WatchFrame"]; -local SuperDockWindowRight; -local currentQuestItems = {}; -local QuestDockletFrame, QuestDockletFrameTitle, QuestDockletFrameList, QuestDockletFrameSlider; +local SuperDockWindowRight, QuestFrame; local ICON_FILE = [[Interface\AddOns\SVUI\assets\artwork\Icons\DOCK-QUESTS]] -local WATCHFRAME_MAXLINEWIDTH = _G.WATCHFRAME_MAXLINEWIDTH; -local WATCHFRAME_EXPANDEDWIDTH = _G.WATCHFRAME_EXPANDEDWIDTH; -local WATCHFRAME_FILTER_TYPE = _G.WATCHFRAME_FILTER_TYPE; -local WATCHFRAME_FILTER_COMPLETED_QUESTS = _G.WATCHFRAME_FILTER_COMPLETED_QUESTS; -local WATCHFRAME_FILTER_ACHIEVEMENTS = _G.WATCHFRAME_FILTER_ACHIEVEMENTS; -local WATCHFRAME_FILTER_REMOTE_ZONES = _G.WATCHFRAME_FILTER_REMOTE_ZONES; -local OBJECTIVES_TRACKER_LABEL = _G.OBJECTIVES_TRACKER_LABEL; -local WATCHFRAME_NUM_ITEMS = _G.WATCHFRAME_NUM_ITEMS; +local OBJECTIVE_TRACKER_LINE_WIDTH = _G.OBJECTIVE_TRACKER_LINE_WIDTH; --[[ ########################################################## PRE VARS/FUNCTIONS ########################################################## ]]-- -local IsTrackingCompletedQuests = function() - return band(WATCHFRAME_FILTER_TYPE, WATCHFRAME_FILTER_COMPLETED_QUESTS) == WATCHFRAME_FILTER_COMPLETED_QUESTS or false; -end -local IsTrackingRemoteQuests = function() - return ( band(WATCHFRAME_FILTER_TYPE, WATCHFRAME_FILTER_REMOTE_ZONES) == WATCHFRAME_FILTER_REMOTE_ZONES ) or false; -end -local IsTrackingAchievements = function() - return ( band(WATCHFRAME_FILTER_TYPE, WATCHFRAME_FILTER_ACHIEVEMENTS) == WATCHFRAME_FILTER_ACHIEVEMENTS ) or false; -end -local IsUsingFilters = function() - if ( WATCHFRAME_FILTER_COMPLETED_QUESTS == nil ) then return false; end - return true; -end ---[[ -QUEST ITEM MACRO - -/target [@mouseover] -/click WatchFrameItem1 -/click WatchFrameItem2 -/click WatchFrameItem3 -/click WatchFrameItem4 -/click WatchFrameItem5 -/click WatchFrameItem6 -]]-- - --- poiWatchFrameLines1_1 --- poiWatchFrameLines2_1 --- poiWatchFrameLines3_1 --- poiButton:SetPoint("TOPRIGHT", questTitle, "TOPLEFT", 0, 5) - -local function QWQuestItems() - for i=1, WATCHFRAME_NUM_ITEMS do - local button = _G["WatchFrameItem"..i] - if button then - local point, relativeTo, relativePoint, xOffset, yOffset = button:GetPoint(1) - button:SetFrameStrata("LOW") - button:SetPoint("TOPRIGHT", relativeTo, "TOPLEFT", -31, -2); - if not button.styled then - button:SetSlotTemplate() - button:SetBackdropColor(0,0,0,0) - _G["WatchFrameItem"..i.."NormalTexture"]:SetAlpha(0) - _G["WatchFrameItem"..i.."IconTexture"]:FillInner() - _G["WatchFrameItem"..i.."IconTexture"]:SetTexCoord(0.1,0.9,0.1,0.9) - SV.Timers:AddCooldown(_G["WatchFrameItem"..i.."Cooldown"]) - button.styled = true - end - end - end -end - -local function QWCheckTimers() - local lstTimers = GetQuestTimers(); - local numTimers = 0; - local filterOK = false; - if ( lstTimers ) then - filterOK = true; - numTimers = 1; - else - numTimers = 0; - end - return filterOK,numTimers; -end - -local function QWCheckQuests() - local numQuestWatches = GetNumQuestWatches(); - local playerMoney = GetMoney(); - local numQuests = QuestMapUpdateAllQuests(); - local currentMapZone = GetCurrentMapZone(); - local questIndex = 0; - local numCurrentMapQuests = 0; - local numLocalQuests = 0; - local numToShow = 0; - local filterOK = false; - local usingFilters = IsUsingFilters(); - if ( not usingFilters ) then - filterOK = true; - return filterOK, numQuestWatches or 0; - elseif ( numQuestWatches == 0 ) then - return filterOK, numQuestWatches or 0; - end - local trackingCompleted = IsTrackingCompletedQuests(); - local trackingRemote = IsTrackingRemoteQuests(); - local localQuests = {}; - local currentMapQuests = {}; - twipe(currentQuestItems); - localQuests["zone"] = currentMapZone; - for i = 1, numQuests do - local questId = QuestPOIGetQuestIDByVisibleIndex(i); - currentMapQuests[questId] = i; - numCurrentMapQuests = numCurrentMapQuests + 1; - end - for id in pairs(currentMapQuests) do - localQuests[id] = true; - numLocalQuests = numLocalQuests + 1; - end - for i = 1, numQuestWatches do - questIndex = GetQuestIndexForWatch(i); - if ( questIndex ) then - local questTitle, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily, questID = GetQuestLogTitle(questIndex); - local requiredMoney = GetQuestLogRequiredMoney(questIndex); - local numObjectives = GetNumQuestLeaderBoards(questIndex); - local itemLink,itemIcon,itemCharges = GetQuestLogSpecialItemInfo(questIndex); - if ( isComplete and isComplete < 0 ) then - isComplete = false; - elseif ( numObjectives == 0 and playerMoney >= requiredMoney ) then - isComplete = true; - end - if ( itemLink ) then - local _,itemID,_,_,_,_,_,_,_,_,_,_ = split(":", itemLink) - local itemName = GetItemInfo(itemLink) - currentQuestItems[itemName] = { ['id'] = itemID, ['icon'] = itemIcon, ['charge'] = itemCharges, ['macro'] = "/use item:"..itemID }; - end - local isLocal = localQuests[questID]; - filterOK = true; - if ( isComplete and not trackingCompleted ) then - filterOK = false; - elseif ( not isLocal and not trackingRemote ) then - filterOK = false; - end - if ( filterOK ) then - numToShow = numToShow + 1; - end - end - end - filterOK = false; - if ( numToShow > 0 ) then - filterOK = true; - end - return filterOK, numQuestWatches or 0; -end - -local function QWSetAllLevels() - local i = 1 - local scrollOffset = HybridScrollFrame_GetOffset(QuestLogScrollFrame) - for i,button in pairs(QuestLogScrollFrame.buttons) do - local questIndex = i + scrollOffset - local questTitle, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily, questID = GetQuestLogTitle(questIndex) - if ( not isHeader ) and questTitle then - local newTitle = string.format("[%d] %s", level or "?", questTitle) - button:SetText(newTitle) - QuestLogTitleButton_Resize(button) - end - i = i + 1 - end -end - -local function QWCheckAchievements() - local numAchievementWatches = GetNumTrackedAchievements(); - local lstAchievementWatches = GetTrackedAchievements(); - local filterOK = false; - local usingFilters = IsUsingFilters(); - if ( not usingFilters ) then - filterOK = true; - return filterOK, numAchievementWatches or 0; - end - local trackingAchievements = IsTrackingAchievements(); - filterOK = false; - if ( numAchievementWatches > 0 and trackingAchievements ) then - filterOK = true; - end - return filterOK, numAchievementWatches or 0; -end - -local function QWSetWatchFrameTitle() - local _, numQuests, numAchievements, numTimers - _, numQuests = QWCheckQuests() - _, numAchievements = QWCheckAchievements() - _, numTimers = QWCheckTimers() - local numTracked = numQuests + numAchievements + numTimers; - if WatchFrameTitle then - WatchFrameTitle:SetText(OBJECTIVES_TRACKER_LABEL.." ("..numTracked ..")") - end -end - -local function QWCheckAutoShow(self) - if not self then return end - if self:IsShown() then - if WatchFrameHeader then - WatchFrameHeader:Show() - end - WatchFrameTitle:Show() - WatchFrameCollapseExpandButton:Show() - WatchFrameLines:Show() - end -end - -local function SetQuestDockEvents() - WatchFrame:HookScript("OnEvent", QWQuestItems) - WatchFrame.ScrollListUpdate = function(self) - local WatchFrame = _G.WatchFrame - QWSetWatchFrameTitle(); - WATCHFRAME_MAXLINEWIDTH = WatchFrame:GetWidth(); - if QuestDockletFrameList then - WATCHFRAME_MAXLINEWIDTH = QuestDockletFrameList:GetWidth() - 62 - end - end - WatchFrame.OnUpdate = function(self) - local WatchFrame = _G.WatchFrame - WATCHFRAME_MAXLINEWIDTH = WatchFrame:GetWidth() - if QuestDockletFrameList then - WATCHFRAME_MAXLINEWIDTH = QuestDockletFrameList:GetWidth() - 62 - end - QWQuestItems(); - --QWSetAllLevels() - WatchFrame.ScrollListUpdate() - end - -- WatchFrame.OnShow = function(self) - -- local WatchFrame = _G.WatchFrame - -- Collapsed = (WatchFrame.collapsed or false); - -- if WatchFrameHeader == nil then - -- WatchFrame.userCollapsed = true - -- end - -- UserCollapsed = (WatchFrame.userCollapsed or false); - -- if Collapsed then - -- WatchFrame_Collapse(WatchFrame) - -- WatchFrame.userCollapsed=UserCollapsed - -- else - -- WatchFrame_Expand(WatchFrame) - -- end - -- WatchFrame.OnUpdate(); - -- end - -- WatchFrame.OnShow() - - hooksecurefunc("QuestLog_Update", WatchFrame.OnUpdate) -end + --[[ ########################################################## CORE FUNCTIONS ########################################################## ]]-- -local QuestDocklet_OnEvent = function(self, event, arg) - if event == "CVAR_UPDATE" then - if arg == "WATCH_FRAME_WIDTH_TEXT" then - if WatchFrame then - WatchFrame.OnUpdate() - end - end - elseif event == "QUEST_AUTOCOMPLETE" then +local QuestFrame_OnEvent = function(self, event) + if(event == "QUEST_AUTOCOMPLETE" and SuperDockWindowRight and QuestFrame) then if SuperDockWindowRight.FrameName and _G[SuperDockWindowRight.FrameName] and _G[SuperDockWindowRight.FrameName]:IsShown() then return end - local button = _G["QuestDockletFrame_ToolBarButton"] - if not QuestDockletFrame:IsShown() then - SuperDockWindowRight.FrameName = "QuestDockletFrame" + if not QuestFrame:IsShown() then + SuperDockWindowRight.FrameName = "SVUI_QuestFrame" if not SuperDockWindowRight:IsShown()then SuperDockWindowRight:Show() end SV:CycleDocklets() - QuestDockletFrame:Show() - if button then - button.IsOpen = true; - button:SaveColors("green", "green") + QuestFrame:Show() + if(QuestFrame.ToolbarButton) then + QuestFrame.ToolbarButton.IsOpen = true; + QuestFrame.ToolbarButton:SaveColors("green", "green") end end end end -local function CreateQuestDocklet() - SuperDockWindowRight = _G["SuperDockWindowRight"] - if(SV.GameVersion >= 60000) then +local function CreateQuestFrame() + SuperDockWindowRight = _G.SuperDockWindowRight + local ObjectiveTrackerFrame = _G.ObjectiveTrackerFrame + if(not SV.db.general.questWatch) then ObjectiveTrackerFrame:RemoveTextures(true) - local frame = CreateFrame("Frame", "SVUI_QuestFrame", UIParent); - frame:SetSize(200, ObjectiveTrackerFrame:GetHeight()); - frame:SetPoint("TOPRIGHT", UIParent, "RIGHT", -200, 100); + QuestFrame = CreateFrame("Frame", "SVUI_QuestFrame", UIParent); + QuestFrame:SetSize(200, ObjectiveTrackerFrame:GetHeight()); + QuestFrame:SetPoint("TOPRIGHT", UIParent, "RIGHT", -200, 100); + ObjectiveTrackerFrame:ClearAllPoints() ObjectiveTrackerFrame:SetClampedToScreen(false) - ObjectiveTrackerFrame:SetParent(SVUI_QuestFrame) - ObjectiveTrackerFrame:SetAllPoints(SVUI_QuestFrame) - ObjectiveTrackerFrame:SetFrameLevel(SVUI_QuestFrame:GetFrameLevel() + 1) + ObjectiveTrackerFrame:SetParent(QuestFrame) + ObjectiveTrackerFrame:SetAllPoints(QuestFrame) + ObjectiveTrackerFrame:SetFrameLevel(QuestFrame:GetFrameLevel() + 1) ObjectiveTrackerFrame.ClearAllPoints = SV.fubar; ObjectiveTrackerFrame.SetPoint = SV.fubar; ObjectiveTrackerFrame.SetAllPoints = SV.fubar; @@ -357,51 +117,35 @@ local function CreateQuestDocklet() ObjectiveTrackerFrame.HeaderMenu:RemoveTextures(true) ObjectiveTrackerFrame.BlockDropDown:RemoveTextures(true) - SV.Mentalo:Add(frame, "Quest Watch"); - elseif(not SV.db.general.questWatch) then - local frame = CreateFrame("Frame", "SVUI_QuestFrame", UIParent); - frame:SetSize(200, WatchFrame:GetHeight()); - frame:SetPoint("RIGHT", UIParent, "RIGHT", -100, 0); - WatchFrame:ClearAllPoints() - WatchFrame:SetClampedToScreen(false) - WatchFrame:SetParent(SVUI_QuestFrame) - WatchFrame:SetAllPoints(SVUI_QuestFrame) - WatchFrame:SetFrameLevel(SVUI_QuestFrame:GetFrameLevel() + 1) - WatchFrame.ClearAllPoints = SV.fubar; - WatchFrame.SetPoint = SV.fubar; - WatchFrame.SetAllPoints = SV.fubar; - WatchFrameLines.ClearAllPoints = SV.fubar; - WatchFrameLines.SetPoint = SV.fubar; - WatchFrameLines.SetAllPoints = SV.fubar; - - SV.Mentalo:Add(frame, "Quest Watch"); + SV.Mentalo:Add(QuestFrame, "Quest Watch"); else local bgTex = [[Interface\BUTTONS\WHITE8X8]] local bdTex = SV.Media.bar.glow - QuestDockletFrame = CreateFrame("Frame", "QuestDockletFrame", SuperDockWindowRight); - QuestDockletFrame:SetFrameStrata("BACKGROUND"); - SV:RegisterDocklet("QuestDockletFrame", "Quest Watch", ICON_FILE, false, true) - - QuestDockletFrameList = CreateFrame("ScrollFrame", nil, QuestDockletFrame); - QuestDockletFrameList:SetPoint("TOPLEFT", QuestDockletFrame, -62, 0); - QuestDockletFrameList:SetPoint("BOTTOMRIGHT", QuestDockletFrame, -31, 21); - QuestDockletFrameList:EnableMouseWheel(true); - QuestDockletFrameSlider = CreateFrame("Slider", nil, QuestDockletFrameList); - QuestDockletFrameSlider:SetHeight(QuestDockletFrameList:GetHeight()); - QuestDockletFrameSlider:SetWidth(18); - QuestDockletFrameSlider:SetPoint("TOPRIGHT", QuestDockletFrame, "TOPRIGHT", -3, 0); - QuestDockletFrameSlider:SetBackdrop({bgFile = bgTex, edgeFile = bdTex, edgeSize = 4, insets = {left = 3, right = 3, top = 3, bottom = 3}}); - QuestDockletFrameSlider:SetFrameLevel(6) - QuestDockletFrameSlider:SetFixedPanelTemplate("Transparent", true); - QuestDockletFrameSlider:SetThumbTexture("Interface\\Buttons\\UI-ScrollBar-Knob"); - QuestDockletFrameSlider:SetOrientation("VERTICAL"); - QuestDockletFrameSlider:SetValueStep(5); - QuestDockletFrameSlider:SetMinMaxValues(1, 420); - QuestDockletFrameSlider:SetValue(1); - - QuestDockletFrameList.slider = QuestDockletFrameSlider; - QuestDockletFrameList:SetScript("OnMouseWheel", function(self, delta) + QuestFrame = CreateFrame("Frame", "SVUI_QuestFrame", SuperDockWindowRight); + QuestFrame:SetFrameStrata("BACKGROUND"); + SV:RegisterDocklet("SVUI_QuestFrame", "Quest Watch", ICON_FILE, false, true) + + local listFrame = CreateFrame("ScrollFrame", nil, QuestFrame); + listFrame:SetPoint("TOPLEFT", QuestFrame, -62, 0); + listFrame:SetPoint("BOTTOMRIGHT", QuestFrame, -31, 21); + listFrame:EnableMouseWheel(true); + + local scrollFrame = CreateFrame("Slider", nil, listFrame); + scrollFrame:SetHeight(listFrame:GetHeight()); + scrollFrame:SetWidth(18); + scrollFrame:SetPoint("TOPRIGHT", QuestFrame, "TOPRIGHT", -3, 0); + scrollFrame:SetBackdrop({bgFile = bgTex, edgeFile = bdTex, edgeSize = 4, insets = {left = 3, right = 3, top = 3, bottom = 3}}); + scrollFrame:SetFrameLevel(6) + scrollFrame:SetFixedPanelTemplate("Transparent", true); + scrollFrame:SetThumbTexture("Interface\\Buttons\\UI-ScrollBar-Knob"); + scrollFrame:SetOrientation("VERTICAL"); + scrollFrame:SetValueStep(5); + scrollFrame:SetMinMaxValues(1, 420); + scrollFrame:SetValue(1); + + listFrame.slider = scrollFrame; + listFrame:SetScript("OnMouseWheel", function(self, delta) local scroll = self:GetVerticalScroll(); local value = (scroll - (20 * delta)); if value < -1 then @@ -413,70 +157,39 @@ local function CreateQuestDocklet() self:SetVerticalScroll(value) self.slider:SetValue(value) end) - - local QuestDockletFrameTitle = CreateFrame("Frame", nil, QuestDockletFrame); - QuestDockletFrameTitle:Point("TOPLEFT", QuestDockletFrameList, "BOTTOMLEFT", 0, 0); - QuestDockletFrameTitle:Point("TOPRIGHT", QuestDockletFrameList, "BOTTOMRIGHT", 0, 0); - QuestDockletFrameTitle:SetHeight(18) - WatchFrame:ClearAllPoints() - WatchFrame:SetClampedToScreen(false) - WatchFrame:SetParent(QuestDockletFrameList) - WatchFrame:SetHeight(500) - WatchFrame:SetPoint("TOPRIGHT", QuestDockletFrameList, "TOPRIGHT", -31, 0) - WatchFrame:SetFrameLevel(QuestDockletFrameList:GetFrameLevel() + 1) - if QuestDockletFrameList then - WATCHFRAME_MAXLINEWIDTH = (QuestDockletFrameList:GetWidth() - 100); - WATCHFRAME_EXPANDEDWIDTH = (QuestDockletFrameList:GetWidth() - 100); + ObjectiveTrackerFrame:ClearAllPoints() + ObjectiveTrackerFrame:SetClampedToScreen(false) + ObjectiveTrackerFrame:SetParent(listFrame) + ObjectiveTrackerFrame:SetHeight(500) + ObjectiveTrackerFrame:SetPoint("TOPRIGHT", listFrame, "TOPRIGHT", -31, 0) + ObjectiveTrackerFrame:SetFrameLevel(listFrame:GetFrameLevel() + 1) + if listFrame then + OBJECTIVE_TRACKER_LINE_WIDTH = (listFrame:GetWidth() - 100); else - WATCHFRAME_MAXLINEWIDTH = (WatchFrame:GetWidth() - 100); - WATCHFRAME_EXPANDEDWIDTH = (WatchFrame:GetWidth() - 100); + OBJECTIVE_TRACKER_LINE_WIDTH = (ObjectiveTrackerFrame:GetWidth() - 100); end - WatchFrame:SetWidth(WATCHFRAME_MAXLINEWIDTH) - - WatchFrameHeader:SetParent(QuestDockletFrame) - WatchFrameHeader:ClearAllPoints() - WatchFrameHeader:FillInner(QuestDockletFrameTitle) - WatchFrameHeader:SetFrameLevel(2) + ObjectiveTrackerFrame:SetWidth(OBJECTIVE_TRACKER_LINE_WIDTH) - WatchFrameTitle:SetParent(QuestDockletFrame) - WatchFrameTitle:ClearAllPoints() - WatchFrameTitle:FillInner(QuestDockletFrameTitle) - - WatchFrameCollapseExpandButton:SetParent(QuestDockletFrame) - WatchFrameCollapseExpandButton:ClearAllPoints() - WatchFrameCollapseExpandButton:SetPoint("TOPRIGHT", UIParent, "BOTTOMRIGHT", 0, 0) - WatchFrameCollapseExpandButton:Hide() - - QuestDockletFrameList:SetScrollChild(WatchFrame) - QuestDockletFrameSlider:SetScript("OnValueChanged", function(self, argValue) - QuestDockletFrameList:SetVerticalScroll(argValue) + listFrame:SetScrollChild(ObjectiveTrackerFrame) + scrollFrame:SetScript("OnValueChanged", function(self, argValue) + listFrame:SetVerticalScroll(argValue) end) - QuestDockletFrameSlider:ClearAllPoints() - QuestDockletFrameSlider:SetPoint("TOPRIGHT", QuestDockletFrame, "TOPRIGHT", -3, 0) + scrollFrame:ClearAllPoints() + scrollFrame:SetPoint("TOPRIGHT", QuestFrame, "TOPRIGHT", -3, 0) - WatchFrameLines:RemoveTextures(true) - WatchFrameLines:SetPoint("TOPLEFT", WatchFrame, "TOPLEFT", 87, 0) - WatchFrameLines:SetPoint("BOTTOMLEFT", WatchFrame, "BOTTOMLEFT", 87, 0) - WatchFrameLines:SetWidth(WATCHFRAME_MAXLINEWIDTH - 100) - --[[Lets murder some internals to prevent overriding]]-- - WatchFrame.ClearAllPoints = SV.fubar; - WatchFrame.SetPoint = SV.fubar; - WatchFrame.SetAllPoints = SV.fubar; - WatchFrameLines.ClearAllPoints = SV.fubar; - WatchFrameLines.SetPoint = SV.fubar; - WatchFrameLines.SetAllPoints = SV.fubar; - WatchFrameLines.SetWidth = SV.fubar; - WatchFrameCollapseExpandButton.ClearAllPoints = SV.fubar; - WatchFrameCollapseExpandButton.SetPoint = SV.fubar; - WatchFrameCollapseExpandButton.SetAllPoints = SV.fubar; - - SetQuestDockEvents() + ObjectiveTrackerFrame.BlocksFrame:RemoveTextures(true) + ObjectiveTrackerFrame.BlocksFrame:SetPoint("TOPLEFT", ObjectiveTrackerFrame, "TOPLEFT", 87, 0) + ObjectiveTrackerFrame.BlocksFrame:SetPoint("BOTTOMLEFT", ObjectiveTrackerFrame, "BOTTOMLEFT", 87, 0) + ObjectiveTrackerFrame.BlocksFrame:SetWidth(OBJECTIVE_TRACKER_LINE_WIDTH) + ObjectiveTrackerFrame.ClearAllPoints = SV.fubar; + ObjectiveTrackerFrame.SetPoint = SV.fubar; + ObjectiveTrackerFrame.SetAllPoints = SV.fubar; - QuestDocklet:RegisterEvent("CVAR_UPDATE") - QuestDocklet:RegisterEvent("QUEST_AUTOCOMPLETE") - QuestDocklet:SetScript("OnEvent", QuestDocklet_OnEvent) + local eventHandler = CreateFrame("Frame") + eventHandler:RegisterEvent("QUEST_AUTOCOMPLETE") + eventHandler:SetScript("OnEvent", QuestFrame_OnEvent) end end -SV:NewScript(CreateQuestDocklet) \ No newline at end of file +SV:NewScript(CreateQuestFrame) \ No newline at end of file diff --git a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua index 2e92a98..fbe594d 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua +++ b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua @@ -270,7 +270,7 @@ function PLUGIN:EndJobModes() self[currentModeKey].Disable() end currentModeKey = false; - if SVUI_ModesDockFrame:IsShown() then SVUI_ModesDockFrame_ToolBarButton:Click() end + if self.Docklet:IsShown() then self.Docklet.ToolbarButton:Click() end self:ChangeModeGear() self.ModeAlert:Hide(); SendModeMessage("Mode Disabled", CombatText_StandardScroll, 1, 0.35, 0); @@ -309,69 +309,6 @@ function PLUGIN:UpdateLogWindow() self.LogWindow:SetFont(SV.Media.font.system, SV.db[Schema].fontSize, "OUTLINE") end -function PLUGIN:MakeLogWindow() - local DOCK_WIDTH = SVUI_ModesDockFrame:GetWidth(); - local DOCK_HEIGHT = SVUI_ModesDockFrame:GetHeight(); - - ModeLogsFrame:SetFrameStrata("MEDIUM") - ModeLogsFrame:SetPoint("TOPLEFT",SVUI_ModeButton1,"TOPRIGHT",5,-5) - ModeLogsFrame:SetPoint("BOTTOMRIGHT",SVUI_ModesDockFrame,"BOTTOMRIGHT",-5,5) - ModeLogsFrame:SetParent(SVUI_ModesDockFrame) - - local title = CreateFrame("ScrollingMessageFrame", nil, ModeLogsFrame) - title:SetSpacing(4) - title:SetClampedToScreen(false) - title:SetFrameStrata("MEDIUM") - title:SetPoint("TOPLEFT",ModeLogsFrame,"TOPLEFT",0,0) - title:SetPoint("BOTTOMRIGHT",ModeLogsFrame,"TOPRIGHT",0,-20) - title:SetFontTemplate(UNIT_NAME_FONT, 16, "OUTLINE", "CENTER", "MIDDLE") - title:SetMaxLines(1) - title:EnableMouseWheel(false) - title:SetFading(false) - title:SetInsertMode('TOP') - - title.divider = title:CreateTexture(nil,"OVERLAY") - title.divider:SetTexture(0,0,0,0.5) - title.divider:SetPoint("BOTTOMLEFT") - title.divider:SetPoint("BOTTOMRIGHT") - title.divider:SetHeight(1) - - local topleftline = title:CreateTexture(nil,"OVERLAY") - topleftline:SetTexture(0,0,0,0.5) - topleftline:SetPoint("TOPLEFT") - topleftline:SetPoint("BOTTOMLEFT") - topleftline:SetWidth(1) - - local log = CreateFrame("ScrollingMessageFrame", nil, ModeLogsFrame) - log:SetSpacing(4) - log:SetClampedToScreen(false) - log:SetFrameStrata("MEDIUM") - log:SetPoint("TOPLEFT",title,"BOTTOMLEFT",0,0) - log:SetPoint("BOTTOMRIGHT",ModeLogsFrame,"BOTTOMRIGHT",0,0) - log:SetFontTemplate(nil, SV.db[Schema].fontSize, "OUTLINE") - log:SetJustifyH("CENTER") - log:SetJustifyV("MIDDLE") - log:SetShadowColor(0, 0, 0, 0) - log:SetMaxLines(120) - log:EnableMouseWheel(true) - log:SetScript("OnMouseWheel", onMouseWheel) - log:SetFading(false) - log:SetInsertMode('TOP') - - local bottomleftline = log:CreateTexture(nil,"OVERLAY") - bottomleftline:SetTexture(0,0,0,0.5) - bottomleftline:SetPoint("TOPLEFT") - bottomleftline:SetPoint("BOTTOMLEFT") - bottomleftline:SetWidth(1) - - self.TitleWindow = title - self.LogWindow = log - - self.ListenerEnabled = false; - SV:RegisterDocklet("SVUI_ModesDockFrame", self.TitleID, ICON_FILE, false) - self:CraftingReset() -end - function PLUGIN:SKILL_LINES_CHANGED() if(currentModeKey and self[currentModeKey] and self[currentModeKey].Update) then self[currentModeKey].Update() @@ -459,11 +396,13 @@ function PLUGIN:Load() local ALERT_HEIGHT = 60; local DOCK_WIDTH = SuperDockWindowRight:GetWidth(); local DOCK_HEIGHT = SuperDockWindowRight:GetHeight(); + local DOCKLET_WIDTH = DOCK_WIDTH - 4 + local DOCKLET_HEIGHT = DOCK_HEIGHT - 4 local BUTTON_SIZE = (DOCK_HEIGHT * 0.25) - 4; local modesDocklet = CreateFrame("Frame", "SVUI_ModesDockFrame", SuperDockWindowRight) - modesDocklet:SetWidth(DOCK_WIDTH - 4); - modesDocklet:SetHeight(DOCK_HEIGHT - 4); + modesDocklet:SetWidth(DOCKLET_WIDTH); + modesDocklet:SetHeight(DOCKLET_HEIGHT); modesDocklet:SetPoint("CENTER",SuperDockWindowRight,"CENTER",0,0); local modesToolBar = CreateFrame("Frame", "SVUI_ModesDockToolBar", modesDocklet) @@ -552,12 +491,69 @@ function PLUGIN:Load() ModeAlert:SetScript('OnMouseDown', ModeAlert_OnMouseDown) ModeAlert:Hide() - self.ModeAlert = ModeAlert + ModeLogsFrame:SetFrameStrata("MEDIUM") + ModeLogsFrame:SetPoint("TOPLEFT", mode1Button, "TOPRIGHT", 5, -5) + ModeLogsFrame:SetPoint("BOTTOMRIGHT", modesDocklet, "BOTTOMRIGHT", -5, 5) + ModeLogsFrame:SetParent(modesDocklet) - self:MakeLogWindow() + local title = CreateFrame("ScrollingMessageFrame", nil, ModeLogsFrame) + title:SetSpacing(4) + title:SetClampedToScreen(false) + title:SetFrameStrata("MEDIUM") + title:SetPoint("TOPLEFT",ModeLogsFrame,"TOPLEFT",0,0) + title:SetPoint("BOTTOMRIGHT",ModeLogsFrame,"TOPRIGHT",0,-20) + title:SetFontTemplate(UNIT_NAME_FONT, 16, "OUTLINE", "CENTER", "MIDDLE") + title:SetMaxLines(1) + title:EnableMouseWheel(false) + title:SetFading(false) + title:SetInsertMode('TOP') - modesDocklet:Hide() - + title.divider = title:CreateTexture(nil,"OVERLAY") + title.divider:SetTexture(0,0,0,0.5) + title.divider:SetPoint("BOTTOMLEFT") + title.divider:SetPoint("BOTTOMRIGHT") + title.divider:SetHeight(1) + + local topleftline = title:CreateTexture(nil,"OVERLAY") + topleftline:SetTexture(0,0,0,0.5) + topleftline:SetPoint("TOPLEFT") + topleftline:SetPoint("BOTTOMLEFT") + topleftline:SetWidth(1) + + local log = CreateFrame("ScrollingMessageFrame", nil, ModeLogsFrame) + log:SetSpacing(4) + log:SetClampedToScreen(false) + log:SetFrameStrata("MEDIUM") + log:SetPoint("TOPLEFT",title,"BOTTOMLEFT",0,0) + log:SetPoint("BOTTOMRIGHT",ModeLogsFrame,"BOTTOMRIGHT",0,0) + log:SetFontTemplate(nil, SV.db[Schema].fontSize, "OUTLINE") + log:SetJustifyH("CENTER") + log:SetJustifyV("MIDDLE") + log:SetShadowColor(0, 0, 0, 0) + log:SetMaxLines(120) + log:EnableMouseWheel(true) + log:SetScript("OnMouseWheel", onMouseWheel) + log:SetFading(false) + log:SetInsertMode('TOP') + + local bottomleftline = log:CreateTexture(nil,"OVERLAY") + bottomleftline:SetTexture(0,0,0,0.5) + bottomleftline:SetPoint("TOPLEFT") + bottomleftline:SetPoint("BOTTOMLEFT") + bottomleftline:SetWidth(1) + + self.ModeAlert = ModeAlert + self.TitleWindow = title + self.LogWindow = log + self.Docklet = modesDocklet + + SV:RegisterDocklet("SVUI_ModesDockFrame", self.TitleID, ICON_FILE, false) + + self.Docklet:Hide() + + self.ListenerEnabled = false; + + self:CraftingReset() self:LoadCookingMode() self:LoadFishingMode() self:LoadArchaeologyMode() diff --git a/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua b/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua index 02e3b07..6030eff 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua +++ b/Interface/AddOns/SVUI_CraftOMatic/components/archaeology.lua @@ -54,7 +54,7 @@ local CanSolveArtifact = CanSolveArtifact local GetContainerNumSlots = GetContainerNumSlots local GetContainerItemInfo = GetContainerItemInfo local GetContainerItemID = GetContainerItemID -local DockButton, ModeLogsFrame; +local ModeLogsFrame; local COUNT_TEX = [[Interface\AddOns\SVUI\assets\artwork\icons\COUNT-]] @@ -359,7 +359,7 @@ CORE FUNCTIONS ]]-- function PLUGIN.Archaeology:Enable() PLUGIN.Archaeology:Update() - if(not SVUI_ModesDockFrame:IsShown()) then DockButton:Click() end + if(not PLUGIN.Docklet:IsShown()) then PLUGIN.Docklet.ToolbarButton:Click() end PlaySoundFile("Sound\\Item\\UseSounds\\UseCrinklingPaper.wav") PLUGIN.ModeAlert:SetBackdropColor(0.25, 0.52, 0.1) @@ -426,10 +426,9 @@ LOADER ########################################################## ]]-- function PLUGIN:LoadArchaeologyMode() - ModeLogsFrame = PLUGIN.LogWindow; - DockButton = _G["SVUI_ModesDockFrame_ToolBarButton"]; + ModeLogsFrame = self.LogWindow; - local progressBars = PLUGIN.Archaeology.Bars + local progressBars = self.Archaeology.Bars ArchCrafting:SetParent(ModeLogsFrame) ArchCrafting:SetFrameStrata("MEDIUM") @@ -524,6 +523,6 @@ function PLUGIN:LoadArchaeologyMode() } end ArchCrafting:Hide() - PLUGIN.Archaeology:Update() + self.Archaeology:Update() UpdateArtifactCache() end \ No newline at end of file diff --git a/Interface/AddOns/SVUI_CraftOMatic/components/cooking.lua b/Interface/AddOns/SVUI_CraftOMatic/components/cooking.lua index 29b42ae..99c5696 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/components/cooking.lua +++ b/Interface/AddOns/SVUI_CraftOMatic/components/cooking.lua @@ -42,8 +42,7 @@ local Schema = PLUGIN.Schema; LOCAL VARS ########################################################## ]]-- -local cookingSpell, campFire, skillRank, skillModifier; -local DockButton; +local cookingSpell, campFire, skillRank, skillModifier, DockButton; --[[ ########################################################## LOCAL FUNCTIONS @@ -172,7 +171,7 @@ CORE METHODS ]]-- function PLUGIN.Cooking:Enable() PLUGIN.Cooking:Update() - if(not SVUI_ModesDockFrame:IsShown()) then DockButton:Click() end + if(not PLUGIN.Docklet:IsShown()) then PLUGIN.Docklet.ToolbarButton:Click() end if(SV.db[Schema].cooking.autoequip) then UpdateChefWear(); end @@ -228,5 +227,5 @@ LOADER ########################################################## ]]-- function PLUGIN:LoadCookingMode() - DockButton = _G["SVUI_ModesDockFrame_ToolBarButton"]; + self.Cooking:Update() end \ No newline at end of file diff --git a/Interface/AddOns/SVUI_CraftOMatic/components/farming.lua b/Interface/AddOns/SVUI_CraftOMatic/components/farming.lua index 7d37633..a2efd8b 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/components/farming.lua +++ b/Interface/AddOns/SVUI_CraftOMatic/components/farming.lua @@ -396,7 +396,7 @@ function PLUGIN.Farming:Enable() PLUGIN.Farming.ToolsLoaded = true EnableListener() if not FarmModeFrame:IsShown() then FarmModeFrame:Show() end - if(not SVUI_ModesDockFrame:IsShown()) then DockButton:Click() end + if(not PLUGIN.Docklet:IsShown()) then DockButton:Click() end end end end @@ -527,8 +527,8 @@ function PLUGIN:PrepareFarmingTools() local horizontal = SV.db[Schema].farming.toolbardirection == "HORIZONTAL" local BUTTONSPACE = SV.db[Schema].farming.buttonspacing or 2; - ModeLogsFrame = PLUGIN.LogWindow; - DockButton = _G["SVUI_ModesDockFrame_ToolBarButton"] + ModeLogsFrame = self.LogWindow; + DockButton = self.Docklet.ToolbarButton if not SV.db[Schema].farming.undocked then local bgTex = [[Interface\BUTTONS\WHITE8X8]] diff --git a/Interface/AddOns/SVUI_CraftOMatic/components/fishing.lua b/Interface/AddOns/SVUI_CraftOMatic/components/fishing.lua index d802e80..00caa78 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/components/fishing.lua +++ b/Interface/AddOns/SVUI_CraftOMatic/components/fishing.lua @@ -106,7 +106,6 @@ local refPoles = { { ["id"] = 84660, ["weight"] = 10 }, --Pandaren { ["id"] = 6256, ["weight"] = 1 } --Standard } -local DockButton; --[[ ########################################################## LOCAL FUNCTIONS @@ -334,7 +333,7 @@ CORE METHODS ]]-- function PLUGIN.Fishing:Enable() PLUGIN:UpdateFishingMode() - if(not SVUI_ModesDockFrame:IsShown()) then DockButton:Click() end + if(not PLUGIN.Docklet:IsShown()) then PLUGIN.Docklet.ToolbarButton:Click() end UpdateFishingGear(SV.db[Schema].fishing.autoequip); PlaySoundFile("Sound\\Spells\\Tradeskills\\FishCast.wav") PLUGIN.ModeAlert:SetBackdropColor(0.25, 0.52, 0.1) @@ -397,6 +396,5 @@ function PLUGIN:UpdateFishingMode() end function PLUGIN:LoadFishingMode() - DockButton = _G["SVUI_ModesDockFrame_ToolBarButton"] - PLUGIN:UpdateFishingMode() + self:UpdateFishingMode() end \ No newline at end of file diff --git a/Interface/BUTTONS/ActionBarFlyoutButton-FlyoutMid.blp b/Interface/BUTTONS/ActionBarFlyoutButton-FlyoutMid.blp new file mode 100644 index 0000000000000000000000000000000000000000..885b44bc4289f19f0a2c466ab358e22a2c1e1c8a GIT binary patch literal 3940 zcmeHKKWGzC9DbLcnn0qjq38(?uW$rwNL$+IAXt*(&_D|g2EnCO9Hgd$t1idc!NrHXCXkzn{@EcysRtkP1km>*iM#@`a1 z4&_?VbV%NJK!mYVD98R$#8wP?)7 z3pqc6FR@P>6dXQ^UmoJTFz*uU=8{1@>JjwUMBfN=_|50D*_*j){H;d;9u!nm-)6mu zYrf{!`MM627#4g7n_m=Ymq3LT=o5)VP5@tsq@xKN&m0W;F`p{?RvDMdUzcB6{EeKT z%xCkH>Mua=rQHdYIDFkRP28U#i#g}tppT|Z;8#fxmj`S6pi<78;`(pD2_`t7B z2rm?;eR48$9ej#jqzrq0BcIQ^@#FkQ{_Xv*<-c0~`+xG^TL0tyDHO4hktrDNFNqV; z$^RP#T|Y4HyR(22$A88dm^**2U2>22;EzT|eo$#4uPDD8@1Cy~SKfS^71#S}yZIR! zt4|B}2XZQY98EKs+!`NrwO7Y~yPu)acwY|dui*QyoW%OKs^j6?%7FbbV7K=sGnv%o QR)-e@`@NgVWZdh21Je#|A^-pY literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/ActionBarFlyoutButton-FlyoutMidLeft.blp b/Interface/BUTTONS/ActionBarFlyoutButton-FlyoutMidLeft.blp new file mode 100644 index 0000000000000000000000000000000000000000..aac32a0ce7c98d4551436d9c3d242c5d310d95ba GIT binary patch literal 3940 zcmeHK!AlfT82@G*Yi7}$Mv1}GQ(m$xq>HXW&|yb{c0j>HgSTA4Lmm1P%3K7G)?>xo}4Wk9)5$kA0Z!#S2Qn&3s3ac;iP=)o35Jo0k|EQ$BdC^)9rRG%{awr zi4~s|BwkIia-26I&Wj_K#_zka`RRL@_rwY$=HnrC0;=rU3wCDx#E*D8HA1RrUEDsZ zJoF;&gVU+yxjk(Ilu8j-bM7`c+%B7-uCjQ7}V5+~#f z!I_u*Sie-NTl$#~3D$eT7SPfr>px;?=yzbI34D+E%WP}BAIhfAmQl~w982!Uviayp z>L=yvq;4qpS74@~gnk1p1X4dRmk(q;Le1Ey>a)217RmcG&ilaDBi>2%om{NH44I0= zN%)@cJea4V4bWW>c%GkquEkG3)#Cc`=i&4CvV(qcXYIib?xpzY%c(WEcfgvg&4)Gl z>|pKqqi3*9apb+`AT!K>3XrL Z*x~3)i%Uy-D-`AYM!P^?dBa%!_#e+>Ol<%F literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/ActionBarFlyoutButton.blp b/Interface/BUTTONS/ActionBarFlyoutButton.blp new file mode 100644 index 0000000000000000000000000000000000000000..b0b57c07c3c07518b6997b8fa8bc011fc12470fe GIT binary patch literal 12132 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 Wwt4&w`pbGgtL@B0+y<{gPyYkg8|Nkf literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-Button-Borders2.blp b/Interface/BUTTONS/UI-Button-Borders2.blp new file mode 100644 index 0000000000000000000000000000000000000000..f7f683d3b2f68bf538b70c1f76e220abcf59036b GIT binary patch literal 88596 zcmeI5v1=P=7{)(4HYpS*DRe0%#0sKWlp&=QLQCWtLlL-;p+nj!O*@2;kUzocVhCN* z;5E(CZW#hD!kq+7@X#rQQUWHlLv|^lTdQ8*@8r9CA3KduWlKK$CnR*QPWRp2?|Yx; zy_4@d&o7>TcOrx^`P$)$Fd4!Pn_iiUuZgg-V6RW@b-`YrO@v?V^{2h2KA#A0zTy>v zwK!)D9kZ9Um4&mLAH|P(KmY;|cqxJD_-QA}=Mlq$eAw%HIDuX_3E)>{@T)_buXz+g z+JD43fsyk_?D5?BiG}&b*u*q3JX}JM598Ly^Ak?5t81#?G6M*!?2klHSC&?NR@r{`cd>d?BzcpJXn_Pdm;>^-BHMd>cW1lNGW)!4ZrH_1`1e zasB(oZF=bT)lY_RZ>P79_JqLD{VlESK>pC45ZLwpQN2?Cg?_9*@*ox*qu@jR_sDnM z5B$n(df@e?ep392J6)dZ0duPGFcjp&-pPlT*8g0;y?R&l7jf)4cx3rIf_$+0|4*Ke zfxrJ}=zH%2*JoXP@cQ0wdA%Nl>;2$Sh}Uw5>;1-kz2DaLyNh+{AM$gr`<1`=FXn5% zdc=GoFbZBih2r{%ixLPA@&P>@a6Py~u2J~0F9591)8P1F$MYdc^!oqgr~scPhKD0S zKA;bm4tD;%-+9RR3eI1B=iBs-*CW~&0=v#v|DH&H3Vrf>*YgkFLIB=^WBh)EKT3y? zpMqoj`Kg;T`1X+BLXi9x9E0bRF3$4s5CWys7yel8{*$fed~Tcm$ZyGzZG2=d`2!zK z2zcys9{8hlF!?Sx%712sQ(9zuZnDmc)G;uw|(^tS*>J~toB>)PJ(H`$!t zd)Z?8U;B^#S03Zm^PuZT|Jr~3{HUk@ZjvvR9$$A#8`oRW|NpLM`_uFPVt;!6U&KAV zzamck|3%KD=l`8%*8XxUPTi`OH4fA9V5r#tvd685$rl@T$d>g-zx}cAU*BlXtSsF+D5j4J017qQ?~i^|6uttXnp1TnG!eO`8`U3zylth z0Qul)1pHHRzylsa0KX6%=tFV910F&EzYrYgLvg?Z9zp=W5FF@3aliu}LIA%I9Oy%F zzylsa0KX6%=tFV910F&EzYrYgLvg?Z9zp=W5FF@3aliu}LIA%I9Oy%Fzylsa0KX6% z=tFV910F&EzYrW{(?{)|4VH1^V=L`u_mtZsi|^!vo9y#J<94vY(Mk9BtjRQX<5~8= z`j7kZ!Id-3r(xz%wz;A5jvE{l_kYm%qvnhsKRmzKl=ao_+2C~Hzf{~zAm!}_m;aBr zT?s4C8s9z3c4)q>?bYtt%54Z#HowxgsijLA+mIxgKS110JHHqo*AB7si+JqoZ%@qy zm*Td)N#YQtJly>Mh`-PI#PNXs`>ilF=i>P-^K0#?PU7ZU`<+u7->UYHi}kk+Zu4nA zKGE7+@v-rr35}DDYG`Q!eoJhpr=5*fvA%ZYlgHH`i|uJw8n>(NlzlV4mL++s^3&bF z-hVv{$@c@6@0>ptsUN3~EQVXx-0yKS3*mmeMP~M`)4w!Mra#$iesKChV{*>Tue2uZ z_lDy8mDTurgNqm6n7i%cg&RNn^^Lnf&YnB;mA}7Eg$^CfVTReX` ThZPxZ(bL&;_X~4+$^3r-()-VH literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-CheckBox-Check-Disabled.blp b/Interface/BUTTONS/UI-CheckBox-Check-Disabled.blp new file mode 100644 index 0000000000000000000000000000000000000000..6723c5e6b86daf319f75f780d2ec2379e3ae7be4 GIT binary patch literal 2580 zcmeHIQAkr!82;y+yIW0{G%zB(mli%GB%&)BI2EJ>MTK28(Kf9IX-yGH)Dc^<7vVxO zTn}NihZbW}hT(l%S`Q0)u!p*p4I(5kN|c(Dhgq4Yl@v)O(m@4DFX&bE2B!cTE$ z2kfDz>^ElO$@EGR^*F|KLZbl$M9lu2V5&{p0^}>RAnL%ZoAv5o1xU+r>hco#z|j+&A2hS=Lkf zyFHf~O8*#Ir}~;|lZ5-fMdv>l0dV>N2Y zQ`gpI&wFyD`R#%s!QvX~SE;AOOvEy175fq#-hqE_l323KPHPg)1`z(YPgOaRQ6>f16GOs5N z%mw{!&9X4j-PI$&*i&|o={bhj}HhaF7GUBgN?{CN8m1tm}vkg!bJA+qiG%Jr{6Q3ufz9KQC;Dr Z-^&#K-{!;7Xvr}IIF54wX*}6VzTa;3YhwTa literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-CheckBox-Check.blp b/Interface/BUTTONS/UI-CheckBox-Check.blp new file mode 100644 index 0000000000000000000000000000000000000000..c4a6afcdc5bb225ca7391486c6ece63519c9b13f GIT binary patch literal 2580 zcmeHIQAkr^6h3!z?ru3<(xB+UdtoI(K?p5k;HDyG817+L4JNxA1qE&jg7`Kif{MT~ z+Di}(vKX_NDc-ke_TWQMPtCG{h?qi&T2>RAJDq>HmkTj_>tR0}F5kX;zwbZa&i!w5 zhpT}D01dC_1iG@iUqQuF835i>tx)}-sxSf^IY0qD4xFrCNDlNMn6-_A%T|Hf z4tcvJwZ0lZolpW9YMI?n{iYWdcbFjFK#@0aoVMtfM94yH*Sm}D5o>#-VtIp|^v;3m z^-#82>{xJ8zg;9yd1#X9Wr!@Ssyu<=DHP@l`lj;?-^tZ2y)9tZP)_OpZ40hxvJ9s! zMZYF=F6w9Yu!vI|;Ef8(1*DTVSaSAiD!8f{gUJ;Nk5b51(2!V$Eza9t{%@l7=CT- zj1=bSApMrwkLYE21Tq54gYv7}!AI8c)r@hIej#l98j4oe_GN8bt?c<&nz3B{r|ISiF?}|IS-_ zZK(#z``RG&b6b+^-pIH>cN>Cc+57z24`87Gr@8H{%-)wXw*Zn)5()7n P0a~X#V4k1@N}b0a{S|Aq literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-CheckBox-Down.blp b/Interface/BUTTONS/UI-CheckBox-Down.blp new file mode 100644 index 0000000000000000000000000000000000000000..b677c01119c698706ad682309935322bac1ca2e1 GIT binary patch literal 2580 zcmZ?r2{2-0U|?Y4U}sbS(jYvA1&BF-n3I9w3J^a5;x9nV!o|QKLIh?2>Sq8N>Hwq! z&@hlY3PwXno zjlTem4^@Bv0Ph{JdH$}h3!};L!7>bZr1S$&+{Q#F&1f|!|cpx7b z`TuioL*qXb-M<6P*SWbZ_x3j4C5d47hL*N%2JvMXp#0eX44#uz%sym8`2D4A`+@TQ zL6H0y`YU#z-A}3g@$a|gDg(Wg1d89Up`lK@w)H9i`3j);{2xj%zO3ual5PXlgW|h1 lG&Gcv%^-mpsP_S|O}239s#P%eH2}r_{Qv(S#s_l2002no&ZPhV literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-CheckBox-Up.blp b/Interface/BUTTONS/UI-CheckBox-Up.blp new file mode 100644 index 0000000000000000000000000000000000000000..b677c01119c698706ad682309935322bac1ca2e1 GIT binary patch literal 2580 zcmZ?r2{2-0U|?Y4U}sbS(jYvA1&BF-n3I9w3J^a5;x9nV!o|QKLIh?2>Sq8N>Hwq! z&@hlY3PwXno zjlTem4^@Bv0Ph{JdH$}h3!};L!7>bZr1S$&+{Q#F&1f|!|cpx7b z`TuioL*qXb-M<6P*SWbZ_x3j4C5d47hL*N%2JvMXp#0eX44#uz%sym8`2D4A`+@TQ zL6H0y`YU#z-A}3g@$a|gDg(Wg1d89Up`lK@w)H9i`3j);{2xj%zO3ual5PXlgW|h1 lG&Gcv%^-mpsP_S|O}239s#P%eH2}r_{Qv(S#s_l2002no&ZPhV literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-Debuff-Overlays.blp b/Interface/BUTTONS/UI-Debuff-Overlays.blp new file mode 100644 index 0000000000000000000000000000000000000000..6b057b4d51e5eb1a971d129927ee9562cff160b0 GIT binary patch literal 12132 zcmeHN4@?th6n|8!byB$zJIOlCF>$yBHpUb*Dy2?bI!13Kphlr@4M3O_>(k7F`KzB_oesl zefQqo@AvL~|GMans3120kjN&w8Spm@>z?sgeX;sueGy>lO8~R6F2)*zb)}06EEiv9=2@vmu9Q_j`tT2(uwJShqH`)UZ;vb`Jd@M%PAi#=KEkD zLirBrTe8d6|JSNm`}>ePu4@>Iv0A>s*CW=Y;~tn~M|#l1!l; z)qeWbYFYOBgalW7yV4Jj2OF4n=Tz-G>z)D-5z$#1(xkFA=JwaMu^4|@Sv0;x{vRR# zT(m^O!m}*pqfntJWCAyPx8!-Zv}6CR!{UnH`_(hc&nNqDP4=h#MQK1lX{SwPtIM@j zJ6~Dk-w6eOGUnfZe{F8xHr3Xb0Tj(zE%RDlWQ*dNa~I=$WC;nn?EB@{ReKxM?=P+@ zQqumUv_2vtq$$_d%-O1G{?7^z7r*~8=6g6ldg~u){cG3UqWH%zCE*;i@pF}RT(^6Q zTK4zNpDGzTUN7@*q5T6P%a#wn-<8Y+8doTT-wmXEo6VI09J}Gq$$nALf%Av#=w({H z^~9#DC*>C2e=LbXdt&|C%3GBA`7}Qe?Z9WquigSo5bZCpHEaUS!Pe7ndq(2;f%KecVD1_w z1pL^_mEicVAw!2PV8X1+NBkWAMv0%%_{ZA@3y(+Fn8{r|chb1?9CwkQ-^OA-dc5a< z!|_+14Nj)xcNXC`Q~m*>U{WEjP}+;S{bo1E?V1z0nuSWLkJ3y*O&G$hWq{+Z zob$!_(V;x0i|f0T_pd!Ai<1c&GLAAbzL9@Hq4Rx#$j|p5sVtoQqvMg!D|{MJFXAJ{ zgAf5R9)xI!`9X{aF&=~ni18pqL(C6iJc#iiL_mxOAsS+S5aZ#Y#zQ}7ifc6a?hd2w zX3r~JdyJcX|6bnf-mAIG6-)rSK1>Lh=Jr9pTib_A?K07sYVb~6;&a@en^z{c;Ng&6 z&6oYJ8&h+PYi57J+o%6Gm~J?EyVb959t-5a;W(W8C#~ZS`SSYo7tAK8kk6D3ENaZ5 z&!bITVA3SdFs97s^;v}6uYU_1e&^)JJ8sbR3Wc;*p9t&AeIv?!Z+QVM*Ag;*l6^mu zu2-3HJ;MZd^Og1cuG96<49(F>Qw_fS1H69+T#Ykd`{)L>r#M=xSG|Rcp@<*FAKj1G zZ#BV&-5cxo*UQk|y2myU19bV827Qy1C?<;baotcJy#sZ9CRG!rr@)B9;J+`pmxR-yc$&%0#p wE6CnNq#4KzK3?f8g2B3isP_tlWg6L5& z8UmvsFd71cLf`{~=cMWSflP0b7#KoBMVB^w*v1PKQt1i;@fpft{7q9pe66WK^_SG& zFq_rB2k}G08a{Y5sQ?j3f9A!D7e9Q3*vR3;qR9AneJG57I?9p5iQj5}!w1ee2Y|?A zDFZ`LWMm{v|LG_O2B7v#n0k|?EQeSHC4IhAxXGpmHeJ{{`|3gC;fcTRVZiD1S8-V69BpkM@oupFO!@v*@G(Y9c zw%%pia>4SUN+9`s?+l<8S52V)#?Vj(V0nxJ(D)u3*^+Mq^@GCeDbPGAd4mLIpaut3 aMUItASFPd|g6Mu~_<&*cs#UAd%>w}T{eX!8 literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-MinusButton-Down.blp b/Interface/BUTTONS/UI-MinusButton-Down.blp new file mode 100644 index 0000000000000000000000000000000000000000..0d597217e28e8e813591e2a7ba375164b8002b8a GIT binary patch literal 1556 zcmZ?r2{2-0U|?Y4U}qEn(jYvA1&CQ07_I>E6CnNq#4KzK3?f8g2B3isP_tlWg6L5& z8UmvsFd71cLf`{~=cMWSflNHv3=E;6qDvb-Y~uwAsdPnw_zdMR{>M2WzSdNr`b+9> zn9c5f2k}G08a{Y5sQ{5qvI0kDU|`^fuTUEufbtBhnBe>jAV0v_ui*pdoC82Kd94CN zP-J8zO#jOy297|%z)YBWr#TD~pAo+an44@WQO`!h9&`<_od5i+k_#PYCl5Yd`uLOqIQ=oY=iUtYH eKn)J6iX1DKu3E(>4AH$*nn7Uos#UAd%>w`$KX`ip literal 0 HcmV?d00001 diff --git a/Interface/BUTTONS/UI-MinusButton-Up.blp b/Interface/BUTTONS/UI-MinusButton-Up.blp new file mode 100644 index 0000000000000000000000000000000000000000..ae5f9f70ff708dcb81c227f2663d3d938ef03edc GIT binary patch literal 1556 zcmZ?r2{2-0U|?Y4U}qEn(jYvA1&CQ07_I>E6CnNq#4KzK3?f8g2B3isP_tlWg6L5& z8UmvsFd71cLf`{~=cMWSflNHv3=E;6qDvb-Y~uwAsdPnw_zdMR{>M2WzSdNr`b+9> zn9c5f2k}G08a{Y5sQ{5qvVufrU|`^fuTUF17%aH|t`CLtS1<@T@muY0_`o^m01!=H ztH2Nx85s%F|2j!Q0H{3|rvB+W1`92q1u(wDHwF&}ARngxbrJ(ZU~pjE2L{y-LY321 zG`tuXRHuf9ZukInJVV0mFMEOR`yU#*0K}h^aGS%4fkCtZXdXktVY}K%Dj%0HFoXlm zOF6TxciFaFuzaWzNIu^?1E|GS6R5v2G?W2Y9-{y>zQ;zkNWctC3=9oGa~yzJ0f+^F zcod9=z-S1Jh5#`kaOieL&v77vt7V0=APhAAq1)#k$^a2e)uH3t5~YC%#=rfbz4itW zA^2u_kAVorKXiNp?`cy| SOMmEmL$5|&m|ieVKs^8kr?=t& literal 1564 zcmZ?r2{2-0U|?WkWMFgv(i}iMg$0ON85phr@fRRwVPjz60b&s#CJF!zbO0(;0Ac|k z2AK)NK;|eI4S~@R7!3iuA@CmvKnm=E07U-*0uT)oKMw@Re3Pv8RX>Ug=04tZbKmY&$ -- 1.7.9.5