WoWInterface SVN kRestack

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 16 to Rev 15
    Reverse comparison

Rev 16 → Rev 15

kRestack/changelog.txt
1,16 → 1,13
1.0.2 -- 2009-05-22
- Added support for Data Broker. Left-click stacks bags, right-click opens menu.
 
1.0.1 -- 2009-05-19
- Fixed the handling of initializing saved variables when updating from 0.9
v1.0.1 2009-05-19
- Fixed the handling of initializing saved variables when updating from previous versions.
- Fixed a bug that disabled guild tab switching when guild bank auto-stacking is turned off.
 
1.0 -- 2009-05-18
v1.0 2009-05-18
- Added support for restacking guild vault tabs.
- Hooked bag auto-stack to LOOT_OPEN and TRADE_SHOW, and guild bank auto-stack to GUILDBANKFRAME_OPENED and SetCurrentGuildBankTab(i).
- Extended auto-stack toggle to enable or disable bags, bank, or guild bank individually.
- Will now move items that can go into special class/profession bags into those bags if possible (soul shards, herbs, arrows, etc).
- Cleaned up and commented code.
 
0.9 -- 2009-05-13
v0.9 2009-05-13
- Added option to auto-stack when opening bags or bank, off by default. Toggle with '/restack auto'
\ No newline at end of file
kRestack/kRestack.lua
1,4 → 1,7
--[[ Usage:
--[[ kRestack() is a global function and can be used in any addon or macro
Some of the functionality is based on ArkInventory's restacking function, kudos!
 
Usage:
/restack [bags, bank, guild] - manual run
/restack auto [bags, bank, guild] - toggles auto mode
]]
10,56 → 13,16
local col = { w = "|cffFFFFFF", g = "|cff55FF55", r = "|cffFF5555" }
local kR = "|cff44CCFFk|cffFFFFAARestack"..col.w
 
--[[ ldb plugin ]]
local menu = {
{ text = "= Restack =", isTitle = true },
{ text = "Backpack", func = function() kRestack("bags") end },
{ text = "Bank", disabled = true, func = function() kRestack("bank") end },
{ text = "Guild Vault", disabled = true, func = function() kRestack("guild") end },
{ disabled = true },
{ text = "= Set Auto =", isTitle = true },
{ text = "Backpack", checked = function() return (AutoRestack.bags and true or false) end, func = function() kRestack("auto bags") end },
{ text = "Bank", checked = function() return (AutoRestack.bank and true or false) end, func = function() kRestack("auto bank") end },
{ text = "Guild Vault", checked = function() return (AutoRestack.guild and true or false) end, func = function() kRestack("auto guild") end },
}
local drop = CreateFrame("frame", "kRestack", nil, "UIDropDownMenuTemplate")
LibStub:GetLibrary("LibDataBroker-1.1"):NewDataObject("kRestack", {
type = "data source",
text = "kRestack",
icon = "Interface\\Icons\\INV_Crate_09",
OnClick = function(self, button)
if button == "RightButton" then
GameTooltip:Hide()
UIDropDownMenu_Initialize(drop, function() for _, opt in pairs(menu) do UIDropDownMenu_AddButton(opt, 1) end end, "MENU")
return ToggleDropDownMenu(1, nil, drop, self, 0, 0)
elseif button == "LeftButton" then
kRestack("bags")
end
end,
})
 
--[[ set user's container identifers ]]
local container = { bags = { 0 }, bank = { -1 }, guild = { 42 } }
for i = 1, NUM_BAG_SLOTS do table.insert(container.bags, i) end
for i = NUM_BAG_SLOTS + 1, NUM_BAG_SLOTS + NUM_BANKBAGSLOTS do table.insert(container.bank, i) end
 
--[[ watching some events ]]
local atBank, atVault
local f = CreateFrame("frame")
local events = { "ADDON_LOADED", "BANKFRAME_OPENED", "BANKFRAME_CLOSED", "LOOT_OPENED", "TRADE_SHOW", "GUILDBANKFRAME_OPENED", "GUILDBANKFRAME_CLOSED" }
for _, r in pairs(events) do f:RegisterEvent(r) end
f:SetScript("OnEvent", function(_, e)
--[[ ldb stuff ]]
if e == events[2] then
menu[3].disabled = false
elseif e == events[3] then
menu[3].disabled = true
elseif e == events[6] then
local _, _, isViewable, canDeposit = GetGuildBankTabInfo(GetCurrentGuildBankTab())
if IsGuildLeader() or (isViewable and canDeposit) then menu[4].disabled = false end
elseif e == events[7] then
menu[4].disabled = true
end
local frame = CreateFrame("FRAME")
local events = { "ADDON_LOADED", "BANKFRAME_OPENED", "LOOT_OPENED", "TRADE_SHOW", "GUILDBANKFRAME_OPENED" }
for _, r in pairs(events) do frame:RegisterEvent(r) end
frame:SetScript("OnEvent", function(_, e)
if e == events[1] then
--[[ initialize saved variables ]]
if type(AutoRestack) ~= "table" then AutoRestack = { } end
68,9 → 31,9
if AutoRestack.guild == nil then AutoRestack.guild = false end
elseif AutoRestack.bank and e == events[2] then
kRestack("bank", true)
elseif AutoRestack.bags and (e == events[4] or e == events[5]) then
elseif AutoRestack.bags and (e == events[3] or e == events[4]) then
kRestack("bags", true)
elseif AutoRestack.guild and e == events[6] then
elseif AutoRestack.guild and e == events[5] then
kRestack("guild", true)
end
end)
92,7 → 55,7
 
local function coYield(loc, lb, ls, count)
--[[ yielding function; can't be stacking too fast or else bad stuff happens ]]
f:SetScript("OnUpdate", function()
frame:SetScript("OnUpdate", function()
if coroutine.status(restacker) == "suspended" then
local locked = true
if loc == "guild" then
240,7 → 203,7
end
end
--[[ turn off yielding function ]]
f:SetScript("OnUpdate", nil)
frame:SetScript("OnUpdate", nil)
end)
coroutine.resume(restacker)
else
249,4 → 212,4
print(kR..col.r, "Restacking is already in progress. (use '/restack resume' if stuck)")
end
end
end
\ No newline at end of file +end
kRestack/kRestack.toc
1,9 → 1,8
## Interface: 30100
## Title: kRestack
## Version: 1.0.2
## Version: 1.0.1
## Author: Katae of Anvilmar
## Notes: Addon for all of your restacking needs.
## X-Embeds: CallbackHandler-1.0, LibStub
## Notes: Function for restacking inventory items.
## SavedVariablesPerCharacter: AutoRestack
 
kRestack.lua
\ No newline at end of file