From 719362970c0b9af1d4dc4e973f94080044e2bedd Mon Sep 17 00:00:00 2001 From: Steven Jackson Date: Tue, 7 Oct 2014 22:59:55 -0500 Subject: [PATCH] 4.9 --- Interface/AddOns/SVUI/SVUI.toc | 2 +- .../AddOns/SVUI/assets/artwork/Icons/COUNT-1.blp | Bin 0 -> 350740 bytes .../AddOns/SVUI/assets/artwork/Icons/COUNT-2.blp | Bin 0 -> 350740 bytes .../AddOns/SVUI/assets/artwork/Icons/COUNT-3.blp | Bin 0 -> 350740 bytes .../Plugins/oUF_ActionPanel/oUF_ActionPanel.toc | 2 +- .../Plugins/oUF_Afflicted/oUF_Afflicted.toc | 2 +- .../Plugins/oUF_ArcaneCharge/oUF_ArcaneCharge.toc | 2 +- .../Plugins/oUF_Combatant/oUF_Combatant.toc | 2 +- Interface/AddOns/SVUI/packages/aura/SVAura.lua | 9 +- Interface/AddOns/SVUI/packages/bag/SVBag.lua | 382 +++++++++++--------- Interface/AddOns/SVUI/scripts/ego.lua | 41 ++- Interface/AddOns/SVUI/scripts/mounts.lua | 191 +++++----- Interface/AddOns/SVUI/system/common.lua | 30 +- Interface/AddOns/SVUI/system/media.lua | 4 +- .../AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc | 2 +- .../AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc | 2 +- .../AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua | 36 +- .../AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc | 2 +- .../AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.xml | 35 -- .../SVUI_CraftOMatic/components/archaeology.lua | 65 ++-- .../AddOns/SVUI_FightOMatic/SVUI_FightOMatic.toc | 2 +- Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc | 2 +- .../AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc | 2 +- .../SVUI_StyleOMatic/components/style_methods.lua | 4 +- .../AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.toc | 2 +- 25 files changed, 441 insertions(+), 380 deletions(-) create mode 100644 Interface/AddOns/SVUI/assets/artwork/Icons/COUNT-1.blp create mode 100644 Interface/AddOns/SVUI/assets/artwork/Icons/COUNT-2.blp create mode 100644 Interface/AddOns/SVUI/assets/artwork/Icons/COUNT-3.blp diff --git a/Interface/AddOns/SVUI/SVUI.toc b/Interface/AddOns/SVUI/SVUI.toc index 4e5264d..572cf9a 100644 --- a/Interface/AddOns/SVUI/SVUI.toc +++ b/Interface/AddOns/SVUI/SVUI.toc @@ -1,6 +1,6 @@ ## Interface: 60000 ## Author: Munglunch -## Version: 4.8 +## Version: 4.9 ## Title: |cffFF9900SVUI|r ## Notes: Supervillain UI [|cff9911FFCore Framework|r]. ## SavedVariables: SVUI_Global diff --git a/Interface/AddOns/SVUI/assets/artwork/Icons/COUNT-1.blp b/Interface/AddOns/SVUI/assets/artwork/Icons/COUNT-1.blp new file mode 100644 index 0000000000000000000000000000000000000000..32efb8835e52701d85653d82f5e4bd8781fe34e8 GIT binary patch literal 350740 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 Z{40E3RWNu(mTgbJ`JT_f{ciZ@{eP+jnaThF literal 0 HcmV?d00001 diff --git a/Interface/AddOns/SVUI/assets/artwork/Icons/COUNT-2.blp b/Interface/AddOns/SVUI/assets/artwork/Icons/COUNT-2.blp new file mode 100644 index 0000000000000000000000000000000000000000..bef839f4f58d0dc5238349a9dba7b3468f53e05c GIT binary patch literal 350740 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⋘QNkKDg2k@dmID9_(X- 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

Bfe@K%F?xI<>x}6wZ&@ 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 0 and enable == 0 then + + local texture, count, locked, rarity = GetContainerItemInfo(bag, slotID); + local start, duration, enable = GetContainerItemCooldown(bag, slotID); + + CooldownFrame_SetTimer(slot.cooldown, start, duration, enable); + + if(duration > 0 and enable == 0) then SetItemButtonTextureVertexColor(slot, 0.4, 0.4, 0.4) else SetItemButtonTextureVertexColor(slot, 1, 1, 1) - end - if bagType then + end + + if(bagType) then local r, g, b = bagType[1], bagType[2], bagType[3]; slot:SetBackdropColor(r, g, b, 0.5) slot:SetBackdropBorderColor(r, g, b, 1) - elseif itemLink then - local class, subclass, maxStack; - key, _, slot.rarity, _, _, class, subclass, maxStack = GetItemInfo(itemLink) - slot.name = key - local z, A, C = GetContainerItemQuestInfo(bag, slotID) - if A and not isActive then - slot:SetBackdropBorderColor(1.0, 0.3, 0.3) - elseif A or z then - slot:SetBackdropBorderColor(1.0, 0.3, 0.3) - elseif slot.rarity and slot.rarity>1 then - local D, E, F = GetItemQualityColor(slot.rarity) - slot:SetBackdropBorderColor(D, E, F) + elseif(rarity) then + if(rarity > 1) then + local r, g, b = GetItemQualityColor(rarity) + slot:SetBackdropBorderColor(r, g, b) else slot:SetBackdropBorderColor(0, 0, 0) end else slot:SetBackdropBorderColor(0, 0, 0) - end - if C_NewItems.IsNewItem(bag, slotID)then + end + + if(C_NewItems.IsNewItem(bag, slotID)) then ActionButton_ShowOverlayGlow(slot) else ActionButton_HideOverlayGlow(slot) - end + end + SetItemButtonTexture(slot, texture) SetItemButtonCount(slot, count) SetItemButtonDesaturated(slot, locked, 0.5, 0.5, 0.5) end -local RefreshSlots = function(self, bagID) - local id = bagID or self:GetID() - if(not id or (not self.SlotUpdate)) then return end - local maxcount = GetContainerNumSlots(id) - for i = 1, maxcount do - self:SlotUpdate(i) +local RefreshSlots = function(self) + local bagID = self:GetID() + if(not bagID or (not self.SlotUpdate)) then return end + local maxcount = GetContainerNumSlots(bagID) + for slotID = 1, maxcount do + self:SlotUpdate(slotID) end end local BagMenu_OnEnter = function(self) local parent = self.parent if(not parent) then return end - for id, bag in ipairs(parent.Bags) do - local numSlots = GetContainerNumSlots(id) - for i = 1, numSlots do - if bag[i] then - if id == self.id then - bag[i]:SetAlpha(1) + for bagID, bag in ipairs(parent.Bags) do + local numSlots = GetContainerNumSlots(bagID) + for slotID = 1, numSlots do + if bag[slotID] then + if bagID == self.id then + bag[slotID]:SetAlpha(1) else - bag[i]:SetAlpha(0.1) + bag[slotID]:SetAlpha(0.1) end end end @@ -288,26 +285,26 @@ end local BagMenu_OnLeave = function(self) local parent = self.parent if(not parent) then return end - for id, bag in ipairs(parent.Bags) do - local numSlots = GetContainerNumSlots(id) - for i = 1, numSlots do - if bag[i] then - bag[i]:SetAlpha(1) + for bagID, bag in ipairs(parent.Bags) do + local numSlots = GetContainerNumSlots(bagID) + for slotID = 1, numSlots do + if bag[slotID] then + bag[slotID]:SetAlpha(1) end end end end local ContainerFrame_UpdateCooldowns = function(self) - for id, bag in ipairs(self.Bags) do - for i = 1, GetContainerNumSlots(id)do - local start, duration, enable = GetContainerItemCooldown(id, i) - if(bag[i]) then - CooldownFrame_SetTimer(bag[i].cooldown, start, duration, enable) + for bagID, bag in ipairs(self.Bags) do + for slotID = 1, GetContainerNumSlots(bagID)do + local start, duration, enable = GetContainerItemCooldown(bagID, slotID) + if(bag[slotID]) then + CooldownFrame_SetTimer(bag[slotID].cooldown, start, duration, enable) if duration > 0 and enable == 0 then - SetItemButtonTextureVertexColor(bag[i], 0.4, 0.4, 0.4) + SetItemButtonTextureVertexColor(bag[slotID], 0.4, 0.4, 0.4) else - SetItemButtonTextureVertexColor(bag[i], 1, 1, 1) + SetItemButtonTextureVertexColor(bag[slotID], 1, 1, 1) end end end @@ -315,8 +312,8 @@ local ContainerFrame_UpdateCooldowns = function(self) end local ContainerFrame_UpdateBags = function(self) - for id, bag in ipairs(self.Bags) do - bag:RefreshSlots(id) + for bagID, bag in ipairs(self.Bags) do + bag:RefreshSlots() end end @@ -325,6 +322,7 @@ local ContainerFrame_UpdateLayout = function(self) local isBank = self.isBank local isReagent = self.isReagent + local containerName = self:GetName() local buttonSpacing, numContainerRows = 8, 0; local containerWidth, numContainerColumns, buttonSize @@ -360,148 +358,176 @@ local ContainerFrame_UpdateLayout = function(self) local bottomPadding = (containerWidth - holderWidth) * 0.5; local lastButton, lastRowButton, globalName; local numContainerSlots, fullContainerSlots = GetNumBankSlots(); + local totalSlots = 0; self.holderFrame:Width(holderWidth); - self.totalSlots = 0; - for i, bagID in ipairs(self.BagIDs) do - if(not isReagent) then - if((not isBank and bagID <= 3) or (isBank and bagID ~= -1 and numContainerSlots >= 1 and not ((i - 1) > numContainerSlots))) then + local menu = self.BagMenu - self.BagMenu:Size(((buttonSize + buttonSpacing) * (isBank and i - 1 or i)) + buttonSpacing, buttonSize + (buttonSpacing * 2)) + if(not isReagent) then + for i, bagID in ipairs(self.BagIDs) do + if((not isBank and bagID <= 3) or (isBank and bagID ~= -1 and numContainerSlots >= 1 and not ((i - 1) > numContainerSlots))) then + menu:Size(((buttonSize + buttonSpacing) * (isBank and i - 1 or i)) + buttonSpacing, buttonSize + (buttonSpacing * 2)) - if(not self.BagMenu[i]) then + local bagSlot; + + if(not menu[i]) then if isBank then - globalName = "SVUI_BankBag" .. (bagID - 4); - self.BagMenu[i] = NewFrame("CheckButton", globalName, self.BagMenu, "BankItemButtonBagTemplate") + globalName = ("SVUI_BankBag%d"):format((bagID - 4)); + bagSlot = NewFrame("CheckButton", globalName, menu, "BankItemButtonBagTemplate") else - globalName = "SVUI_MainBag" .. bagID .. "Slot"; - self.BagMenu[i] = NewFrame("CheckButton", globalName, self.BagMenu, "BagSlotButtonTemplate") + globalName = ("SVUI_MainBag%dSlot"):format(bagID); + bagSlot = NewFrame("CheckButton", globalName, menu, "BagSlotButtonTemplate") end - self.BagMenu[i].parent = self; - self.BagMenu[i].id = isBank and bagID or bagID + 1; + bagSlot.parent = self; - self.BagMenu[i]:SetNormalTexture("") - self.BagMenu[i]:SetCheckedTexture("") - self.BagMenu[i]:SetPushedTexture("") - self.BagMenu[i]:SetScript("OnClick", nil) - self.BagMenu[i]:SetID(isBank and bagID or (bagID + 1)) + bagSlot:SetNormalTexture("") + bagSlot:SetCheckedTexture("") + bagSlot:SetPushedTexture("") + bagSlot:SetScript("OnClick", nil) + + local texName = ("%sIconTexture"):format(globalName) + bagSlot.iconTexture = _G[texName]; + bagSlot.iconTexture:FillInner() + bagSlot.iconTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9) + + bagSlot:HookScript("OnEnter", BagMenu_OnEnter) + bagSlot:HookScript("OnLeave", BagMenu_OnLeave) + + if(isBank) then + bagSlot:SetID(bagID) + bagSlot.id = bagID; + else + bagSlot.id = (bagID + 1); + end - self.BagMenu[i].iconTexture = _G[self.BagMenu[i]:GetName().."IconTexture"]; - self.BagMenu[i].iconTexture:FillInner() - self.BagMenu[i].iconTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9) + menu[i] = bagSlot; + else + bagSlot = menu[i] + end - self.BagMenu[i]:HookScript("OnEnter", BagMenu_OnEnter) - self.BagMenu[i]:HookScript("OnLeave", BagMenu_OnLeave) + bagSlot:Size(buttonSize) + bagSlot:ClearAllPoints() - if(isBank and (not self.BagMenu[i].tooltipText)) then - self.BagMenu[i].tooltipText = "" + if(isBank) then + if(i == 2) then + bagSlot:SetPoint("BOTTOMLEFT", menu, "BOTTOMLEFT", buttonSpacing, buttonSpacing) + else + bagSlot:SetPoint("LEFT", menu[i - 1], "RIGHT", buttonSpacing, 0) end - end - self.BagMenu[i]:Size(buttonSize) - self.BagMenu[i]:ClearAllPoints() - - if (isBank and i == 2) or (not isBank and i == 1) then - self.BagMenu[i]:SetPoint("BOTTOMLEFT", self.BagMenu, "BOTTOMLEFT", buttonSpacing, buttonSpacing) - else - self.BagMenu[i]:SetPoint("LEFT", self.BagMenu[i - 1], "RIGHT", buttonSpacing, 0) + if(bagSlot.GetInventorySlot) then + BankFrameItemButton_Update(bagSlot) + BankFrameItemButton_UpdateLocked(bagSlot) + end + else + if(i == 1) then + bagSlot:SetPoint("BOTTOMLEFT", menu, "BOTTOMLEFT", buttonSpacing, buttonSpacing) + else + bagSlot:SetPoint("LEFT", menu[i - 1], "RIGHT", buttonSpacing, 0) + end end end - end - - local numSlots = GetContainerNumSlots(bagID); - - if not self.Bags[bagID] then - self.Bags[bagID] = NewFrame("Frame", self:GetName().."Bag"..bagID, self); - self.Bags[bagID]:SetID(bagID); - self.Bags[bagID].numSlots = numSlots; - self.Bags[bagID].SlotUpdate = SlotUpdate; - self.Bags[bagID].RefreshSlots = RefreshSlots; - end - local bag = self.Bags[bagID] - - if numSlots > 0 then - local btype = select(2, GetContainerNumFreeSlots(bagID)); - if RefProfessionColors[btype] then - local r, g, b = unpack(RefProfessionColors[btype]); - bag.bagFamily = {r, g, b}; - bag:SetBackdropColor(r, g, b, 0.25) - bag:SetBackdropBorderColor(r, g, b, 1) + local numSlots = GetContainerNumSlots(bagID); + local bagName = ("%sBag%d"):format(containerName, bagID) + local template = (bagID == -1) and "BankItemButtonGenericTemplate" or "ContainerFrameItemButtonTemplate" + local bag; + + if not self.Bags[bagID] then + bag = NewFrame("Frame", bagName, self); + bag:SetID(bagID); + bag.numSlots = numSlots; + bag.SlotUpdate = SlotUpdate; + bag.RefreshSlots = RefreshSlots; + self.Bags[bagID] = bag else - bag.bagFamily = false; + bag = self.Bags[bagID] end - for i = 1, MAX_CONTAINER_ITEMS do - if bag[i] then - bag[i]:Hide(); - end - end + if numSlots > 0 then + local btype = select(2, GetContainerNumFreeSlots(bagID)); + if RefProfessionColors[btype] then + local r, g, b = unpack(RefProfessionColors[btype]); + bag.bagFamily = {r, g, b}; + bag:SetBackdropColor(r, g, b, 0.25) + bag:SetBackdropBorderColor(r, g, b, 1) + else + bag.bagFamily = false; + end - for slotID = 1, numSlots do - self.totalSlots = self.totalSlots + 1; - if not bag[slotID] then - bag[slotID] = NewFrame("CheckButton", bag:GetName().."Slot"..slotID, bag, bagID == -1 and "BankItemButtonGenericTemplate" or "ContainerFrameItemButtonTemplate"); - bag[slotID]:SetNormalTexture(nil); - bag[slotID]:SetCheckedTexture(nil); - bag[slotID]:SetSlotTemplate(true, 2, 0, 0, true); - - if(_G[bag[slotID]:GetName().."NewItemTexture"]) then - _G[bag[slotID]:GetName().."NewItemTexture"]:Hide() + for i = 1, MAX_CONTAINER_ITEMS do + if bag[i] then + bag[i]:Hide(); end + end - bag[slotID].iconTexture = _G[bag[slotID]:GetName().."IconTexture"]; - bag[slotID].iconTexture:FillInner(bag[slotID]); - bag[slotID].iconTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9); - bag[slotID].cooldown = _G[bag[slotID]:GetName().."Cooldown"]; + for slotID = 1, numSlots do + local slot; + totalSlots = totalSlots + 1; + + if not bag[slotID] then + local slotName = ("%sSlot%d"):format(bagName, slotID) + local newTexName = ("%sNewItemTexture"):format(slotName) + local iconName = ("%sIconTexture"):format(slotName) + local cdName = ("%sCooldown"):format(slotName) + + slot = NewFrame("CheckButton", slotName, bag, template); + slot:SetNormalTexture(nil); + slot:SetCheckedTexture(nil); + slot:SetSlotTemplate(true, 2, 0, 0, true); + + if(_G[newTexName]) then + _G[newTexName]:Hide() + end - SV.Timers:AddCooldown(bag[slotID].cooldown) + slot.iconTexture = _G[iconName]; + slot.iconTexture:FillInner(slot); + slot.iconTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9); + slot.cooldown = _G[cdName]; - bag[slotID].bagID = bagID - bag[slotID].slotID = slotID - end + SV.Timers:AddCooldown(slot.cooldown) - bag[slotID]:SetID(slotID); - bag[slotID]:Size(buttonSize); - bag:SlotUpdate(slotID); + bag[slotID] = slot + else + slot = bag[slotID] + end - if bag[slotID]:GetPoint() then - bag[slotID]:ClearAllPoints(); - end + slot:SetID(slotID); + slot:Size(buttonSize); + bag:SlotUpdate(slotID); - if lastButton then - if (self.totalSlots - 1) % numContainerColumns == 0 then - bag[slotID]:Point("TOP", lastRowButton, "BOTTOM", 0, -buttonSpacing); - lastRowButton = bag[slotID]; - numContainerRows = numContainerRows + 1; + if slot:GetPoint() then + slot:ClearAllPoints(); + end + + if lastButton then + if((totalSlots - 1) % numContainerColumns == 0) then + slot:Point("TOP", lastRowButton, "BOTTOM", 0, -buttonSpacing); + numContainerRows = numContainerRows + 1; + lastRowButton = slot; + else + slot:Point("LEFT", lastButton, "RIGHT", buttonSpacing, 0); + end else - bag[slotID]:Point("LEFT", lastButton, "RIGHT", buttonSpacing, 0); - end - else - bag[slotID]:Point("TOPLEFT", self.holderFrame, "TOPLEFT"); - lastRowButton = bag[slotID]; - numContainerRows = numContainerRows + 1; - end + slot:Point("TOPLEFT", self.holderFrame, "TOPLEFT"); + numContainerRows = numContainerRows + 1; + lastRowButton = slot; + end - lastButton = bag[slotID]; - end - else - for i = 1, MAX_CONTAINER_ITEMS do - if(bag[i]) then - bag[i]:Hide(); + lastButton = slot; + end + else + for i = 1, MAX_CONTAINER_ITEMS do + if(bag[i]) then + bag[i]:Hide(); + end end end + end + end - if(isBank and not isReagent) then - if(self.BagMenu[i] and self.BagMenu[i].GetInventorySlot) then - BankFrameItemButton_Update(self.BagMenu[i]) - BankFrameItemButton_UpdateLocked(self.BagMenu[i]) - end - end - end - end self:Size(containerWidth, (((buttonSize + buttonSpacing) * numContainerRows) - buttonSpacing) + self.topOffset + self.bottomOffset); end @@ -809,9 +835,9 @@ do end local Container_OnEvent = function(self, event, ...) - if(event == "ITEM_LOCK_CHANGED" or event == "ITEM_UNLOCKED") then + if(event == "ITEM_LOCK_CHANGED") then local bagID, slotID = ... - if(bagID and self.Bags[bagID]) then + if(bagID and slotID and self.Bags[bagID] and self.Bags[bagID][slotID]) then self.Bags[bagID]:SlotUpdate(slotID) end elseif(event == "BAG_UPDATE" or event == "EQUIPMENT_SETS_CHANGED") then @@ -960,7 +986,8 @@ do local bagName = "SVUI_ContainerFrame" local uisCount = #UISpecialFrames + 1; local bagsCount = #self.BagFrames + 1; - local frame = NewFrame("Button", bagName, SV.UIParent) + local frame = NewFrame("Button", "SVUI_ContainerFrame", SV.UIParent) + frame:SetPanelTemplate("Container") frame:SetFrameStrata("HIGH") frame.UpdateLayout = ContainerFrame_UpdateLayout; @@ -968,7 +995,6 @@ do frame.RefreshCooldowns = ContainerFrame_UpdateCooldowns; frame:RegisterEvent("ITEM_LOCK_CHANGED") - frame:RegisterEvent("ITEM_UNLOCKED") frame:RegisterEvent("BAG_UPDATE_COOLDOWN") frame:RegisterEvent("BAG_UPDATE") frame:RegisterEvent("EQUIPMENT_SETS_CHANGED") @@ -993,12 +1019,12 @@ do frame.topOffset = 65; frame.BagIDs = {0, 1, 2, 3, 4} frame.Bags = {} - frame.closeButton = NewFrame("Button", bagName.."CloseButton", frame, "UIPanelCloseButton") + frame.closeButton = NewFrame("Button", "SVUI_ContainerFrameCloseButton", frame, "UIPanelCloseButton") frame.closeButton:Point("TOPRIGHT", -4, -4) frame.holderFrame = NewFrame("Frame", nil, frame) frame.holderFrame:Point("TOP", frame, "TOP", 0, -frame.topOffset) frame.holderFrame:Point("BOTTOM", frame, "BOTTOM", 0, frame.bottomOffset) - frame.BagMenu = NewFrame("Button", bagName.."BagMenu", frame) + frame.BagMenu = NewFrame("Button", "SVUI_ContainerFrameBagMenu", frame) frame.BagMenu:Point("BOTTOMLEFT", frame, "TOPLEFT", 0, 1) frame.BagMenu:SetFixedPanelTemplate("Transparent") frame.BagMenu:Hide() @@ -1007,7 +1033,7 @@ do frame.goldText:SetFontTemplate(SV.Media.font.numbers) frame.goldText:Point("BOTTOMRIGHT", frame.holderFrame, "TOPRIGHT", -2, 4) frame.goldText:SetJustifyH("RIGHT") - frame.editBox = NewFrame("EditBox", bagName.."EditBox", frame) + frame.editBox = NewFrame("EditBox", "SVUI_ContainerFrameEditBox", frame) frame.editBox:SetFrameLevel(frame.editBox:GetFrameLevel()+2) frame.editBox:SetEditboxTemplate() frame.editBox:Height(15) @@ -1047,7 +1073,7 @@ do frame.sortButton.ttText = L["Sort Bags"] frame.sortButton:SetScript("OnEnter", Tooltip_Show) frame.sortButton:SetScript("OnLeave", Tooltip_Hide) - local Sort_OnClick = (SV.GameVersion >= 60000) and SortBankBags or MOD:RunSortingProcess(MOD.Sort, "bags") + local Sort_OnClick = (SV.GameVersion >= 60000) and SortBags or MOD:RunSortingProcess(MOD.Sort, "bags") frame.sortButton:SetScript("OnClick", Sort_OnClick) frame.stackButton = NewFrame("Button", nil, frame) @@ -1119,7 +1145,7 @@ do end frame:SetScript("OnHide", CloseAllBags) - UISpecialFrames[uisCount] = bagName; + UISpecialFrames[uisCount] = "SVUI_ContainerFrame"; self.BagFrames[bagsCount] = frame self.BagFrame = frame @@ -1129,19 +1155,18 @@ do -- Reagent Slots: 1 - 98 -- /script print(ReagentBankFrameItem1:GetInventorySlot()) local bagName = isReagent and "SVUI_ReagentContainerFrame" or "SVUI_BankContainerFrame" - local otherName = isReagent and "SVUI_BankContainerFrame" or "SVUI_ReagentContainerFrame" local uisCount = #UISpecialFrames + 1; local bagsCount = #self.BagFrames + 1; local frame = NewFrame("Button", bagName, isReagent and self.BankFrame or SV.UIParent) frame:SetPanelTemplate(isReagent and "Action" or "Container") frame:SetFrameStrata("HIGH") + frame.UpdateLayout = ContainerFrame_UpdateLayout; frame.RefreshBags = ContainerFrame_UpdateBags; frame.RefreshCooldowns = ContainerFrame_UpdateCooldowns; frame:RegisterEvent("ITEM_LOCK_CHANGED") - frame:RegisterEvent("ITEM_UNLOCKED") frame:RegisterEvent("BAG_UPDATE_COOLDOWN") frame:RegisterEvent("BAG_UPDATE") frame:RegisterEvent("EQUIPMENT_SETS_CHANGED") @@ -1163,18 +1188,22 @@ do frame:Hide() frame.bottomOffset = 8; frame.topOffset = 60; + if(isReagent) then frame.BagIDs = {} else frame.BagIDs = {-1, 5, 6, 7, 8, 9, 10, 11} end + frame.Bags = {} frame.closeButton = NewFrame("Button", bagName.."CloseButton", frame, "UIPanelCloseButton") frame.closeButton:Point("TOPRIGHT", -4, -4) + frame.holderFrame = NewFrame("Frame", nil, frame) frame.holderFrame:Point("TOP", frame, "TOP", 0, -frame.topOffset) frame.holderFrame:Point("BOTTOM", frame, "BOTTOM", 0, frame.bottomOffset) + frame.BagMenu = NewFrame("Button", bagName.."BagMenu", frame) frame.BagMenu:Point("BOTTOMLEFT", frame, "TOPLEFT", 0, 1) frame.BagMenu:SetFixedPanelTemplate("Transparent") @@ -1188,7 +1217,7 @@ do frame.sortButton.ttText = L["Sort Bags"] frame.sortButton:SetScript("OnEnter", Tooltip_Show) frame.sortButton:SetScript("OnLeave", Tooltip_Hide) - local Sort_OnClick = (SV.GameVersion >= 60000) and SortReagentBankBags or MOD:RunSortingProcess(MOD.Sort, "bank") + local Sort_OnClick = (SV.GameVersion >= 60000) and BankFrame_AutoSortButtonOnClick or MOD:RunSortingProcess(MOD.Sort, "bank") frame.sortButton:SetScript("OnClick", Sort_OnClick) frame.stackButton = NewFrame("Button", nil, frame) @@ -1285,6 +1314,7 @@ end function MOD:RefreshTokens() local frame = MOD.BagFrame; local index = 0; + for i=1,MAX_WATCHED_TOKENS do local name,count,icon,currencyID = GetBackpackCurrencyInfo(i) local set = frame.currencyButton[i] @@ -1302,7 +1332,8 @@ function MOD:RefreshTokens() else set:Hide() end - end + end + if index == 0 then frame.bottomOffset = 8; if frame.currencyButton:IsShown() then @@ -1314,7 +1345,8 @@ function MOD:RefreshTokens() frame.bottomOffset = 28; frame.currencyButton:Show() MOD.BagFrame:UpdateLayout() - end + end + frame.bottomOffset = 28; local set = frame.currencyButton; if index == 1 then diff --git a/Interface/AddOns/SVUI/scripts/ego.lua b/Interface/AddOns/SVUI/scripts/ego.lua index 45a8b51..c0b963b 100644 --- a/Interface/AddOns/SVUI/scripts/ego.lua +++ b/Interface/AddOns/SVUI/scripts/ego.lua @@ -31,15 +31,41 @@ GET ADDON DATA local SV = select(2, ...) 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 LaunchPopup = function(self, emote) +local function rng() + return random(1, #Sequences) +end + +local LaunchAnimation = function(self, key) + key = key or rng() + local emote = Sequences[key][1] + self:Show() + self.anim[2]:SetOffset(0, 0) + self.anim[2]:SetOffset(0, 0) + self.anim:Play() + self:SetAnimation(emote) +end + +local LaunchFreezeFrame = function(self, key) + key = key or rng() + local animation = Sequences[key] local size = SVUIParent:GetHeight() self:Show() self.anim[2]:SetOffset(size, -size) self.anim[2]:SetOffset(0, 0) self.anim:Play() - self:SetAnimation(emote) + self:SetSequenceTime(unpack(animation)) end local ResetPosition = function(self) @@ -52,14 +78,14 @@ end local Ego_OnEvent = function(self, event) if event == "ACHIEVEMENT_EARNED" then - self:LaunchPopup(74) + self:LaunchAnimation(4) else - self:LaunchPopup(84) + self:LaunchAnimation(6) end end function BeAwesome() - EgoFrame:LaunchPopup(74) + EgoFrame:LaunchAnimation(4) end function SV:ToggleEgo() @@ -83,10 +109,11 @@ local function LoadSVEgo() EgoFrame:SetWidth(size) EgoFrame:SetHeight(size) EgoFrame:SetUnit("player") - EgoFrame.LaunchPopup = LaunchPopup + EgoFrame.LaunchAnimation = LaunchAnimation + EgoFrame.LaunchFreezeFrame = LaunchFreezeFrame EgoFrame.ResetPosition = ResetPosition - SV.Animate:Slide(EgoFrame, size, -size, true, 1.5) + SV.Animate:Slide(EgoFrame, 0, 0, true, 1.5) EgoFrame:SetAlpha(0) EgoFrame.anim[4]:SetScript("OnFinished", EgoPop_OnUpdate) diff --git a/Interface/AddOns/SVUI/scripts/mounts.lua b/Interface/AddOns/SVUI/scripts/mounts.lua index 6a98ada..9023c1b 100644 --- a/Interface/AddOns/SVUI/scripts/mounts.lua +++ b/Interface/AddOns/SVUI/scripts/mounts.lua @@ -16,17 +16,17 @@ S U P E R - V I L L A I N - U I By: Munglunch # LOCALIZED LUA FUNCTIONS ########################################################## ]]-- -if(select(4, GetBuildInfo()) >= 60000) then return end; --[[ GLOBALS ]]-- local _G = _G; -local unpack = _G.unpack; -local select = _G.select; -local pairs = _G.pairs; -local tonumber = _G.tonumber; -local tinsert = _G.tinsert; -local table = _G.table; -local bit = _G.bit; - +local unpack = _G.unpack; +local select = _G.select; +local pairs = _G.pairs; +local tonumber = _G.tonumber; +local tinsert = _G.tinsert; +local table = _G.table; +local math = _G.math; +local bit = _G.bit; +local random = math.random; local twipe,band = table.wipe, bit.band; --[[ ########################################################## @@ -41,14 +41,55 @@ LOCAL VARIABLES ########################################################## ]]-- local ttSummary = ""; +local NewHook = hooksecurefunc; +local CountMounts, MountInfo, RandomMount, MountUp, UnMount; + local MountListener = CreateFrame("Frame"); +MountListener.favorites = 0 --[[ ########################################################## LOCAL FUNCTIONS ########################################################## ]]-- +if(select(4, GetBuildInfo()) >= 60000) then + function CountMounts() + return C_MountJournal.GetNumMounts() + end + function MountInfo(index) + return C_MountJournal.GetMountInfo(index) + end + function RandomMount() + if(MountListener.favorites > 0) then + return 0 + end + maxMounts = C_MountJournal.GetNumMounts() + return random(1, maxMounts) + end + function MountUp(index) + index = index or RandomMount() + return C_MountJournal.Summon(index) + end + UnMount = C_MountJournal.Dismiss +else + function CountMounts() + return GetNumCompanions("MOUNT") + end + function MountInfo(index) + return GetCompanionInfo("MOUNT", index) + end + function RandomMount() + maxMounts = GetNumCompanions("MOUNT") + return random(1, maxMounts) + end + function MountUp(index) + index = index or random(1, maxMounts) + return CallCompanion("MOUNT", index) + end + UnMount = Dismount +end + local function UpdateMountCheckboxes(button, index) - local _, creatureName = GetCompanionInfo("MOUNT", index); + local _, creatureName = MountInfo(index); local n = button.MountBar local bar = _G[n] @@ -103,9 +144,9 @@ end local function UpdateMountsCache() if(not MountJournal or not MountJournal.cachedMounts) then return end - local num = GetNumCompanions("MOUNT") + local num = CountMounts() for index = 1, num, 1 do - local _, info, id = GetCompanionInfo("MOUNT", index) + local _, info, id = MountInfo(index) if(SV.cache.Mounts.names["GROUND"] == info) then if(SV.cache.Mounts.types["GROUND"] ~= index) then SV.cache.Mounts.types["GROUND"] = index @@ -254,7 +295,7 @@ local function SetMountCheckButtons() UpdateMountsCache() local scrollFrame = MountJournal.ListScrollFrame; - local scrollBar = _G["MountJournalListScrollFrameScrollBar"] + -- local scrollBar = _G["MountJournalListScrollFrameScrollBar"] local buttons = scrollFrame.buttons; for i = 1, #buttons do @@ -277,11 +318,7 @@ local function SetMountCheckButtons() buttonBar["GROUND"]:SetPanelColor(0.2, 0.7, 0.1, 0.15) buttonBar["GROUND"]:GetCheckedTexture():SetVertexColor(0.2, 0.7, 0.1, 1) buttonBar["GROUND"].key = "GROUND" - if(enabled) then - buttonBar["GROUND"]:SetChecked(1) - else - buttonBar["GROUND"]:SetChecked(0) - end + buttonBar["GROUND"]:SetChecked(0) buttonBar["GROUND"]:SetScript("OnClick", CheckButton_OnClick) buttonBar["GROUND"]:SetScript("OnEnter", CheckButton_OnEnter) buttonBar["GROUND"]:SetScript("OnLeave", CheckButton_OnLeave) @@ -294,11 +331,7 @@ local function SetMountCheckButtons() buttonBar["FLYING"]:SetPanelColor(1, 1, 0.2, 0.15) buttonBar["FLYING"]:GetCheckedTexture():SetVertexColor(1, 1, 0.2, 1) buttonBar["FLYING"].key = "FLYING" - if(enabled) then - buttonBar["FLYING"]:SetChecked(1) - else - buttonBar["FLYING"]:SetChecked(0) - end + buttonBar["FLYING"]:SetChecked(0) buttonBar["FLYING"]:SetScript("OnClick", CheckButton_OnClick) buttonBar["FLYING"]:SetScript("OnEnter", CheckButton_OnEnter) buttonBar["FLYING"]:SetScript("OnLeave", CheckButton_OnLeave) @@ -311,11 +344,7 @@ local function SetMountCheckButtons() buttonBar["SWIMMING"]:SetPanelColor(0.2, 0.42, 0.76, 0.15) buttonBar["SWIMMING"]:GetCheckedTexture():SetVertexColor(0.2, 0.42, 0.76, 1) buttonBar["SWIMMING"].key = "SWIMMING" - if(enabled) then - buttonBar["SWIMMING"]:SetChecked(1) - else - buttonBar["SWIMMING"]:SetChecked(0) - end + buttonBar["SWIMMING"]:SetChecked(0) buttonBar["SWIMMING"]:SetScript("OnClick", CheckButton_OnClick) buttonBar["SWIMMING"]:SetScript("OnEnter", CheckButton_OnEnter) buttonBar["SWIMMING"]:SetScript("OnLeave", CheckButton_OnLeave) @@ -328,11 +357,7 @@ local function SetMountCheckButtons() buttonBar["SPECIAL"]:SetPanelColor(0.7, 0.1, 0.1, 0.15) buttonBar["SPECIAL"]:GetCheckedTexture():SetVertexColor(0.7, 0.1, 0.1, 1) buttonBar["SPECIAL"].key = "SPECIAL" - if(special) then - buttonBar["SPECIAL"]:SetChecked(1) - else - buttonBar["SPECIAL"]:SetChecked(0) - end + buttonBar["SPECIAL"]:SetChecked(0) buttonBar["SPECIAL"]:SetScript("OnClick", CheckButton_OnClick) buttonBar["SPECIAL"]:SetScript("OnEnter", CheckButton_OnEnter) buttonBar["SPECIAL"]:SetScript("OnLeave", CheckButton_OnLeave) @@ -343,8 +368,8 @@ local function SetMountCheckButtons() end - scrollFrame:HookScript("OnMouseWheel", Update_MountCheckButtons) - scrollBar:HookScript("OnValueChanged", Update_MountCheckButtons) + -- scrollFrame:HookScript("OnMouseWheel", Update_MountCheckButtons) + -- scrollBar:HookScript("OnValueChanged", Update_MountCheckButtons) UpdateCurrentMountSelection() if(SV.GameVersion >= 60000) then @@ -355,6 +380,8 @@ local function SetMountCheckButtons() MountListener:RegisterEvent("COMPANION_UNLEARNED") MountListener:RegisterEvent("COMPANION_UPDATE") MountListener:SetScript("OnEvent", ProxyUpdate_Mounts) + + NewHook("MountJournal_UpdateMountList", Update_MountCheckButtons) end --[[ ########################################################## @@ -362,83 +389,43 @@ SLASH FUNCTION ########################################################## ]]-- function SVUILetsRide() - local checkList = SV.cache.Mounts.types - local letsFly, letsSwim, letsSeahorse, vjZone, IbelieveIcantFly - local maxMounts = GetNumCompanions("MOUNT") + local maxMounts = CountMounts() + if(not maxMounts or IsMounted()) then - Dismount() + UnMount() return end + if(CanExitVehicle()) then VehicleExit() return end - if(IsUsableSpell(59569) == nil) then - IbelieveIcantFly = true - end - if(not IbelieveIcantFly and IsFlyableArea()) then - letsFly = true - end - for i = 1, 40 do - local auraID = select(11, UnitBuff("player", i)) - if(auraID == 73701 or auraID == 76377) then - vjZone = true - end - end - if(vjZone and IsSwimming()) then - letsSeahorse = true - end - if(IsSwimming() and IbelieveIcantFly and not letsSeahorse) then - letsSwim = true - end - if(IsModifierKeyDown()) then - if(checkList["SPECIAL"]) then - CallCompanion("MOUNT", checkList["SPECIAL"]) - return - elseif(checkList["GROUND"]) then - CallCompanion("MOUNT", checkList["GROUND"]) - return - end - end - if(letsSeahorse) then - for index = 1, maxMounts, 1 do - local _, info, id = GetCompanionInfo("MOUNT", index) - if(letsSeahorse and id == 75207) then CallCompanion("MOUNT", index) end - end - end - if(letsFly and not letsSwim) then - if(checkList["FLYING"]) then - CallCompanion("MOUNT", checkList["FLYING"]) - return - else - if(checkList["GROUND"]) then - SV:AddonMessage("No flying mount selected! Using your ground mount.") - CallCompanion("MOUNT", checkList["GROUND"]) - return + + local checkList = SV.cache.Mounts.types + local letsFly = IsFlyableArea() + local letsSwim = IsSwimming() + + if(IsModifierKeyDown() and checkList["SPECIAL"]) then + MountUp(checkList["SPECIAL"]) + else + if(letsSwim) then + if(checkList["SWIMMING"]) then + MountUp(checkList["SWIMMING"]) + elseif(letsFly) then + MountUp(checkList["FLYING"]) + else + MountUp(checkList["GROUND"]) end + elseif(letsFly) then + if(checkList["FLYING"]) then + MountUp(checkList["FLYING"]) + else + MountUp(checkList["GROUND"]) + end + else + MountUp(checkList["GROUND"]) end - elseif(not letsFly and not letsSwim) then - if(checkList["GROUND"]) then - CallCompanion("MOUNT", checkList["GROUND"]) - return - end - elseif(letsSwim) then - if(checkList["SWIMMING"]) then - CallCompanion("MOUNT", checkList["SWIMMING"]) - return - elseif(letsFly and checkList["FLYING"]) then - SV:AddonMessage("No swimming mount selected! Using your flying mount.") - CallCompanion("MOUNT", checkList["FLYING"]) - return - end - elseif(checkList["GROUND"]) then - CallCompanion("MOUNT", checkList["GROUND"]) - return - end - if(not checkList["GROUND"] and not checkList["FLYING"] and not checkList["SWIMMING"]) then - CallCompanion("MOUNT", random(1, maxMounts)) end - return end --[[ ########################################################## diff --git a/Interface/AddOns/SVUI/system/common.lua b/Interface/AddOns/SVUI/system/common.lua index 8dca0d5..0cdaa92 100644 --- a/Interface/AddOns/SVUI/system/common.lua +++ b/Interface/AddOns/SVUI/system/common.lua @@ -169,6 +169,15 @@ function SV:ScreenCalibration(event) self.ActualWidth = self.UIParent:GetWidth() end end + +local function scaled(value) + if(not SCREEN_MOD) then + SV:ScreenCalibration() + end + return SCREEN_MOD * floor(value / SCREEN_MOD + .5); +end + +SV.Scale = scaled --[[ ########################################################## APPENDED POSITIONING METHODS @@ -177,13 +186,6 @@ APPENDED POSITIONING METHODS do local PARAMS = {} - local function scaled(value) - if(not SCREEN_MOD) then - SV:ScreenCalibration() - end - return SCREEN_MOD * floor(value / SCREEN_MOD + .5); - end - function SizeScaled(self, width, height) if(type(width) == "number") then local h = (height and type(height) == "number") and height or width @@ -240,7 +242,7 @@ do end self:SetPoint("TOPLEFT", parent, "TOPLEFT", nx, -ny) self:SetPoint("BOTTOMRIGHT", parent, "BOTTOMRIGHT", -nx, ny) - end + end end --[[ ########################################################## @@ -857,8 +859,8 @@ local function CreatePanelTemplate(frame, templateName, underlay, noupdate, padd needsHooks = true local panel = NewFrame('Frame', nil, frame) - panel:Point('TOPLEFT', frame, 'TOPLEFT', (xOffset * -1), yOffset) - panel:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', xOffset, (yOffset * -1)) + panel:SetPoint('TOPLEFT', frame, 'TOPLEFT', (xOffset * -1), yOffset) + panel:SetPoint('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', xOffset, yOffset * -1) if(padding > 0 and type(t) == 'table') then panel[1] = panel:CreateTexture(nil,"BORDER") @@ -903,12 +905,12 @@ local function CreatePanelTemplate(frame, templateName, underlay, noupdate, padd if(not frame.Panel[5]) then if(underlay) then frame.Panel[5] = NewFrame('Frame', nil, frame.Panel) - frame.Panel[5]:Point('TOPLEFT', frame.Panel, 'TOPLEFT', -3, 3) - frame.Panel[5]:Point('BOTTOMRIGHT', frame.Panel, 'BOTTOMRIGHT', 3, -3) + frame.Panel[5]:SetPoint('TOPLEFT', frame.Panel, 'TOPLEFT', -3, 3) + frame.Panel[5]:SetPoint('BOTTOMRIGHT', frame.Panel, 'BOTTOMRIGHT', 3, -3) else frame.Panel[5] = NewFrame('Frame', nil, frame) - frame.Panel[5]:Point('TOPLEFT', frame, 'TOPLEFT', -3, 3) - frame.Panel[5]:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', 3, -3) + frame.Panel[5]:SetPoint('TOPLEFT', frame, 'TOPLEFT', -3, 3) + frame.Panel[5]:SetPoint('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', 3, -3) end end diff --git a/Interface/AddOns/SVUI/system/media.lua b/Interface/AddOns/SVUI/system/media.lua index 9a620c8..54e9e6c 100644 --- a/Interface/AddOns/SVUI/system/media.lua +++ b/Interface/AddOns/SVUI/system/media.lua @@ -325,8 +325,8 @@ function SV:RefreshSystemFonts() SetFont(Tooltip_Small, UNICODE_FONT, unicodesize) SetFont(GameFontNormalSmall, UNICODE_FONT, unicodesize) SetFont(GameFontHighlightSmall, UNICODE_FONT, unicodesize) - SetFont(NumberFont_Shadow_Med, UNICODE_FONT, unicodesize) - SetFont(NumberFont_Shadow_Small, UNICODE_FONT, unicodesize) + SetFont(NumberFont_Shadow_Med, UNICODE_FONT, unicodesize, "OUTLINE") + SetFont(NumberFont_Shadow_Small, UNICODE_FONT, unicodesize, "OUTLINE") SetFont(SystemFont_Tiny, UNICODE_FONT, unicodesize) self:UpdateFontTemplates() diff --git a/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc b/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc index b061970..ffc27ea 100644 --- a/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc +++ b/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc @@ -1,6 +1,6 @@ ## Interface: 60000 ## Author: Munglunch -## Version: 4.8 +## Version: 4.9 ## Title: |cffFF9900SVUI |r|cffFFEF00Chat-O-Matic|r ## Notes: Supervillain UI [|cff9911FFVarious Chat Gadgets|r] ## SavedVariables: ChatOMatic_Data diff --git a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc index 0bb6d7b..c6b20a4 100644 --- a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc +++ b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc @@ -1,6 +1,6 @@ ## Interface: 60000 ## Author: Munglunch -## Version: 4.8 +## Version: 4.9 ## Title: |cffFF9900SVUI |r|cffFFEF00Config-O-Matic|r ## Notes: Supervillain UI [|cff9911FFConfig Options|r] ## RequiredDeps: SVUI diff --git a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua index c095b36..e63bb8c 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua +++ b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.lua @@ -133,10 +133,10 @@ local function CheckForDoubleClick() end --[[ ########################################################## -CORE FUNCTIONS +WORLDFRAME HANDLER ########################################################## ]]-- -function PLUGIN:WorldFrameHook(button) +local _hook_WorldFrame_OnMouseDown = function(self, button) if InCombatLockdown() then return end if(currentModeKey and button == "RightButton" and CheckForDoubleClick()) then local handle = PLUGIN[currentModeKey]; @@ -146,7 +146,7 @@ function PLUGIN:WorldFrameHook(button) end end -function SVUI_ModeCaptureWindow:PostClickHandler() +local ModeCapture_PostClickHandler = function(self, button) if InCombatLockdown() then self:RegisterEvent("PLAYER_REGEN_ENABLED") return @@ -155,6 +155,36 @@ function SVUI_ModeCaptureWindow:PostClickHandler() self.Grip:Hide() end +local ModeCapture_EventHandler = function(self, event, ...) + if event == "PLAYER_REGEN_ENABLED" then + self:UnregisterEvent("PLAYER_REGEN_ENABLED") + PLUGIN:ChangeModeGear() + self:GetScript("PostClick")() + end + if event == "PLAYER_ENTERING_WORLD" then + if (IsSpellKnown(131474) or IsSpellKnown(80451) or IsSpellKnown(818)) then + WorldFrame:HookScript("OnMouseDown", _hook_WorldFrame_OnMouseDown) + end + self:UnregisterEvent("PLAYER_ENTERING_WORLD") + end +end + +local ModeHandler = CreateFrame("Frame") +ModeHandler:SetPoint("LEFT", UIParent, "RIGHT", 10000, 0) +local ModeCapture = CreateFrame("Button", "SVUI_ModeCaptureWindow", ModeHandler, "SecureActionButtonTemplate") +ModeCapture.Grip = ModeHandler +ModeCapture:EnableMouse(true) +ModeCapture:RegisterForClicks("RightButtonUp") +ModeCapture:RegisterEvent("PLAYER_ENTERING_WORLD") +ModeCapture:SetScript("PostClick", ModeCapture_PostClickHandler) +ModeCapture:SetScript("OnEvent", ModeCapture_EventHandler) + +ModeCapture:Hide() +--[[ +########################################################## +CORE FUNCTIONS +########################################################## +]]-- function PLUGIN:CraftingReset() self.TitleWindow:Clear(); self.LogWindow:Clear(); diff --git a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc index c32772a..168e57a 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc +++ b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc @@ -1,6 +1,6 @@ ## Interface: 60000 ## Author: Munglunch -## Version: 4.8 +## Version: 4.9 ## Title: |cffFF9900SVUI |r|cffFFEF00Craft-O-Matic|r ## Notes: Supervillain UI [|cff9911FFProfession Tools|r]. ## Interface: 60000 diff --git a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.xml b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.xml index 25b65c4..b59b839 100644 --- a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.xml +++ b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.xml @@ -1,39 +1,4 @@ - - - - - - - - - -