Quantcast

Altered artifact power in a big way. This should help in case of #399

Darth Predator [11-19-16 - 11:23]
Altered artifact power in a big way. This should help in case of #399
Filename
ElvUI_SLE/modules/bags/artifactpower.lua
diff --git a/ElvUI_SLE/modules/bags/artifactpower.lua b/ElvUI_SLE/modules/bags/artifactpower.lua
index 7087892..5e036de 100644
--- a/ElvUI_SLE/modules/bags/artifactpower.lua
+++ b/ElvUI_SLE/modules/bags/artifactpower.lua
@@ -34,11 +34,16 @@ local function GetItemLinkArtifactPower(slotLink)
 	end
 end

-local function UpdateContainerFrame(frame, bagID, slotID)
+local function SlotUpdate(self, bagID, slotID)
+	if (not bagID or not slotID) or bagID == -3 then return end
+	if not self.Bags[bagID] or not self.Bags[bagID][slotID] then
+		return;
+	end
+
+	local frame = self.Bags[bagID][slotID]
 	if (not frame.artifactpowerinfo) and E.db.sle.bags.artifactPower.enable then
 		frame.artifactpowerinfo = frame:CreateFontString(nil, 'OVERLAY')
 		frame.artifactpowerinfo:Point("BOTTOMLEFT", 2, 2)
-		--frame.artifactpowerinfo:SetAllPoints(frame)
 	end

 	if E.db.sle.bags.artifactPower.enable then
@@ -59,59 +64,17 @@ local function UpdateContainerFrame(frame, bagID, slotID)
 	end
 end

-function AP:bagUpdate()
-	for _, container in T.pairs(AP.containers) do
-		for _, bagID in T.ipairs(container.BagIDs) do
-			for slotID = 1, T.GetContainerNumSlots(bagID) do
-				UpdateContainerFrame(container.Bags[bagID][slotID], bagID, slotID)
-
-				-- local slotFrame = _G["ElvUI_ContainerFrameBag"..bagID.."Slot"..slotID]
-				-- local slotLink = GetContainerItemLink(bagID,slotID)
-
-				-- if not slotFrame.artifactpowerinfo then
-				-- 	slotFrame.artifactpowerinfo = slotFrame:CreateFontString(nil, 'OVERLAY')
-				-- end
-
-				-- slotFrame.artifactpowerinfo:Point("BOTTOMRIGHT", 0, 2)
-				-- slotFrame.artifactpowerinfo:FontTemplate(E.LSM:Fetch("font", E.db.bags.itemLevelFont), E.db.bags.itemLevelFontSize, E.db.bags.itemLevelFontOutline)
-				-- slotFrame.artifactpowerinfo:SetText("")
-				-- slotFrame.artifactpowerinfo:SetAllPoints(slotFrame)
-				-- slotFrame.artifactpowerinfo:SetTextColor(255, 0, 0)
-
-				-- arcanePower = GetItemLinkArtifactPower(slotLink)
-
-				-- if arcanePower then
-				-- 	slotFrame.artifactpowerinfo:SetText(arcanePower)
-				-- end
-			end
-		end
-	end
-end
-
-function AP:ToggleSettings()
-	self:RegisterEvent("BAG_UPDATE_DELAYED", "bagUpdate")
-	self:RegisterEvent("ARTIFACT_UPDATE", "bagUpdate")
-	self:RegisterEvent("BANKFRAME_OPENED", "bagUpdate")
-	self:RegisterEvent("PLAYERBANKSLOTS_CHANGED", "bagUpdate")
-	self:RegisterEvent("BANKFRAME_CLOSED", "bagUpdate")
-	self:RegisterEvent("BAG_UPDATE", "bagUpdate")
-	self:RegisterEvent("ITEM_LOCKED", "bagUpdate")
-	self:RegisterEvent("ITEM_LOCK_CHANGED", "bagUpdate")
-end
-
 function AP:Initialize()
 	if not SLE.initialized or not E.private.bags.enable then return end

 	tooltipScanner = CreateFrame("GameTooltip", tooltipName, nil, "GameTooltipTemplate")
 	empoweringSpellName = GetSpellInfo(EMPOWERING_SPELL_ID)

-	T.tinsert(AP.containers, _G["ElvUI_ContainerFrame"])
-	self:SecureHook(B, "OpenBank", function()
-		self:Unhook(B, "OpenBank")
-		T.tinsert(AP.containers, _G["ElvUI_BankContainerFrame"])
-		AP:ToggleSettings()
+	hooksecurefunc(B,"UpdateSlot", SlotUpdate)
+	hooksecurefunc(ElvUI_ContainerFrame,"UpdateSlot", SlotUpdate)
+	self:RegisterEvent("BANKFRAME_OPENED", function()
+		AP:UnregisterEvent("BANKFRAME_OPENED")
+		B:Layout()
 	end)
-
-	AP:ToggleSettings()
 end
 SLE:RegisterModule(AP:GetName())
\ No newline at end of file