diff AskMrRobot.lua @ 21:a400b906acca v4

Version 4: fixed an issue with the bank. Added Void Storage. Added Reagent Bank. Also removed stackable items from the export string
author Adam tegen <adam.tegen@gmail.com>
date Wed, 15 Oct 2014 08:38:53 -0500
parents e77e01abce98
children 3af56b6545e0
line wrap: on
line diff
--- a/AskMrRobot.lua	Mon Oct 13 23:47:14 2014 -0500
+++ b/AskMrRobot.lua	Wed Oct 15 08:38:53 2014 -0500
@@ -27,6 +27,10 @@
 AskMrRobot.eventListener:RegisterEvent("CHAT_MSG_ADDON")
 AskMrRobot.eventListener:RegisterEvent("UPDATE_INSTANCE_INFO")
 AskMrRobot.eventListener:RegisterEvent("PLAYER_DIFFICULTY_CHANGED")
+AskMrRobot.eventListener:RegisterEvent("VOID_STORAGE_OPEN")
+AskMrRobot.eventListener:RegisterEvent("VOID_STORAGE_CONTENTS_UPDATE")
+AskMrRobot.eventListener:RegisterEvent("PLAYER_DIFFICULTY_CHANGED")
+AskMrRobot.eventListener:RegisterEvent("VOID_STORAGE_UPDATE")
 
 AskMrRobot.AddonName = ...
 AskMrRobot.ChatPrefix = "_AMR"
@@ -41,8 +45,6 @@
 	if event == "ADDON_LOADED" then
         local addon = select(1, ...)
         if (addon == "AskMrRobot") then
-            --print(L.AMR_ON_EVENT_LOADED:format(GetAddOnMetadata(AskMrRobot.AddonName, "Version")))
-            
             AskMrRobot.InitializeSettings()
             AskMrRobot.InitializeMinimap()
             
@@ -66,7 +68,8 @@
         
 	elseif event == "BANKFRAME_OPENED" or event == "PLAYERBANKSLOTS_CHANGED" then 
 		AskMrRobot.ScanBank();
-        
+    elseif event == "VOID_STORAGE_OPEN" or event == "VOID_STORAGE_CONTENTS_UPDATE" or event == "VOID_STORAGE_DEPOSIT_UPDATE" or event == "VOID_STORAGE_UPDATE" then
+    	AskMrRobot.ScanVoidStorage();
 	elseif event == "CHARACTER_POINTS_CHANGED" or event == "CONFIRM_TALENT_WIPE" or event == "PLAYER_TALENT_UPDATE" or event == "ACTIVE_TALENT_GROUP_CHANGED" then
 		--AskMrRobot.GetAmrSpecializations();
 		--if AskMrRobot_ReforgeFrame then
@@ -253,7 +256,6 @@
 
 function AskMrRobot.SaveAll()
     AskMrRobot.ScanCharacter()
-	AskMrRobot.ScanBank()
 	AskMrRobot.ScanBags()
 	AskMrRobot.ScanEquipped()
 	AskMrRobot.GetCurrencies()
@@ -373,11 +375,13 @@
 	end
 end
 		
-function AskMrRobot.ScanBank(bankItemsWithCount)
+function AskMrRobot.ScanBank()
+	--REAGENTBANK_CONTAINER (-3)
 	local bankItems = {}
 	local bankItemsAndCounts = {}
 
 	scanBag(BANK_CONTAINER, true, bankItems, bankItemsAndCounts)
+	scanBag(REAGENTBANK_CONTAINER, true, bankItems, bankItemsAndCounts)
 	for bagId = NUM_BAG_SLOTS + 1, NUM_BAG_SLOTS + NUM_BANKBAGSLOTS do
 		scanBag(bagId, true, bankItems, bankItemsAndCounts)
 	end
@@ -392,6 +396,27 @@
 	end
 end
 
+function AskMrRobot.ScanVoidStorage()
+	if IsVoidStorageReady() then
+		local voidItems = {}
+		local VOID_STORAGE_MAX = 80
+		local VOID_STORAGE_PAGES = 2
+		local i
+		for page = 1,VOID_STORAGE_PAGES do
+			for i = 1,VOID_STORAGE_MAX do
+				local itemId = GetVoidItemInfo(page, i)
+				if itemId then
+					local itemLink = GetVoidItemHyperlinkString(page, i);
+					if itemLink then
+						tinsert(voidItems, itemLink)
+					end
+				end
+			end
+		end
+		AmrDb.VoidItems = voidItems
+	end
+end
+
 function AskMrRobot.ScanBags(bagItemsWithCount)
 	local bagItems = {}
 	scanBag(BACKPACK_CONTAINER, false, bagItems, bagItemsWithCount) -- backpack
@@ -693,20 +718,37 @@
         local itemObjects = {}
     	if AmrDb.BagItems then
 	        for i, v in ipairs(AmrDb.BagItems) do
-	            local itemData = AskMrRobot.parseItemLink(v)
-	            if itemData ~= nil then
-	                table.insert(itemObjects, itemData)
-	            end
+	        	local _,_,_,_,_,_,_,stackCount = GetItemInfo(v)
+	        	if stackCount == 1 then
+		            local itemData = AskMrRobot.parseItemLink(v)
+		            if itemData ~= nil then
+		                table.insert(itemObjects, itemData)
+		            end
+		        end
 	        end
 	    end
 	    if AmrDb.BankItems then
 	        for i, v in ipairs(AmrDb.BankItems) do
-	            local itemData = AskMrRobot.parseItemLink(v)
-	            if itemData ~= nil then
-	                table.insert(itemObjects, itemData)
+	        	local _,_,_,_,_,_,_,stackCount = GetItemInfo(v)
+	        	if stackCount == 1 then
+	            	local itemData = AskMrRobot.parseItemLink(v)
+	            	if itemData ~= nil then
+		                table.insert(itemObjects, itemData)
+	            	end
 	            end
 	        end
 	    end
+	    if AmrDb.VoidItems then
+	        for i, v in ipairs(AmrDb.VoidItems) do
+	        	local _,_,_,_,_,_,_,stackCount = GetItemInfo(v)
+	        	if stackCount == 1 then
+		            local itemData = AskMrRobot.parseItemLink(v)
+		            if itemData ~= nil then
+		                table.insert(itemObjects, itemData)
+		            end
+		        end
+		    end
+	    end
         
         table.insert(fields, ".inv")
         appendItemsToExport(fields, itemObjects)