comparison Modules/Mover.lua @ 98:252292b703ce

All print(...) function calls are now handled by addon:Print(text, color). The cursor will be cleared of any items/spells before moving as well as when aborting.
author Zerotorescue
date Sun, 09 Jan 2011 17:49:33 +0100
parents 31493364b163
children 6ae44d372360
comparison
equal deleted inserted replaced
97:ae268e5c7825 98:252292b703ce
47 addon:Debug("%d moves were queued.", #queuedMoves); 47 addon:Debug("%d moves were queued.", #queuedMoves);
48 48
49 for _, singleMove in pairs(queuedMoves) do 49 for _, singleMove in pairs(queuedMoves) do
50 local sourceItem = sourceContents[singleMove.id]; 50 local sourceItem = sourceContents[singleMove.id];
51 if not sourceItem then 51 if not sourceItem then
52 print("Can't move " .. IdToItemLink(singleMove.id) .. ", non-existant in source"); 52 addon:Print("Can't move " .. IdToItemLink(singleMove.id) .. ", this doesn't exist in the source.", addon.Colors.Red);
53 else 53 else
54 -- We want to move the smallest stacks first to keep stuff pretty (and minimize space usage, splitting a stack takes 2 slots, moving something only 1) 54 -- We want to move the smallest stacks first to keep stuff pretty (and minimize space usage, splitting a stack takes 2 slots, moving something only 1)
55 table.sort(sourceItem.locations, function(a, b) 55 table.sort(sourceItem.locations, function(a, b)
56 return a.count < b.count; 56 return a.count < b.count;
57 end); 57 end);
130 -- populate targetContents with it so future moves of this item can be put on top of it if this isn't a full stack 130 -- populate targetContents with it so future moves of this item can be put on top of it if this isn't a full stack
131 131
132 local firstAvailableSlot = emptySlots[1]; 132 local firstAvailableSlot = emptySlots[1];
133 133
134 if not firstAvailableSlot then 134 if not firstAvailableSlot then
135 print("Bags are full. Skipping " .. IdToItemLink(outgoingMove.itemId) .. "."); 135 addon:Print(("Bags are full. Skipping %s."):format(IdToItemLink(outgoingMove.itemId)), addon.Colors.Orange);
136 136
137 outgoingMove.itemId = nil; -- remove this record from the outgoingMoves-table 137 outgoingMove.itemId = nil; -- remove this record from the outgoingMoves-table
138 else 138 else
139 table.insert(combinedMoves, { 139 table.insert(combinedMoves, {
140 itemId = outgoingMove.itemId, 140 itemId = outgoingMove.itemId,
258 258
259 function mod:ProcessMove() 259 function mod:ProcessMove()
260 addon:Debug("ProcessMove"); 260 addon:Debug("ProcessMove");
261 261
262 if #combinedMoves == 0 then 262 if #combinedMoves == 0 then
263 print("Nothing to move."); 263 addon:Print("Nothing to move.");
264 264
265 self:Abort(); 265 self:Abort();
266 266
267 return; 267 return;
268 end 268 end
269 269
270 --self:RegisterEvent("BAG_UPDATE"); 270 -- Make sure nothing is at the mouse
271 ClearCursor();
272
271 self:RegisterEvent("ITEM_LOCK_CHANGED"); 273 self:RegisterEvent("ITEM_LOCK_CHANGED");
272 self:RegisterEvent("UI_ERROR_MESSAGE"); 274 self:RegisterEvent("UI_ERROR_MESSAGE");
273 275
274 -- combinedMoves now has all moves in it (source -> target) 276 -- combinedMoves now has all moves in it (source -> target)
275 -- go through list, move everything inside it 277 -- go through list, move everything inside it
296 local isSourceLocked = ((sourceLocationsLocked[move.sourceContainer] and sourceLocationsLocked[move.sourceContainer][move.sourceSlot]) or select(3, _GetContainerItemInfo(move.sourceContainer, move.sourceSlot))); 298 local isSourceLocked = ((sourceLocationsLocked[move.sourceContainer] and sourceLocationsLocked[move.sourceContainer][move.sourceSlot]) or select(3, _GetContainerItemInfo(move.sourceContainer, move.sourceSlot)));
297 local isTargetLocked = ((targetLocationsLocked[move.targetContainer] and targetLocationsLocked[move.targetContainer][move.targetSlot]) or select(3, GetContainerItemInfo(move.targetContainer, move.targetSlot))); 299 local isTargetLocked = ((targetLocationsLocked[move.targetContainer] and targetLocationsLocked[move.targetContainer][move.targetSlot]) or select(3, GetContainerItemInfo(move.targetContainer, move.targetSlot)));
298 300
299 if move and not isSourceLocked and not isTargetLocked then 301 if move and not isSourceLocked and not isTargetLocked then
300 302
301 print(("Moving %dx%s."):format(move.num, IdToItemLink(move.itemId))); 303 addon:Print(("Moving %dx%s."):format(move.num, IdToItemLink(move.itemId)));
302 304
303 addon:Debug("Moving %dx%s from (%d,%d) to (%d,%d)", move.num, IdToItemLink(move.itemId), move.sourceContainer, move.sourceSlot, move.targetContainer, move.targetSlot); 305 addon:Debug("Moving %dx%s from (%d,%d) to (%d,%d)", move.num, IdToItemLink(move.itemId), move.sourceContainer, move.sourceSlot, move.targetContainer, move.targetSlot);
304 306
305 if _GetContainerItemId(move.sourceContainer, move.sourceSlot) ~= move.itemId then 307 if _GetContainerItemId(move.sourceContainer, move.sourceSlot) ~= move.itemId then
306 self:Abort("source changed", "Source (" .. move.sourceContainer .. "," .. move.sourceSlot .. ") is not " .. IdToItemLink(move.itemId)); 308 self:Abort("source changed", "Source (" .. move.sourceContainer .. "," .. move.sourceSlot .. ") is not " .. IdToItemLink(move.itemId));
350 end 352 end
351 353
352 addon:Debug("%d moves processed. %d moves remaining.", (combinedMovesOriginalLength - #combinedMoves), #combinedMoves); 354 addon:Debug("%d moves processed. %d moves remaining.", (combinedMovesOriginalLength - #combinedMoves), #combinedMoves);
353 355
354 if #combinedMoves == 0 then 356 if #combinedMoves == 0 then
355 print("Finished."); 357 addon:Print("Finished.", addon.Colors.Green);
356 358
357 self:Abort(); 359 self:Abort();
358 360
359 return; 361 return;
360 end 362 end
381 function mod:Abort(simple, debugMsg) 383 function mod:Abort(simple, debugMsg)
382 if debugMsg then 384 if debugMsg then
383 addon:Debug("Aborting:%s", debugMsg); 385 addon:Debug("Aborting:%s", debugMsg);
384 end 386 end
385 if simple then 387 if simple then
386 print("|cffff0000Aborting: " .. simple .. ".|r"); 388 addon:Print(("Aborting: %s."):format(simple), addon.Colors.Red);
387 end 389 end
388 table.wipe(combinedMoves); 390 table.wipe(combinedMoves);
389 movesSource = nil; 391 movesSource = nil;
392
393 -- Make sure nothing is at the mouse
394 ClearCursor();
390 395
391 -- Stop timer 396 -- Stop timer
392 self:UnregisterEvent("ITEM_LOCK_CHANGED"); 397 self:UnregisterEvent("ITEM_LOCK_CHANGED");
393 self:CancelTimer(tmrProcessNext, true); -- silent 398 self:CancelTimer(tmrProcessNext, true); -- silent
394 399