Revert to last released version
This commit is contained in:
parent
3cebb8ffb8
commit
abfc111a78
1 changed files with 25 additions and 60 deletions
|
@ -1,77 +1,42 @@
|
|||
GemStacker = LibStub('AceAddon-3.0'):NewAddon('GemStacker','AceConsole-3.0','AceEvent-3.0')
|
||||
local core = GemStacker
|
||||
local queue = {}
|
||||
GemStacker = LibStub('AceAddon-3.0'):NewAddon('GemStacker','AceConsole-3.0','AceEvent-3.0');
|
||||
local core = GemStacker;
|
||||
|
||||
function core:OnInitialize()
|
||||
|
||||
end
|
||||
|
||||
function core:OnEnable()
|
||||
self:RegisterEvent('CHAT_MSG_LOOT','TrackGems')
|
||||
self:RegisterEvent('ITEM_PUSH','StackGems')
|
||||
self:RegisterEvent('CHAT_MSG_LOOT','StackGems')
|
||||
end
|
||||
|
||||
function core:TrackGems(_,message)
|
||||
print('track gems')
|
||||
-- Get the gem we just cut
|
||||
local tradeskill = message:match("%[(.-)%]")
|
||||
function core:StackGems(_,message)
|
||||
--LOOT_ITEM_CREATED_SELF = "You create: %s.";
|
||||
print('stack gems')
|
||||
--local gem = message:match(LOOT_ITEM_CREATED_SELF)
|
||||
print('found gem',gem)
|
||||
|
||||
local destination = {false,false};
|
||||
-- Find the biggest, non-full stack we can find
|
||||
for bag = 0, NUM_BAG_SLOTS do
|
||||
for slot = 1, GetContainerNumSlots(bag) do
|
||||
local itemID = GetContainerItemID(bag, slot)
|
||||
if(itemID) then
|
||||
local itemName, _, _, _, _, _, _, maxStack = GetItemInfo(itemID)
|
||||
|
||||
if tradeskill == itemName and maxStack ~= 1 then
|
||||
local _, count = GetContainerItemInfo(bag, slot)
|
||||
|
||||
-- Find the biggest, non-full stack we can
|
||||
if(count < maxStack) then
|
||||
table.insert(queue, itemID)
|
||||
local sourceContainer,sourceSlot,destContainer,destSlot = -1,-1,-1,-1;
|
||||
for bag = 0,NUM_BAG_SLOTS do
|
||||
for slot = 1,GetContainerNumSlots(bag) do
|
||||
local itemId = GetContainerItemID(bag,slot)
|
||||
if itemId then
|
||||
local itemName,_,_,_,_,_,_,maxStack = GetItemInfo(itemId);
|
||||
if gem == itemName and maxStack ~= 1 then
|
||||
local _,count = GetContainerItemInfo(bag,slot)
|
||||
if count == 1 and sourceContainer < 0 then
|
||||
sourceContainer = bag
|
||||
sourceSlot = slot
|
||||
elseif count < 20 and (count > 1 or destContainer < 0) then
|
||||
destContainer = bag
|
||||
destSlot = slot
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
core:StackGems()
|
||||
end
|
||||
|
||||
function core:StackGems()
|
||||
print('stackgems:')
|
||||
local _, stackItemID = next(queue)
|
||||
if not stackItemID then return end
|
||||
|
||||
print('stacking gem',stackItemID)
|
||||
|
||||
local combineSlots = {}
|
||||
for bag = 0, NUM_BAG_SLOTS do
|
||||
for slot = 1, GetContainerNumSlots(bag) do
|
||||
local itemID = GetContainerItemID(bag, slot)
|
||||
if(itemID) then
|
||||
local itemName, _, _, _, _, _, _, maxStack = GetItemInfo(itemID)
|
||||
|
||||
if itemID == stackItemID and maxStack ~= 1 then
|
||||
print('Found', itemName,bag,slot)
|
||||
local _, count = GetContainerItemInfo(bag, slot)
|
||||
|
||||
if count < 20 and #combineSlots < 2 then
|
||||
combineSlots[#combineSlots + 1] = { bag, slot }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--and then stack the gems
|
||||
if #combineSlots > 1 then
|
||||
PickupContainerItem(combineSlots[1][1], combineSlots[1][2])
|
||||
PickupContainerItem(combineSlots[2][1], combineSlots[2][2])
|
||||
|
||||
queue[stackItemID] = nil
|
||||
elseif #combineSlots == 0 then
|
||||
queue[stackItemID] = nil
|
||||
if sourceContainer ~= -1 and destContainer ~= -1 then
|
||||
PickupContainerItem(sourceContainer,sourceSlot)
|
||||
PickupContainerItem(destContainer,destSlot)
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue