From ea692c38ef85f94eb948d459db97031b99f5ed1d Mon Sep 17 00:00:00 2001 From: Anch Date: Fri, 27 Oct 2023 04:54:22 +1300 Subject: [PATCH] updates - updated to delete sanguine workbench after dropping with the item delete setting - added open menu on mouse over of the button - Woodcutting now works --- ProfessionMenu/ProfessionMenu.lua | 78 +++++++++++++----------- ProfessionMenu/ProfessionMenu.toc | 2 +- ProfessionMenu/ProfessionMenuOptions.lua | 14 ++++- 3 files changed, 55 insertions(+), 39 deletions(-) diff --git a/ProfessionMenu/ProfessionMenu.lua b/ProfessionMenu/ProfessionMenu.lua index 0530215..b868b32 100644 --- a/ProfessionMenu/ProfessionMenu.lua +++ b/ProfessionMenu/ProfessionMenu.lua @@ -22,7 +22,8 @@ local DefaultSettings = { { TableName = "HideMenu", false, Frame = "ProfessionMenuFrame", CheckBox = "ProfessionMenuOptions_HideMenu"}, { TableName = "DeleteItem", false, CheckBox = "ProfessionMenuOptions_DeleteMenu"}, { TableName = "minimap", false, CheckBox = "ProfessionMenuOptions_HideMinimap"}, - { TableName = "txtSize", 12 } + { TableName = "txtSize", 12}, + { TableName = "autoMenu", false, CheckBox = "ProfessionMenuOptions_AutoMenu"} } --[[ TableName = Name of the saved setting @@ -167,28 +168,31 @@ function PM:HasItem(itemID) end local items = { - 1777028, -- thermal anvil - 1904514, -- sanguine workbench vanity - 1904515, + {1777028, "Summon Thermal Anvil"}, -- thermal anvil + {1904514, "Summon Sanguine Workbench"}, -- sanguine workbench vanity + {1904515}, } --- deletes any mystic altars in the players inventory + +-- deletes item from players inventory if value 2 in the items table is set function PM:RemoveItem(arg2) - if arg2 ~= "Summon Thermal Anvil" or not PM.db.DeleteItem then return end - for _, itemID in pairs(items) do - local found, bag, slot = PM:HasItem(itemID) - if found then - PickupContainerItem(bag, slot) - DeleteCursorItem() - end + if not PM.db.DeleteItem then return end + for _, item in ipairs(items) do + if arg2 == item[2] then + local found, bag, slot = PM:HasItem(item[1]) + if found then + PickupContainerItem(bag, slot) + DeleteCursorItem() + end + end end PM:UnregisterEvent("UNIT_SPELLCAST_SUCCEEDED") end local function returnItemIDs() local list = {} - for _, itemID in ipairs(items) do - if PM:HasItem(itemID) or C_VanityCollection.IsCollectionItemOwned(itemID) then - tinsert(list, itemID) + for _, item in ipairs(items) do + if PM:HasItem(item[1]) or C_VanityCollection.IsCollectionItemOwned(item[1]) then + tinsert(list, item[1]) end end return list @@ -242,7 +246,8 @@ function PM:AddDividerLine(maxLenght) end --sets up the drop down menu for specs -local function ProfessionMenu_DewdropRegister(self, frame) +local function ProfessionMenu_DewdropRegister(self) + if dewdrop:IsOpen(self) then dewdrop:Close() return end dewdrop:Register(self, 'point', function(parent) return "TOP", "BOTTOM" @@ -261,7 +266,7 @@ local function ProfessionMenu_DewdropRegister(self, frame) local name, _, icon = GetSpellInfo(spellID) local secure = { type1 = 'spell', - spell = name + spell = spellID } dewdrop:AddLine( 'text', name, @@ -288,7 +293,7 @@ local function ProfessionMenu_DewdropRegister(self, frame) if CA_IsSpellKnown(750750) then if not divider then divider = PM:AddDividerLine(35) end local name, _, icon = GetSpellInfo(750750) - local secure = { type1 = 'spell', spell = name } + local secure = { type1 = 'spell', spell = 750750 } dewdrop:AddLine( 'text', name, 'icon', icon, 'secure', secure, 'closeWhenClicked', true, 'textHeight', PM.db.txtSize, 'textWidth', PM.db.txtSize) end @@ -297,12 +302,12 @@ local function ProfessionMenu_DewdropRegister(self, frame) PM:AddDividerLine(35) for _, spellID in ipairs(spellIDs) do local name, _, icon = GetSpellInfo(spellID) - local secure = { type1 = 'spell', spell = name } + local secure = { type1 = 'spell', spell = spellID } dewdrop:AddLine( 'text', name, 'icon', icon,'secure', secure, 'closeWhenClicked', true, 'textHeight', PM.db.txtSize, 'textWidth', PM.db.txtSize) end end PM:AddDividerLine(35) - if frame == "ProfessionMenuFrame_Menu" then + if self.show then dewdrop:AddLine( 'text', "Unlock Frame", 'textHeight', PM.db.txtSize, @@ -333,13 +338,8 @@ local function ProfessionMenu_DewdropRegister(self, frame) end, 'dontHook', true ) -end - -local function mainButton_OnClick(self, arg1) - if dewdrop:IsOpen() then PM:OnEnter(self) dewdrop:Close() return end - GameTooltip:Hide() - ProfessionMenu_DewdropRegister(self, "ProfessionMenuFrame_Menu") dewdrop:Open(self) + GameTooltip:Hide() end local function toggleMainButton(toggle) @@ -418,8 +418,12 @@ end professionbutton:SetPoint("BOTTOM", ProfessionMenuFrame, "BOTTOM", 0, 2) professionbutton:RegisterForClicks("LeftButtonDown", "RightButtonDown") professionbutton:Show() - professionbutton:SetScript("OnClick", function(self, btnclick) mainButton_OnClick(self, btnclick) end) + professionbutton:SetScript("OnClick", function(self, btnclick) if not PM.db.autoMenu then ProfessionMenu_DewdropRegister(self) end end) + professionbutton.show = true professionbutton:SetScript("OnEnter", function(self) + if PM.db.autoMenu then + ProfessionMenu_DewdropRegister(self) + end if not dewdrop:IsOpen() then PM:OnEnter(self) end @@ -505,9 +509,9 @@ end function minimap.OnClick(self, button) GameTooltip:Hide() - if dewdrop:IsOpen() then dewdrop:Close() return end - ProfessionMenu_DewdropRegister(self) - dewdrop:Open(self) + if not PM.db.autoMenu then + ProfessionMenu_DewdropRegister(self) + end end function minimap.OnLeave() @@ -515,11 +519,15 @@ function minimap.OnLeave() end function PM:OnEnter(self) - GameTooltip:SetOwner(self, 'ANCHOR_NONE') - GameTooltip:SetPoint(GetTipAnchor(self)) - GameTooltip:ClearLines() - GameTooltip:AddLine("ProfessionMenu") - GameTooltip:Show() + if PM.db.autoMenu then + ProfessionMenu_DewdropRegister(self) + else + GameTooltip:SetOwner(self, 'ANCHOR_NONE') + GameTooltip:SetPoint(GetTipAnchor(self)) + GameTooltip:ClearLines() + GameTooltip:AddLine("ProfessionMenu") + GameTooltip:Show() + end end function minimap.OnEnter(self) diff --git a/ProfessionMenu/ProfessionMenu.toc b/ProfessionMenu/ProfessionMenu.toc index 2a49299..8251e1d 100644 --- a/ProfessionMenu/ProfessionMenu.toc +++ b/ProfessionMenu/ProfessionMenu.toc @@ -7,6 +7,6 @@ ## X-Category: Profession ## X-OptionsFrame: ProfessionMenuOptionsFrame ## DefaultState: enabled -## Version: 0.6 +## Version: 0.7 embeds.xml diff --git a/ProfessionMenu/ProfessionMenuOptions.lua b/ProfessionMenu/ProfessionMenuOptions.lua index a25c161..f660bf1 100644 --- a/ProfessionMenu/ProfessionMenuOptions.lua +++ b/ProfessionMenu/ProfessionMenuOptions.lua @@ -45,7 +45,7 @@ end hideHover.Lable = hideHover:CreateFontString(nil , "BORDER", "GameFontNormal") hideHover.Lable:SetJustifyH("LEFT") hideHover.Lable:SetPoint("LEFT", 30, 0) - hideHover.Lable:SetText("Only Show Menu on Hover") + hideHover.Lable:SetText("Only Show Standalone Button on Hover") hideHover:SetScript("OnClick", function() if PM.db.ShowMenuOnHover then ProfessionMenuFrame_Menu:Show() @@ -74,11 +74,19 @@ end itemDel.Lable = itemDel:CreateFontString(nil , "BORDER", "GameFontNormal") itemDel.Lable:SetJustifyH("LEFT") itemDel.Lable:SetPoint("LEFT", 30, 0) - itemDel.Lable:SetText("Delete anvil after summoning") + itemDel.Lable:SetText("Delete vanity items after summoning") itemDel:SetScript("OnClick", function() PM.db.DeleteItem = not PM.db.DeleteItem end) + local autoMenu = CreateFrame("CheckButton", "ProfessionMenuOptions_AutoMenu", ProfessionMenuOptionsFrame, "UICheckButtonTemplate") + autoMenu:SetPoint("TOPLEFT", 15, -200) + autoMenu.Lable = autoMenu:CreateFontString(nil , "BORDER", "GameFontNormal") + autoMenu.Lable:SetJustifyH("LEFT") + autoMenu.Lable:SetPoint("LEFT", 30, 0) + autoMenu.Lable:SetText("Show menu on hover") + autoMenu:SetScript("OnClick", function() PM.db.autoMenu = not PM.db.autoMenu end) + local txtSize = CreateFrame("Button", "ProfessionMenuOptions_TxtSizeMenu", ProfessionMenuOptionsFrame, "UIDropDownMenuTemplate") - txtSize:SetPoint("TOPLEFT", 15, -200) + txtSize:SetPoint("TOPLEFT", 15, -240) txtSize.Lable = txtSize:CreateFontString(nil , "BORDER", "GameFontNormal") txtSize.Lable:SetJustifyH("LEFT") txtSize.Lable:SetPoint("LEFT", txtSize, 190, 0)