From d31808d2b1f48112e9ef93f003515fb069af35ee Mon Sep 17 00:00:00 2001 From: Darthpred Date: Wed, 31 Aug 2016 08:29:42 +0300 Subject: [PATCH] Another way for decon to work --- ElvUI_SLE/modules/professions/deconstruct.lua | 64 ++++++++----------------- ElvUI_SLE/modules/professions/professions.lua | 18 ++----- 2 files changed, 23 insertions(+), 59 deletions(-) diff --git a/ElvUI_SLE/modules/professions/deconstruct.lua b/ElvUI_SLE/modules/professions/deconstruct.lua index bbc71e8..e1795f3 100644 --- a/ElvUI_SLE/modules/professions/deconstruct.lua +++ b/ElvUI_SLE/modules/professions/deconstruct.lua @@ -1,6 +1,7 @@ local SLE, T, E, L, V, P, G = unpack(select(2, ...)) local Pr = SLE:GetModule("Professions") local B = E:GetModule("Bags") +local lib = LibStub("LibProcessable") --GLOBALS: hooksecurefunc, CreateFrame local _G = _G local VIDEO_OPTIONS_ENABLED, VIDEO_OPTIONS_DISABLED = VIDEO_OPTIONS_ENABLED, VIDEO_OPTIONS_DISABLED @@ -59,20 +60,9 @@ Pr.ItemTable = { ["45991"] = true, --Bone Fishing Pole ["45992"] = true, --Jeweled Fishing Pole }, - --Cause this shit doesn't state it's millable - ["CanDisentegrate"] = { - ['109129']='OVERRIDE_MILLABLE', - ['109128']='OVERRIDE_MILLABLE', - ['109127']='OVERRIDE_MILLABLE', - ['109126']='OVERRIDE_MILLABLE', - ['109125']='OVERRIDE_MILLABLE', - ['109124']='OVERRIDE_MILLABLE', - }, - [ITEM_MILLABLE] = {}, - ['OVERRIDE_MILLABLE'] = {}, - [ITEM_PROSPECTABLE] = {}, } Pr.Keys = { + [T.GetSpell(195809)] = true, -- jeweled lockpick [T.GetSpell(130100)] = true, -- Ghostly Skeleton Key [T.GetSpell(94574)] = true, -- Obsidium Skeleton Key [T.GetSpell(59403)] = true, -- Titanium Skeleton Key @@ -167,9 +157,6 @@ function Pr:IsBreakable(link) if Pr.ItemTable["Cooking"][item] and E.global.sle.DE.IgnoreCooking then return false end if Pr.ItemTable["Fishing"][item] and E.global.sle.DE.IgnoreFishing then return false end if Pr.BlacklistDE[name] then return false end - for skill, level in T.pairs(Pr.EnchantSkillTable[quality]) do - if Pr.DErank < skill and ilvl >= level then return false end - end return true end return false @@ -206,22 +193,25 @@ end function Pr:DeconstructParser(...) local item, link = self:GetItem() + local itemString = T.match(link, "item[%-?%d:]+") + local _, id = T.split(":", itemString) if(item and not T.InCombatLockdown()) and (Pr.DeconstructMode == true or (E.global.sle.LOCK.TradeOpen and self:GetOwner():GetName() == "TradeRecipientItem7ItemButton")) then - local spell, r, g, b = Pr.DeconstructionReal.ScanTooltip(self, link) - if(spell) then - Pr:ApplyDeconstruct(link, spell, r, g, b) - else - if(Pr.DEname and Pr:IsBreakable(link)) then - r, g, b = 1, 0, 0 - Pr:ApplyDeconstruct(link, Pr.DEname, r, g, b) - elseif(Pr.LOCKname and Pr:IsLocked(link) and Pr:IsUnlockable(link)) then - r, g, b = 0, 1, 1 - Pr:ApplyDeconstruct(link, Pr.LOCKname, r, g, b) - elseif(Pr.SMITHname and Pr:IsLocked(link) and Pr:IsUnlockable(link)) then - r, g, b = 0, 1, 1 - local hasKey = HaveKey() - Pr:ApplyDeconstruct(link, hasKey, r, g, b) - end + if (Pr.DEname and lib:IsDisenchantable(id) and Pr:IsBreakable(link)) then + r, g, b = 1, 0, 0 + Pr:ApplyDeconstruct(link, Pr.DEname, r, g, b) + elseif Pr.LOCKname and lib:IsOpenable(id) and not Pr.BlacklistLOCK[item] then + r, g, b = 0, 1, 1 + Pr:ApplyDeconstruct(link, Pr.LOCKname, r, g, b) + elseif(Pr.SMITHname or Pr.JEWELname and lib:IsOpenable(id)) then + r, g, b = 0, 1, 1 + local hasKey = HaveKey() + Pr:ApplyDeconstruct(link, hasKey, r, g, b) + elseif (Pr.PROSPECTname and lib:IsProspectable(id)) then + r, g, b = 1, 0, 0 + Pr:ApplyDeconstruct(link, Pr.PROSPECTname, r, g, b) + elseif (Pr.MILLname and lib:IsMillable(id)) then + r, g, b = 1, 0, 0 + Pr:ApplyDeconstruct(link, Pr.MILLname, r, g, b) end end end @@ -293,20 +283,6 @@ function Pr:ConstructRealDecButton() _G["GameTooltip"]:SetBagItem(self.Bag, self.Slot) end - Pr.DeconstructionReal.ScanTooltip = function(self, itemLink) - for index = 1, self:NumLines() do - local info = Pr.ItemTable[_G['GameTooltipTextLeft' .. index]:GetText()] - if(info) then - return T.unpack(info) - end - end - local itemID = itemLink:match(":(%w+)") - local override = Pr.ItemTable.CanDisentegrate[itemID] - if(override and Pr.ItemTable[override]) then - return T.unpack(Pr.ItemTable[override]) - end - end - Pr.DeconstructionReal:SetScript("OnEnter", Pr.DeconstructionReal.SetTip) Pr.DeconstructionReal:SetScript("OnLeave", function() Pr.DeconstructionReal:OnLeave() end) Pr.DeconstructionReal:Hide() diff --git a/ElvUI_SLE/modules/professions/professions.lua b/ElvUI_SLE/modules/professions/professions.lua index 0f70dcd..486ab2f 100644 --- a/ElvUI_SLE/modules/professions/professions.lua +++ b/ElvUI_SLE/modules/professions/professions.lua @@ -10,25 +10,13 @@ function Pr:UpdateSkills(event) if event ~= "CHAT_MSG_SKILL" then local spellName Pr.DEname, Pr.LOCKname, Pr.SMITHname = false, false, false - T.twipe(Pr.ItemTable[ITEM_MILLABLE]) - T.twipe(Pr.ItemTable['OVERRIDE_MILLABLE']) - T.twipe(Pr.ItemTable[ITEM_PROSPECTABLE]) if(T.IsSpellKnown(13262)) then Pr.DEname = T.GetSpell(13262) end --Enchant if(T.IsSpellKnown(1804)) then Pr.LOCKname = T.GetSpell(1804) end --Lockpicking if(T.IsSpellKnown(2018)) then Pr.SMITHname = T.GetSpellBookItemInfo((T.GetSpellInfo(2018))) end --Blacksmith - - if(T.IsSpellKnown(51005)) then --Milling - spellName = T.GetSpell(51005) - Pr.ItemTable[ITEM_MILLABLE] = {spellName, 0.5, 1, 0.5} - Pr.ItemTable['OVERRIDE_MILLABLE'] = {spellName, 0.5, 1, 0.5} - end - - if(T.IsSpellKnown(31252)) then --Prospecting - spellName = T.GetSpell(31252) - Pr.ItemTable[ITEM_PROSPECTABLE] = {spellName, 1, 0.33, 0.33} - -- Pr.ItemTable['OVERRIDE_PROSPECTABLE'] = {spellName, 1, 0.33, 0.33} - end + if(T.IsSpellKnown(25229)) then Pr.JEWELname = T.GetSpellBookItemInfo((T.GetSpellInfo(25229))) end --Jewelcrating + if(T.IsSpellKnown(31252)) then Pr.PROSPECTname = T.GetSpell((T.GetSpellInfo(31252))) end --Jewelcrating + if(T.IsSpellKnown(51005)) then Pr.MILLname = T.GetSpell((T.GetSpellInfo(51005))) end --Milling end local prof1, prof2 = T.GetProfessions() -- 1.7.9.5