annotate 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
rev   line source
Zerotorescue@13 1 local addon = LibStub("AceAddon-3.0"):GetAddon("Inventorium");
Zerotorescue@13 2 local mod = addon:NewModule("Queue", "AceEvent-3.0", "AceTimer-3.0");
Zerotorescue@13 3
Zerotorescue@13 4 local scrollIds = {
Zerotorescue@13 5 [27951] = 37603,
Zerotorescue@13 6 [7418] = 38679,
Zerotorescue@13 7 [7420] = 38766,
Zerotorescue@13 8 [7426] = 38767,
Zerotorescue@13 9 [7428] = 38768,
Zerotorescue@13 10 [7443] = 38769,
Zerotorescue@13 11 [7454] = 38770,
Zerotorescue@13 12 [7457] = 38771,
Zerotorescue@13 13 [7745] = 38772,
Zerotorescue@13 14 [7748] = 38773,
Zerotorescue@13 15 [7766] = 38774,
Zerotorescue@13 16 [7771] = 38775,
Zerotorescue@13 17 [7776] = 38776,
Zerotorescue@13 18 [7779] = 38777,
Zerotorescue@13 19 [7782] = 38778,
Zerotorescue@13 20 [7786] = 38779,
Zerotorescue@13 21 [7788] = 38780,
Zerotorescue@13 22 [7793] = 38781,
Zerotorescue@13 23 [7857] = 38782,
Zerotorescue@13 24 [7859] = 38783,
Zerotorescue@13 25 [7861] = 38784,
Zerotorescue@13 26 [7863] = 38785,
Zerotorescue@13 27 [7867] = 38786,
Zerotorescue@13 28 [13378] = 38787,
Zerotorescue@13 29 [13380] = 38788,
Zerotorescue@13 30 [13419] = 38789,
Zerotorescue@13 31 [13421] = 38790,
Zerotorescue@13 32 [13464] = 38791,
Zerotorescue@13 33 [13485] = 38792,
Zerotorescue@13 34 [13501] = 38793,
Zerotorescue@13 35 [13503] = 38794,
Zerotorescue@13 36 [13522] = 38795,
Zerotorescue@13 37 [13529] = 38796,
Zerotorescue@13 38 [13536] = 38797,
Zerotorescue@13 39 [13538] = 38798,
Zerotorescue@13 40 [13607] = 38799,
Zerotorescue@13 41 [13612] = 38800,
Zerotorescue@13 42 [13617] = 38801,
Zerotorescue@13 43 [13620] = 38802,
Zerotorescue@13 44 [13622] = 38803,
Zerotorescue@13 45 [13626] = 38804,
Zerotorescue@13 46 [13631] = 38805,
Zerotorescue@13 47 [13635] = 38806,
Zerotorescue@13 48 [13637] = 38807,
Zerotorescue@13 49 [13640] = 38808,
Zerotorescue@13 50 [13642] = 38809,
Zerotorescue@13 51 [13644] = 38810,
Zerotorescue@13 52 [13646] = 38811,
Zerotorescue@13 53 [13648] = 38812,
Zerotorescue@13 54 [13653] = 38813,
Zerotorescue@13 55 [13655] = 38814,
Zerotorescue@13 56 [13657] = 38815,
Zerotorescue@13 57 [13659] = 38816,
Zerotorescue@13 58 [13661] = 38817,
Zerotorescue@13 59 [13663] = 38818,
Zerotorescue@13 60 [13687] = 38819,
Zerotorescue@13 61 [13689] = 38820,
Zerotorescue@13 62 [13693] = 38821,
Zerotorescue@13 63 [13695] = 38822,
Zerotorescue@13 64 [13698] = 38823,
Zerotorescue@13 65 [13700] = 38824,
Zerotorescue@13 66 [13746] = 38825,
Zerotorescue@13 67 [13794] = 38826,
Zerotorescue@13 68 [13815] = 38827,
Zerotorescue@13 69 [13817] = 38828,
Zerotorescue@13 70 [13822] = 38829,
Zerotorescue@13 71 [13836] = 38830,
Zerotorescue@13 72 [13841] = 38831,
Zerotorescue@13 73 [13846] = 38832,
Zerotorescue@13 74 [13858] = 38833,
Zerotorescue@13 75 [13868] = 38834,
Zerotorescue@13 76 [13882] = 38835,
Zerotorescue@13 77 [13887] = 38836,
Zerotorescue@13 78 [13890] = 38837,
Zerotorescue@13 79 [13898] = 38838,
Zerotorescue@13 80 [13905] = 38839,
Zerotorescue@13 81 [13915] = 38840,
Zerotorescue@13 82 [13917] = 38841,
Zerotorescue@13 83 [13931] = 38842,
Zerotorescue@13 84 [13933] = 38843,
Zerotorescue@13 85 [13935] = 38844,
Zerotorescue@13 86 [13937] = 38845,
Zerotorescue@13 87 [13939] = 38846,
Zerotorescue@13 88 [13941] = 38847,
Zerotorescue@13 89 [13943] = 38848,
Zerotorescue@13 90 [13945] = 38849,
Zerotorescue@13 91 [13947] = 38850,
Zerotorescue@13 92 [13948] = 38851,
Zerotorescue@13 93 [20008] = 38852,
Zerotorescue@13 94 [20009] = 38853,
Zerotorescue@13 95 [20010] = 38854,
Zerotorescue@13 96 [20011] = 38855,
Zerotorescue@13 97 [20012] = 38856,
Zerotorescue@13 98 [20013] = 38857,
Zerotorescue@13 99 [20014] = 38858,
Zerotorescue@13 100 [20015] = 38859,
Zerotorescue@13 101 [20016] = 38860,
Zerotorescue@13 102 [20017] = 38861,
Zerotorescue@13 103 [20020] = 38862,
Zerotorescue@13 104 [20023] = 38863,
Zerotorescue@13 105 [20024] = 38864,
Zerotorescue@13 106 [20025] = 38865,
Zerotorescue@13 107 [20026] = 38866,
Zerotorescue@13 108 [20028] = 38867,
Zerotorescue@13 109 [20029] = 38868,
Zerotorescue@13 110 [20030] = 38869,
Zerotorescue@13 111 [20031] = 38870,
Zerotorescue@13 112 [20032] = 38871,
Zerotorescue@13 113 [20033] = 38872,
Zerotorescue@13 114 [20034] = 38873,
Zerotorescue@13 115 [20035] = 38874,
Zerotorescue@13 116 [20036] = 38875,
Zerotorescue@13 117 [21931] = 38876,
Zerotorescue@13 118 [22749] = 38877,
Zerotorescue@13 119 [22750] = 38878,
Zerotorescue@13 120 [23799] = 38879,
Zerotorescue@13 121 [23800] = 38880,
Zerotorescue@13 122 [23801] = 38881,
Zerotorescue@13 123 [23802] = 38882,
Zerotorescue@13 124 [23803] = 38883,
Zerotorescue@13 125 [23804] = 38884,
Zerotorescue@13 126 [25072] = 38885,
Zerotorescue@13 127 [25073] = 38886,
Zerotorescue@13 128 [25074] = 38887,
Zerotorescue@13 129 [25078] = 38888,
Zerotorescue@13 130 [25079] = 38889,
Zerotorescue@13 131 [25080] = 38890,
Zerotorescue@13 132 [25081] = 38891,
Zerotorescue@13 133 [25082] = 38892,
Zerotorescue@13 134 [25083] = 38893,
Zerotorescue@13 135 [25084] = 38894,
Zerotorescue@13 136 [25086] = 38895,
Zerotorescue@13 137 [27837] = 38896,
Zerotorescue@13 138 [27899] = 38897,
Zerotorescue@13 139 [27905] = 38898,
Zerotorescue@13 140 [27906] = 38899,
Zerotorescue@13 141 [27911] = 38900,
Zerotorescue@13 142 [27913] = 38901,
Zerotorescue@13 143 [27914] = 38902,
Zerotorescue@13 144 [27917] = 38903,
Zerotorescue@13 145 [27944] = 38904,
Zerotorescue@13 146 [27945] = 38905,
Zerotorescue@13 147 [27946] = 38906,
Zerotorescue@13 148 [27947] = 38907,
Zerotorescue@13 149 [27948] = 38908,
Zerotorescue@13 150 [27950] = 38909,
Zerotorescue@13 151 [27954] = 38910,
Zerotorescue@13 152 [27957] = 38911,
Zerotorescue@13 153 [27958] = 38912,
Zerotorescue@13 154 [27960] = 38913,
Zerotorescue@13 155 [27961] = 38914,
Zerotorescue@13 156 [27962] = 38915,
Zerotorescue@13 157 [27967] = 38917,
Zerotorescue@13 158 [27968] = 38918,
Zerotorescue@13 159 [27971] = 38919,
Zerotorescue@13 160 [27972] = 38920,
Zerotorescue@13 161 [27975] = 38921,
Zerotorescue@13 162 [27977] = 38922,
Zerotorescue@13 163 [27981] = 38923,
Zerotorescue@13 164 [27982] = 38924,
Zerotorescue@13 165 [27984] = 38925,
Zerotorescue@13 166 [28003] = 38926,
Zerotorescue@13 167 [28004] = 38927,
Zerotorescue@13 168 [33990] = 38928,
Zerotorescue@13 169 [33991] = 38929,
Zerotorescue@13 170 [33992] = 38930,
Zerotorescue@13 171 [33993] = 38931,
Zerotorescue@13 172 [33994] = 38932,
Zerotorescue@13 173 [33995] = 38933,
Zerotorescue@13 174 [33996] = 38934,
Zerotorescue@13 175 [33997] = 38935,
Zerotorescue@13 176 [33999] = 38936,
Zerotorescue@13 177 [34001] = 38937,
Zerotorescue@13 178 [34002] = 38938,
Zerotorescue@13 179 [34003] = 38939,
Zerotorescue@13 180 [34004] = 38940,
Zerotorescue@13 181 [34005] = 38941,
Zerotorescue@13 182 [34006] = 38942,
Zerotorescue@13 183 [34007] = 38943,
Zerotorescue@13 184 [34008] = 38944,
Zerotorescue@13 185 [34009] = 38945,
Zerotorescue@13 186 [34010] = 38946,
Zerotorescue@13 187 [42620] = 38947,
Zerotorescue@13 188 [42974] = 38948,
Zerotorescue@13 189 [44383] = 38949,
Zerotorescue@13 190 [44483] = 38950,
Zerotorescue@13 191 [44484] = 38951,
Zerotorescue@13 192 [44488] = 38953,
Zerotorescue@13 193 [44489] = 38954,
Zerotorescue@13 194 [44492] = 38955,
Zerotorescue@13 195 [44494] = 38956,
Zerotorescue@13 196 [44500] = 38959,
Zerotorescue@13 197 [44506] = 38960,
Zerotorescue@13 198 [44508] = 38961,
Zerotorescue@13 199 [44509] = 38962,
Zerotorescue@13 200 [44510] = 38963,
Zerotorescue@13 201 [44513] = 38964,
Zerotorescue@13 202 [44524] = 38965,
Zerotorescue@13 203 [44528] = 38966,
Zerotorescue@13 204 [44529] = 38967,
Zerotorescue@13 205 [44555] = 38968,
Zerotorescue@13 206 [44556] = 38969,
Zerotorescue@13 207 [60616] = 38971,
Zerotorescue@13 208 [44576] = 38972,
Zerotorescue@13 209 [44582] = 38973,
Zerotorescue@13 210 [44584] = 38974,
Zerotorescue@13 211 [44588] = 38975,
Zerotorescue@13 212 [44589] = 38976,
Zerotorescue@13 213 [44590] = 38977,
Zerotorescue@13 214 [44591] = 38978,
Zerotorescue@13 215 [44592] = 38979,
Zerotorescue@13 216 [44593] = 38980,
Zerotorescue@13 217 [44595] = 38981,
Zerotorescue@13 218 [44596] = 38982,
Zerotorescue@13 219 [44598] = 38984,
Zerotorescue@13 220 [60623] = 38986,
Zerotorescue@13 221 [44616] = 38987,
Zerotorescue@13 222 [44621] = 38988,
Zerotorescue@13 223 [44623] = 38989,
Zerotorescue@13 224 [44625] = 38990,
Zerotorescue@13 225 [44629] = 38991,
Zerotorescue@13 226 [44630] = 38992,
Zerotorescue@13 227 [44631] = 38993,
Zerotorescue@13 228 [44633] = 38995,
Zerotorescue@13 229 [44635] = 38997,
Zerotorescue@13 230 [46578] = 38998,
Zerotorescue@13 231 [46594] = 38999,
Zerotorescue@13 232 [47051] = 39000,
Zerotorescue@13 233 [47672] = 39001,
Zerotorescue@13 234 [47766] = 39002,
Zerotorescue@13 235 [47898] = 39003,
Zerotorescue@13 236 [47899] = 39004,
Zerotorescue@13 237 [47900] = 39005,
Zerotorescue@13 238 [47901] = 39006,
Zerotorescue@13 239 [59625] = 43987,
Zerotorescue@13 240 [60606] = 44449,
Zerotorescue@13 241 [60621] = 44453,
Zerotorescue@13 242 [60653] = 44455,
Zerotorescue@13 243 [60609] = 44456,
Zerotorescue@13 244 [60663] = 44457,
Zerotorescue@13 245 [60668] = 44458,
Zerotorescue@13 246 [60691] = 44463,
Zerotorescue@13 247 [60692] = 44465,
Zerotorescue@13 248 [60707] = 44466,
Zerotorescue@13 249 [60714] = 44467,
Zerotorescue@13 250 [60763] = 44469,
Zerotorescue@13 251 [60767] = 44470,
Zerotorescue@13 252 [59621] = 44493,
Zerotorescue@13 253 [59619] = 44497,
Zerotorescue@13 254 [44575] = 44815,
Zerotorescue@13 255 [62256] = 44947,
Zerotorescue@13 256 [62948] = 45056,
Zerotorescue@13 257 [62959] = 45060,
Zerotorescue@13 258 [63746] = 45628,
Zerotorescue@13 259 [64441] = 46026,
Zerotorescue@13 260 [64579] = 46098,
Zerotorescue@13 261 [71692] = 50816,
Zerotorescue@13 262 };--enchantId=scrollId
Zerotorescue@13 263
Zerotorescue@13 264 function mod:OnEnable()
Zerotorescue@13 265 -- Register our own slash commands
Zerotorescue@13 266 addon:RegisterSlash(function()
Zerotorescue@13 267 self:QueueAll();
Zerotorescue@13 268 end, "q", "que", "queue");
Zerotorescue@13 269 end
Zerotorescue@13 270
Zerotorescue@13 271 function mod:QueueAll()
Zerotorescue@13 272 -- Go through all trade skills for the profession
Zerotorescue@13 273 for i = 1, GetNumTradeSkills() do
Zerotorescue@13 274 -- Go through all groups
Zerotorescue@13 275 for groupName, _ in pairs(addon.db.global.groups) do
Zerotorescue@13 276 -- Process every single tradeskill
Zerotorescue@13 277 self:ProcessTradeSkill(i, groupName);
Zerotorescue@13 278 end
Zerotorescue@13 279 end
Zerotorescue@13 280 end
Zerotorescue@13 281
Zerotorescue@13 282 function mod:QueueGroup(groupName)
Zerotorescue@13 283 if not addon.db.global.groups[groupName] then return false; end
Zerotorescue@13 284
Zerotorescue@13 285 -- Go through all trade skills for the profession
Zerotorescue@13 286 for i = 1, GetNumTradeSkills() do
Zerotorescue@13 287 -- Process every single tradeskill
Zerotorescue@13 288 self:ProcessTradeSkill(i, groupName);
Zerotorescue@13 289 end
Zerotorescue@13 290 end
Zerotorescue@13 291
Zerotorescue@13 292 function mod:ProcessTradeSkill(i, groupName)
Zerotorescue@13 293 -- Try to retrieve the itemlink, this will be nil if current item is a group instead
Zerotorescue@13 294 local itemLink = GetTradeSkillItemLink(i);
Zerotorescue@13 295
Zerotorescue@13 296 if itemLink then
Zerotorescue@13 297 local itemId = addon:GetItemId(itemLink);
Zerotorescue@13 298 if not itemId then
Zerotorescue@13 299 -- If this isn't an item, it can only be an enchant instead
Zerotorescue@13 300 itemId = tonumber(itemLink:match("|Henchant:([-0-9]+)|h"));
Zerotorescue@13 301
Zerotorescue@13 302 itemId = scrollIds[itemId]; -- change enchantIds into scrollIds
Zerotorescue@13 303 end
Zerotorescue@13 304
Zerotorescue@13 305 if addon.db.global.groups[groupName].items[itemId] then
Zerotorescue@13 306 -- This item is in this group, queue it!
Zerotorescue@13 307
Zerotorescue@13 308 local amount = ( addon:GetOptionByKey(groupName, "restockTarget") - addon:GetItemCount(itemId) );
Zerotorescue@13 309
Zerotorescue@13 310 if amount > 0 then
Zerotorescue@13 311 self:Queue(i, amount);
Zerotorescue@13 312
Zerotorescue@13 313 print("Queued " .. amount .. " of " .. itemLink);
Zerotorescue@13 314 end
Zerotorescue@13 315 end
Zerotorescue@13 316 end
Zerotorescue@13 317 end
Zerotorescue@13 318
Zerotorescue@13 319 function mod:Queue(tradeSkillIndex, amount)
Zerotorescue@13 320 tradeSkillIndex = tonumber(tradeSkillIndex);
Zerotorescue@13 321 amount = tonumber(amount);
Zerotorescue@13 322
Zerotorescue@13 323 if not tradeSkillIndex or not amount then return; end
Zerotorescue@13 324
Zerotorescue@13 325 if addon.supportedAddons.crafting[addon.db.global.defaults.craftingAddon] then
Zerotorescue@13 326 -- Try to use the default auction pricing addon
Zerotorescue@13 327
Zerotorescue@13 328 return addon.supportedAddons.crafting[addon.db.global.defaults.craftingAddon].Queue(tradeSkillIndex, amount);
Zerotorescue@13 329 else
Zerotorescue@13 330 -- Default not available, get the first one then
Zerotorescue@13 331
Zerotorescue@13 332 for name, value in pairs(addon.supportedAddons.crafting) do
Zerotorescue@13 333 if value.IsEnabled() then
Zerotorescue@13 334 return value.Queue(tradeSkillIndex, amount);
Zerotorescue@13 335 end
Zerotorescue@13 336 end
Zerotorescue@13 337 end
Zerotorescue@13 338
Zerotorescue@13 339 return -2;
Zerotorescue@13 340 end