-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathGlobals.lua
More file actions
229 lines (210 loc) · 8.06 KB
/
Globals.lua
File metadata and controls
229 lines (210 loc) · 8.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
GBankClassic_Globals = GBankClassic_Globals or {}
local Globals = GBankClassic_Globals
-- Globals
-- WoW Lua APIs
local debugprofilestop = debugprofilestop
local hooksecurefunc = hooksecurefunc
local date = date
local time = time
local wipe = wipe
Globals.debugprofilestop = debugprofilestop
Globals.hooksecurefunc = hooksecurefunc
Globals.date = date
Globals.time = time
Globals.wipe = wipe
-- WoW APIs
local IsInRaid = IsInRaid
local IsInGuild = IsInGuild
local IsShiftKeyDown = IsShiftKeyDown
local IsControlKeyDown = IsControlKeyDown
Globals.IsInRaid = IsInRaid
Globals.IsInGuild = IsInGuild
Globals.IsShiftKeyDown = IsShiftKeyDown
Globals.IsControlKeyDown = IsControlKeyDown
local FCF_DockFrame = FCF_DockFrame
local FCF_ResetChatWindows = FCF_ResetChatWindows
local FCF_SetLocked = FCF_SetLocked
local FCF_SetWindowColor = FCF_SetWindowColor
local FCF_SetWindowName = FCF_SetWindowName
Globals.FCF_DockFrame = FCF_DockFrame
Globals.FCF_ResetChatWindows = FCF_ResetChatWindows
Globals.FCF_SetLocked = FCF_SetLocked
Globals.FCF_SetWindowColor = FCF_SetWindowColor
Globals.FCF_SetWindowName = FCF_SetWindowName
local ChatFrame_RemoveAllMessageGroups = ChatFrame_RemoveAllMessageGroups
local GetChatWindowInfo = GetChatWindowInfo
local CreateFrame = CreateFrame
local ChatFrame_RemoveAllChannels = ChatFrame_RemoveAllChannels
local ChatEdit_InsertLink = ChatEdit_InsertLink
local StaticPopup_Show = StaticPopup_Show
local GameTooltip_SetDefaultAnchor = GameTooltip_SetDefaultAnchor
Globals.ChatFrame_RemoveAllMessageGroups = ChatFrame_RemoveAllMessageGroups
Globals.GetChatWindowInfo = GetChatWindowInfo
Globals.CreateFrame = CreateFrame
Globals.ChatFrame_RemoveAllChannels = ChatFrame_RemoveAllChannels
Globals.ChatEdit_InsertLink = ChatEdit_InsertLink
Globals.StaticPopup_Show = StaticPopup_Show
Globals.GameTooltip_SetDefaultAnchor = GameTooltip_SetDefaultAnchor
local GetCursorInfo = GetCursorInfo
local ClearCursor = ClearCursor
local ClickSendMailItemButton = ClickSendMailItemButton
local PickupItem = PickupItem or C_Container.PickupItem
local PickupContainerItem = PickupContainerItem or C_Container.PickupContainerItem
local CheckInbox = CheckInbox
local TakeInboxItem = TakeInboxItem
local TakeInboxMoney = TakeInboxMoney
local DressUpItemLink = DressUpItemLink
Globals.GetCursorInfo = GetCursorInfo
Globals.ClearCursor = ClearCursor
Globals.ClickSendMailItemButton = ClickSendMailItemButton
Globals.PickupItem = PickupItem
Globals.PickupContainerItem = PickupContainerItem
Globals.CheckInbox = CheckInbox
Globals.TakeInboxItem = TakeInboxItem
Globals.TakeInboxMoney = TakeInboxMoney
Globals.DressUpItemLink = DressUpItemLink
local GuildRoster = GuildRoster or C_GuildInfo.GuildRoster
local GetGuildInfo = GetGuildInfo
local GetNumGuildMembers = GetNumGuildMembers or C_GuildInfo.GetNumGuildMembers
local GetGuildRosterInfo = GetGuildRosterInfo or C_GuildInfo.GetGuildRosterInfo
local CanViewOfficerNote = CanViewOfficerNote or C_GuildInfo.CanViewOfficerNote
Globals.GuildRoster = GuildRoster
Globals.GetGuildInfo = GetGuildInfo
Globals.GetNumGuildMembers = GetNumGuildMembers
Globals.GetGuildRosterInfo = GetGuildRosterInfo
Globals.CanViewOfficerNote = CanViewOfficerNote
local GetItemNameByID = GetItemNameByID or C_Item.GetItemNameByID
local GetItemInfo = GetItemInfo or C_Item.GetItemInfo
local GetItemInfoInstant = GetItemInfoInstant or C_Item.GetItemInfoInstant
local GetItemQualityColor = GetItemQualityColor or C_Item.GetItemQualityColor
local GetItemInventoryTypeByID = GetItemInventoryTypeByID or C_Item.GetItemInventoryTypeByID
Globals.GetItemNameByID = GetItemNameByID
Globals.GetItemInfo = GetItemInfo
Globals.GetItemInfoInstant = GetItemInfoInstant
Globals.GetItemQualityColor = GetItemQualityColor
Globals.GetItemInventoryTypeByID = GetItemInventoryTypeByID
local GetInboxHeaderInfo = GetInboxHeaderInfo
local GetInboxItem = GetInboxItem
local GetInboxText = GetInboxText
local GetInboxItemLink = GetInboxItemLink
local GetInboxNumItems = GetInboxNumItems
local GetSendMailItem = GetSendMailItem
Globals.GetInboxHeaderInfo = GetInboxHeaderInfo
Globals.GetInboxItem = GetInboxItem
Globals.GetInboxText = GetInboxText
Globals.GetInboxItemLink = GetInboxItemLink
Globals.GetInboxNumItems = GetInboxNumItems
Globals.GetSendMailItem = GetSendMailItem
local GetMoney = GetMoney
local GetCoinTextureString = GetCoinTextureString or C_CurrencyInfo.GetCoinTextureString
local GetContainerNumFreeSlots = GetContainerNumFreeSlots or C_Container.GetContainerNumFreeSlots
local GetContainerItemInfo = GetContainerItemInfo or C_Container.GetContainerItemInfo
local GetContainerNumSlots = GetContainerNumSlots or C_Container.GetContainerNumSlots
Globals.GetMoney = GetMoney
Globals.GetCoinTextureString = GetCoinTextureString
Globals.GetContainerNumFreeSlots = GetContainerNumFreeSlots
Globals.GetContainerItemInfo = GetContainerItemInfo
Globals.GetContainerNumSlots = GetContainerNumSlots
local GetAddOnMetadata = GetAddOnMetadata or C_AddOns.GetAddOnMetadata
local UnitName = UnitName
local GetNormalizedRealmName = GetNormalizedRealmName
local GetRealmName = GetRealmName
local GetClassColor = GetClassColor or C_ClassColor.GetClassColor
Globals.GetAddOnMetadata = GetAddOnMetadata
Globals.UnitName = UnitName
Globals.GetNormalizedRealmName = GetNormalizedRealmName
Globals.GetRealmName = GetRealmName
Globals.GetClassColor = GetClassColor
local GetServerTime = GetServerTime
local GetTime = GetTime
local SecondsToTime = SecondsToTime
Globals.GetServerTime = GetServerTime or C_DateAndTime.GetServerTime
Globals.GetTime = GetTime
Globals.SecondsToTime = SecondsToTime
local After = After or C_Timer.After
local NewTicker = NewTicker or C_Timer.NewTicker
local NewTimer = NewTimer or C_Timer.NewTimer
Globals.After = After
Globals.NewTicker = NewTicker
Globals.NewTimer = NewTimer
-- WoW global tables
local GameFontNormal = GameFontNormal
local GameTooltip = GameTooltip
local SendMailNameEditBox = SendMailNameEditBox
local Settings = Settings
local BankFrame = BankFrame
local MailFrame = MailFrame
local UIParent = UIParent
local UISpecialFrames = UISpecialFrames
local WorldFrame = WorldFrame
Globals.GameFontNormal = GameFontNormal
Globals.GameTooltip = GameTooltip
Globals.SendMailNameEditBox = SendMailNameEditBox
Globals.Settings = Settings
Globals.BankFrame = BankFrame
Globals.MailFrame = MailFrame
Globals.UIParent = UIParent
Globals.UISpecialFrames = UISpecialFrames
Globals.WorldFrame = WorldFrame
-- WoW global variables
local ATTACHMENTS_MAX_RECEIVE = ATTACHMENTS_MAX_RECEIVE
local ATTACHMENTS_MAX_SEND = ATTACHMENTS_MAX_SEND
local BANK_CONTAINER = BANK_CONTAINER
local ITEM_UNIQUE = ITEM_UNIQUE
local NUM_CHAT_WINDOWS = NUM_CHAT_WINDOWS
local NUM_BANKGENERIC_SLOTS = NUM_BANKGENERIC_SLOTS
Globals.ATTACHMENTS_MAX_RECEIVE = ATTACHMENTS_MAX_RECEIVE
Globals.ATTACHMENTS_MAX_SEND = ATTACHMENTS_MAX_SEND
Globals.BANK_CONTAINER = BANK_CONTAINER
Globals.ITEM_UNIQUE = ITEM_UNIQUE
Globals.NUM_CHAT_WINDOWS = NUM_CHAT_WINDOWS
Globals.NUM_BANKGENERIC_SLOTS = NUM_BANKGENERIC_SLOTS
-- Embedded libraries or other AddOns
local LibStub = LibStub
local Bagnon = Bagnon
local BagBrother = BagBrother
Globals.LibStub = LibStub
Globals.Bagnon = Bagnon
Globals.BagBrother = BagBrother
-- Helper function that returns upvalues
function Globals.GetUpvalues(...)
local keys = {...}
local result = {}
for _, key in ipairs(keys) do
result[key] = Globals[key] or _G[key]
end
return result
end
-- Helpers
-- Generic helpers to count entries in tables
function Globals:CountTableEntries(tbl)
if not tbl or type(tbl) ~= "table" then
return 0
end
local n = 0
for _ in pairs(tbl) do
n = n + 1
end
return n
end
-- Generic helpers to count entries in array
function Globals:CountArrayEntries(tbl)
if not tbl or type(tbl) ~= "table" then
return 0
end
local n = 0
for _ in ipairs(tbl) do
n = n + 1
end
return n
end
-- Smart count: uses array counting when it looks list-like (`tbl[1]`), otherwise counts by pairs
function Globals:Count(tbl)
if not tbl or type(tbl) ~= "table" then
return 0
end
if tbl[1] ~= nil then
return self:CountArrayEntries(tbl)
end
return self:CountTableEntries(tbl)
end