-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi.lua
More file actions
65 lines (50 loc) · 1.71 KB
/
api.lua
File metadata and controls
65 lines (50 loc) · 1.71 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
local ADDON_NAME, private = ...
local Garrison = LibStub("AceAddon-3.0"):GetAddon(ADDON_NAME)
local garrisonDb, globalDb, configDb
local debugPrint = Garrison.debugPrint
local events = {
[Garrison.TYPE_MISSION] = {},
[Garrison.TYPE_BUILDING] = {},
[Garrison.TYPE_SHIPMENT] = {},
[Garrison.TYPE_ORDERHALL] = {},
}
local function ldb(name)
if Garrison.ldbVars and Garrison.ldbVars[name] and Garrison.ldbVars[name].data and Garrison.data then
return Garrison.ldbVars[name].data(Garrison.data)
end
return nil
end
local function get(realm, player)
if globalDb.data and globalDb.data[realm] and globalDb.data[realm][player] then
return globalDb.data[realm][player]
end
return nil
end
local function register(event, callable)
if event and callable and events[event] then
events[event][#events] = callable
end
end
local function fireEvent(event, paramCharInfo, data)
local dataCopy = Garrison.deepcopy(data)
if events and events[event] ~= nil then
debugPrint(("fireEvent [%s] (%s-%s): %s"):format(event, paramCharInfo.realmName, paramCharInfo.playerName, tostring(data)))
for _, callable in pairs(events[event]) do
callable(paramCharInfo, dataCopy)
end
end
end
Garrison.fireEvent = fireEvent
function Garrison:SetupAPI()
garrisonDb = self.DB
configDb = garrisonDb.profile
globalDb = garrisonDb.global
end
--_G["BrokerGarrison"].ldbVars = Garrison.ldbVars
_G["BrokerGarrison"].ldb = ldb
_G["BrokerGarrison"].get = get
_G["BrokerGarrison"].registerEvent = register
_G["BrokerGarrison"].TYPE_MISSION = Garrison.TYPE_MISSION
_G["BrokerGarrison"].TYPE_BUILDING = Garrison.TYPE_BUILDING
_G["BrokerGarrison"].TYPE_SHIPMENT = Garrison.TYPE_SHIPMENT
_G["BrokerGarrison"].TYPE_ORDERHALL = Garrison.TYPE_ORDERHALL