bbe2492a5b
Each DataStore_* / Altoholic_* addon now lives at the repo root, matching the Exiles fork-layout convention (one folder per addon, no wrapper dir).
98 lines
2.8 KiB
Lua
98 lines
2.8 KiB
Lua
local addonName = ...
|
|
local addon = _G[addonName]
|
|
|
|
local L = LibStub("AceLocale-3.0"):GetLocale(addonName)
|
|
|
|
local WHITE = "|cFFFFFFFF"
|
|
local GREEN = "|cFF00FF00"
|
|
local YELLOW = "|cFFFFFF00"
|
|
|
|
local NUM_GUILDBANK_ROWS = 7
|
|
|
|
addon.GuildBank = {}
|
|
|
|
local ns = addon.GuildBank -- ns = namespace
|
|
|
|
function ns:DrawTab(tabID)
|
|
local selectedGuild = UIDropDownMenu_GetSelectedValue(AltoholicTabGuildBank_SelectGuild)
|
|
if not selectedGuild then return end -- not defined yet ? exit.
|
|
|
|
if not AltoGuildBank:IsVisible() then
|
|
AltoGuildBank:Show()
|
|
end
|
|
|
|
local account, realm, guildName = strsplit("|", selectedGuild)
|
|
local guild = DataStore:GetGuild(guildName, realm, account)
|
|
|
|
if not tabID then
|
|
-- will be nil when clicking on the guild bank tab for the first time, so find the first available one
|
|
-- called in OnShow (tabguildbank.xml)
|
|
for i=1, 6 do
|
|
if DataStore:GetGuildBankTabName(guild, i) then
|
|
tabID = i
|
|
|
|
for i=1, 6 do
|
|
_G[ "AltoholicTabGuildBankMenuItem"..i ]:UnlockHighlight();
|
|
end
|
|
_G[ "AltoholicTabGuildBankMenuItem"..tabID ]:LockHighlight();
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
if not tabID then return end -- no tab found ? exit
|
|
|
|
local entry = "AltoGuildBankEntry"
|
|
local tab = DataStore:GetGuildBankTab(guild, tabID)
|
|
if not tab.name then -- tab not yet scanned ? exit
|
|
for rowIndex = 1, NUM_GUILDBANK_ROWS do
|
|
_G[ entry..rowIndex ]:Hide()
|
|
end
|
|
return
|
|
end
|
|
|
|
AltoholicTabGuildBankInfo1:SetText(format(L["Last visit: %s by %s"], GREEN..tab.ClientDate..WHITE, GREEN..tab.visitedBy))
|
|
local localTime, realmTime
|
|
localTime = format("%s%02d%s:%s%02d", GREEN, tab.ClientHour, WHITE, GREEN, tab.ClientMinute )
|
|
realmTime = format("%s%02d%s:%s%02d", GREEN, tab.ServerHour, WHITE, GREEN, tab.ServerMinute )
|
|
AltoholicTabGuildBankInfo2:SetText(format(L["Local Time: %s %sRealm Time: %s"], localTime, WHITE, realmTime))
|
|
|
|
for rowIndex = 1, NUM_GUILDBANK_ROWS do
|
|
|
|
local from = mod(rowIndex, NUM_GUILDBANK_ROWS)
|
|
if from == 0 then from = NUM_GUILDBANK_ROWS end
|
|
|
|
for columnIndex = 14, 1, -1 do
|
|
local itemName = entry..rowIndex .. "Item" .. columnIndex;
|
|
local itemButton = _G[itemName];
|
|
|
|
local itemIndex = from + ((columnIndex - 1) * NUM_GUILDBANK_ROWS)
|
|
|
|
local itemID, itemLink, itemCount = DataStore:GetSlotInfo(tab, itemIndex)
|
|
|
|
if itemID then
|
|
addon:SetItemButtonTexture(itemName, GetItemIcon(itemID));
|
|
else
|
|
addon:SetItemButtonTexture(itemName, "Interface\\PaperDoll\\UI-Backpack-EmptySlot");
|
|
end
|
|
|
|
itemButton.id = itemID
|
|
itemButton.link = itemLink
|
|
itemButton:SetScript("OnEnter", function(self)
|
|
addon:Item_OnEnter(self)
|
|
end)
|
|
|
|
local countWidget = _G[itemName .. "Count"]
|
|
if not itemCount or (itemCount < 2) then
|
|
countWidget:Hide();
|
|
else
|
|
countWidget:SetText(itemCount);
|
|
countWidget:Show();
|
|
end
|
|
|
|
_G[ itemName ]:Show()
|
|
end
|
|
_G[ entry..rowIndex ]:Show()
|
|
end
|
|
end
|