view Queue.lua @ 13:5006cb0e97c6

Removed sound media registrations since we don?t use them. Added an option to include tadeskill items above a certain item level threshold in the add items config tab. Renamed the variable for toggling hiding from summary when below price threshold-option. You will have to re-set it. Summary size and processing speed will now be remembered. Processing speed slider can now go up to 500% (up from 100%). Silver will be hidden from money when it includes more than 10 gold (down from 100g) and copper will be hidden if it includes more than 1 gold (down from 10g). Auction addons, crafting addons and itemcount addons can now register themselves through a few global functions. The most used addons have been included in the addon folder. You can now select the prefered default pricing, item count and crafting addons. Temporarily removed the ?dialogControl = ?DropDown?? from the track at select boxes. This functionality is broken within the Ace3 library and until it is fixed I wish to keep these options somewhat functional. The item list will now be truncated before rebuilding. Previously items disappearing from your inventory would still appear in this list. Mass add is now functional. All buttons and sliders that were meant to receive a tooltip (including the sort-headers), now have one. Added spacers between all buttons and sliders of the summary window. Added a ?queue all? button to the summary window. This button is not yet functional. If the value of an item is not retrieved from the auction prices database, it will appear as a dash (-) rather than ?0c?. If no item count is enabled, item counts will appear as ?Unknown? instead of breaking (or defaulting to 0).
author Zerotorescue
date Mon, 18 Oct 2010 15:26:42 +0200
parents
children 0fc8a54516d7
line wrap: on
line source
local addon = LibStub("AceAddon-3.0"):GetAddon("Inventorium");
local mod = addon:NewModule("Queue", "AceEvent-3.0", "AceTimer-3.0");

local scrollIds = {
	[27951] = 37603,
	[7418] = 38679,
	[7420] = 38766,
	[7426] = 38767,
	[7428] = 38768,
	[7443] = 38769,
	[7454] = 38770,
	[7457] = 38771,
	[7745] = 38772,
	[7748] = 38773,
	[7766] = 38774,
	[7771] = 38775,
	[7776] = 38776,
	[7779] = 38777,
	[7782] = 38778,
	[7786] = 38779,
	[7788] = 38780,
	[7793] = 38781,
	[7857] = 38782,
	[7859] = 38783,
	[7861] = 38784,
	[7863] = 38785,
	[7867] = 38786,
	[13378] = 38787,
	[13380] = 38788,
	[13419] = 38789,
	[13421] = 38790,
	[13464] = 38791,
	[13485] = 38792,
	[13501] = 38793,
	[13503] = 38794,
	[13522] = 38795,
	[13529] = 38796,
	[13536] = 38797,
	[13538] = 38798,
	[13607] = 38799,
	[13612] = 38800,
	[13617] = 38801,
	[13620] = 38802,
	[13622] = 38803,
	[13626] = 38804,
	[13631] = 38805,
	[13635] = 38806,
	[13637] = 38807,
	[13640] = 38808,
	[13642] = 38809,
	[13644] = 38810,
	[13646] = 38811,
	[13648] = 38812,
	[13653] = 38813,
	[13655] = 38814,
	[13657] = 38815,
	[13659] = 38816,
	[13661] = 38817,
	[13663] = 38818,
	[13687] = 38819,
	[13689] = 38820,
	[13693] = 38821,
	[13695] = 38822,
	[13698] = 38823,
	[13700] = 38824,
	[13746] = 38825,
	[13794] = 38826,
	[13815] = 38827,
	[13817] = 38828,
	[13822] = 38829,
	[13836] = 38830,
	[13841] = 38831,
	[13846] = 38832,
	[13858] = 38833,
	[13868] = 38834,
	[13882] = 38835,
	[13887] = 38836,
	[13890] = 38837,
	[13898] = 38838,
	[13905] = 38839,
	[13915] = 38840,
	[13917] = 38841,
	[13931] = 38842,
	[13933] = 38843,
	[13935] = 38844,
	[13937] = 38845,
	[13939] = 38846,
	[13941] = 38847,
	[13943] = 38848,
	[13945] = 38849,
	[13947] = 38850,
	[13948] = 38851,
	[20008] = 38852,
	[20009] = 38853,
	[20010] = 38854,
	[20011] = 38855,
	[20012] = 38856,
	[20013] = 38857,
	[20014] = 38858,
	[20015] = 38859,
	[20016] = 38860,
	[20017] = 38861,
	[20020] = 38862,
	[20023] = 38863,
	[20024] = 38864,
	[20025] = 38865,
	[20026] = 38866,
	[20028] = 38867,
	[20029] = 38868,
	[20030] = 38869,
	[20031] = 38870,
	[20032] = 38871,
	[20033] = 38872,
	[20034] = 38873,
	[20035] = 38874,
	[20036] = 38875,
	[21931] = 38876,
	[22749] = 38877,
	[22750] = 38878,
	[23799] = 38879,
	[23800] = 38880,
	[23801] = 38881,
	[23802] = 38882,
	[23803] = 38883,
	[23804] = 38884,
	[25072] = 38885,
	[25073] = 38886,
	[25074] = 38887,
	[25078] = 38888,
	[25079] = 38889,
	[25080] = 38890,
	[25081] = 38891,
	[25082] = 38892,
	[25083] = 38893,
	[25084] = 38894,
	[25086] = 38895,
	[27837] = 38896,
	[27899] = 38897,
	[27905] = 38898,
	[27906] = 38899,
	[27911] = 38900,
	[27913] = 38901,
	[27914] = 38902,
	[27917] = 38903,
	[27944] = 38904,
	[27945] = 38905,
	[27946] = 38906,
	[27947] = 38907,
	[27948] = 38908,
	[27950] = 38909,
	[27954] = 38910,
	[27957] = 38911,
	[27958] = 38912,
	[27960] = 38913,
	[27961] = 38914,
	[27962] = 38915,
	[27967] = 38917,
	[27968] = 38918,
	[27971] = 38919,
	[27972] = 38920,
	[27975] = 38921,
	[27977] = 38922,
	[27981] = 38923,
	[27982] = 38924,
	[27984] = 38925,
	[28003] = 38926,
	[28004] = 38927,
	[33990] = 38928,
	[33991] = 38929,
	[33992] = 38930,
	[33993] = 38931,
	[33994] = 38932,
	[33995] = 38933,
	[33996] = 38934,
	[33997] = 38935,
	[33999] = 38936,
	[34001] = 38937,
	[34002] = 38938,
	[34003] = 38939,
	[34004] = 38940,
	[34005] = 38941,
	[34006] = 38942,
	[34007] = 38943,
	[34008] = 38944,
	[34009] = 38945,
	[34010] = 38946,
	[42620] = 38947,
	[42974] = 38948,
	[44383] = 38949,
	[44483] = 38950,
	[44484] = 38951,
	[44488] = 38953,
	[44489] = 38954,
	[44492] = 38955,
	[44494] = 38956,
	[44500] = 38959,
	[44506] = 38960,
	[44508] = 38961,
	[44509] = 38962,
	[44510] = 38963,
	[44513] = 38964,
	[44524] = 38965,
	[44528] = 38966,
	[44529] = 38967,
	[44555] = 38968,
	[44556] = 38969,
	[60616] = 38971,
	[44576] = 38972,
	[44582] = 38973,
	[44584] = 38974,
	[44588] = 38975,
	[44589] = 38976,
	[44590] = 38977,
	[44591] = 38978,
	[44592] = 38979,
	[44593] = 38980,
	[44595] = 38981,
	[44596] = 38982,
	[44598] = 38984,
	[60623] = 38986,
	[44616] = 38987,
	[44621] = 38988,
	[44623] = 38989,
	[44625] = 38990,
	[44629] = 38991,
	[44630] = 38992,
	[44631] = 38993,
	[44633] = 38995,
	[44635] = 38997,
	[46578] = 38998,
	[46594] = 38999,
	[47051] = 39000,
	[47672] = 39001,
	[47766] = 39002,
	[47898] = 39003,
	[47899] = 39004,
	[47900] = 39005,
	[47901] = 39006,
	[59625] = 43987,
	[60606] = 44449,
	[60621] = 44453,
	[60653] = 44455,
	[60609] = 44456,
	[60663] = 44457,
	[60668] = 44458,
	[60691] = 44463,
	[60692] = 44465,
	[60707] = 44466,
	[60714] = 44467,
	[60763] = 44469,
	[60767] = 44470,
	[59621] = 44493,
	[59619] = 44497,
	[44575] = 44815,
	[62256] = 44947,
	[62948] = 45056,
	[62959] = 45060,
	[63746] = 45628,
	[64441] = 46026,
	[64579] = 46098,
	[71692] = 50816,
};--enchantId=scrollId

function mod:OnEnable()
	-- Register our own slash commands
	addon:RegisterSlash(function()
		self:QueueAll();
	end, "q", "que", "queue");
end

function mod:QueueAll()
	-- Go through all trade skills for the profession
	for i = 1, GetNumTradeSkills() do
		-- Go through all groups
		for groupName, _ in pairs(addon.db.global.groups) do
			-- Process every single tradeskill
			self:ProcessTradeSkill(i, groupName);
		end
	end
end

function mod:QueueGroup(groupName)
	if not addon.db.global.groups[groupName] then return false; end
	
	-- Go through all trade skills for the profession
	for i = 1, GetNumTradeSkills() do
		-- Process every single tradeskill
		self:ProcessTradeSkill(i, groupName);
	end
end

function mod:ProcessTradeSkill(i, groupName)
	-- Try to retrieve the itemlink, this will be nil if current item is a group instead
	local itemLink = GetTradeSkillItemLink(i);
	
	if itemLink then
		local itemId = addon:GetItemId(itemLink);
		if not itemId then
			-- If this isn't an item, it can only be an enchant instead
			itemId = tonumber(itemLink:match("|Henchant:([-0-9]+)|h"));
			
			itemId = scrollIds[itemId]; -- change enchantIds into scrollIds
		end
		
		if addon.db.global.groups[groupName].items[itemId] then
			-- This item is in this group, queue it!
			
			local amount = ( addon:GetOptionByKey(groupName, "restockTarget") - addon:GetItemCount(itemId) );
			
			if amount > 0 then
				self:Queue(i, amount);
				
				print("Queued " .. amount .. " of " .. itemLink);
			end
		end
	end
end

function mod:Queue(tradeSkillIndex, amount)
	tradeSkillIndex = tonumber(tradeSkillIndex);
	amount = tonumber(amount);
	
	if not tradeSkillIndex or not amount then return; end
	
	if addon.supportedAddons.crafting[addon.db.global.defaults.craftingAddon] then
		-- Try to use the default auction pricing addon
		
		return addon.supportedAddons.crafting[addon.db.global.defaults.craftingAddon].Queue(tradeSkillIndex, amount);
	else
		-- Default not available, get the first one then
		
		for name, value in pairs(addon.supportedAddons.crafting) do
			if value.IsEnabled() then
				return value.Queue(tradeSkillIndex, amount);
			end
		end
	end
	
	return -2;
end