kaelten@0
|
1
|
kaelten@0
|
2 local OneBag3 = LibStub('AceAddon-3.0'):GetAddon('OneBag3')
|
kaelten@0
|
3 local OneRing3 = LibStub('AceAddon-3.0'):NewAddon('OneRing3', 'OneCore-1.0', 'OneFrame-1.0', 'OneConfig-1.0', 'OnePlugin-1.0', 'AceHook-3.0', 'AceEvent-3.0', 'AceConsole-3.0')
|
kaelten@0
|
4 local AceDB3 = LibStub('AceDB-3.0')
|
kaelten@0
|
5 local L = LibStub("AceLocale-3.0"):GetLocale("OneRing3")
|
kaelten@0
|
6
|
kaelten@0
|
7 OneRing3:InitializePluginSystem()
|
kaelten@0
|
8
|
kaelten@0
|
9 --- Handles the do once configuration, including db, frames and configuration
|
kaelten@0
|
10 function OneRing3:OnInitialize()
|
kaelten@0
|
11 self.db = OneBag3.db
|
kaelten@0
|
12 self.displayName = "OneRing3"
|
kaelten@0
|
13
|
kaelten@0
|
14 self.bagIndexes = {-2}
|
kaelten@0
|
15 self.forcedCols = 4
|
kaelten@1
|
16 self.bottomBorder = 5
|
kaelten@1
|
17 self.topBorder = -5
|
kaelten@0
|
18
|
kaelten@0
|
19 self.frame = self:CreateMainFrame("OneRingFrame")
|
kaelten@0
|
20 self.frame.handler = self
|
kaelten@0
|
21
|
kaelten@0
|
22 table.insert(OneBag3.frame.childrenFrames, self.frame)
|
kaelten@0
|
23
|
kaelten@0
|
24 self.frame:SetPosition(self.db.profile.position)
|
kaelten@0
|
25 self.frame:CustomizeFrame(self.db.profile)
|
kaelten@0
|
26
|
kaelten@0
|
27 self.frame.moneyframe:Hide()
|
kaelten@0
|
28 self.frame.sidebarButton:Hide()
|
kaelten@0
|
29 self.frame.configButton:Hide()
|
kaelten@0
|
30
|
kaelten@0
|
31 self.frame.name:ClearAllPoints()
|
kaelten@0
|
32 self.frame.name:SetPoint("TOPLEFT", "OneRingFrame", "TOPLEFT", 10, -15)
|
kaelten@0
|
33
|
kaelten@0
|
34 self.frame:SetScript("OnShow", function()
|
kaelten@0
|
35 if not self.frame.slots then
|
kaelten@0
|
36 self.frame.slots = {}
|
kaelten@0
|
37 end
|
kaelten@0
|
38
|
kaelten@0
|
39 self:BuildFrame()
|
kaelten@0
|
40 self:OrganizeFrame()
|
kaelten@0
|
41 self:UpdateFrame()
|
kaelten@0
|
42
|
kaelten@0
|
43 local UpdateBag = function(event, bag)
|
kaelten@0
|
44 self:UpdateBag(bag)
|
kaelten@0
|
45 end
|
kaelten@0
|
46
|
kaelten@0
|
47 self:RegisterEvent("BAG_UPDATE", UpdateBag)
|
kaelten@0
|
48 self:RegisterEvent("BAG_UPDATE_COOLDOWN", UpdateBag)
|
kaelten@0
|
49 self:RegisterEvent("UPDATE_INVENTORY_ALERTS", "UpdateFrame")
|
kaelten@0
|
50
|
kaelten@0
|
51 self.frame.name:SetText(L["%s's KeyRing"]:format(UnitName("player")))
|
kaelten@0
|
52
|
kaelten@0
|
53 self.frame:ClearAllPoints()
|
kaelten@0
|
54 if not OneBag3.frame:IsVisible() then
|
kaelten@0
|
55 self.frame:SetPoint("CENTER", UIParent, "CENTER", 0, 0)
|
kaelten@0
|
56 else
|
kaelten@0
|
57 self.frame:SetPoint("BOTTOMLEFT", OneBag3.frame, "TOPLEFT", 0, 8)
|
kaelten@0
|
58 end
|
kaelten@0
|
59 end)
|
kaelten@0
|
60
|
kaelten@0
|
61 self.frame:SetScript("OnHide", function()
|
kaelten@0
|
62 self:UnregisterEvent("BAG_UPDATE")
|
kaelten@0
|
63 self:UnregisterEvent("BAG_UPDATE_COOLDOWN")
|
kaelten@0
|
64 self:UnregisterEvent("UPDATE_INVENTORY_ALERTS")
|
kaelten@0
|
65 end)
|
kaelten@0
|
66 end
|
kaelten@0
|
67
|
kaelten@0
|
68 --- Sets up hooks and registers events
|
kaelten@0
|
69 function OneRing3:OnEnable()
|
kaelten@0
|
70 self:SecureHook("ToggleKeyRing", function()
|
kaelten@0
|
71 if self.frame:IsVisible() then
|
kaelten@0
|
72 self.frame:Hide()
|
kaelten@0
|
73 else
|
kaelten@0
|
74 self.frame:Show()
|
kaelten@0
|
75 end
|
kaelten@0
|
76
|
kaelten@0
|
77 local shownContainerID = IsBagOpen(KEYRING_CONTAINER)
|
kaelten@0
|
78 if ( shownContainerID ) then
|
kaelten@0
|
79 local frame = getglobal("ContainerFrame"..shownContainerID)
|
kaelten@0
|
80 frame:Hide()
|
kaelten@0
|
81 end
|
kaelten@0
|
82 end)
|
kaelten@0
|
83 end
|
kaelten@0
|
84 |