kaelten@0: kaelten@0: local OneBag3 = LibStub('AceAddon-3.0'):GetAddon('OneBag3') kaelten@33: 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: local AceDB3 = LibStub('AceDB-3.0') kaelten@33: local L = LibStub("AceLocale-3.0"):GetLocale("OneRing3") kaelten@0: kaelten@33: OneRing3:InitializePluginSystem() kaelten@33: kaelten@0: --- Handles the do once configuration, including db, frames and configuration kaelten@33: function OneRing3:OnInitialize() kaelten@0: self.db = OneBag3.db kaelten@0: self.displayName = "OneRing3" kaelten@33: kaelten@0: self.bagIndexes = {-2} kaelten@0: self.forcedCols = 4 kaelten@1: self.bottomBorder = 5 kaelten@1: self.topBorder = -5 kaelten@33: kaelten@0: self.frame = self:CreateMainFrame("OneRingFrame") kaelten@0: self.frame.handler = self kaelten@33: kaelten@0: table.insert(OneBag3.frame.childrenFrames, self.frame) kaelten@33: kaelten@0: self.frame:SetPosition(self.db.profile.position) kaelten@0: self.frame:CustomizeFrame(self.db.profile) kaelten@33: kaelten@0: self.frame.moneyframe:Hide() kaelten@0: self.frame.sidebarButton:Hide() kaelten@33: self.frame.configButton:Hide() kaelten@33: kaelten@0: self.frame.name:ClearAllPoints() kaelten@0: self.frame.name:SetPoint("TOPLEFT", "OneRingFrame", "TOPLEFT", 10, -15) kaelten@33: kaelten@0: self.frame:SetScript("OnShow", function() kaelten@0: if not self.frame.slots then kaelten@0: self.frame.slots = {} kaelten@0: end kaelten@33: kaelten@0: self:BuildFrame() kaelten@0: self:OrganizeFrame() kaelten@0: self:UpdateFrame() kaelten@33: kaelten@33: local UpdateBag = function(event, bag) kaelten@0: self:UpdateBag(bag) kaelten@0: end kaelten@0: kaelten@0: self:RegisterEvent("BAG_UPDATE", UpdateBag) kaelten@0: self:RegisterEvent("BAG_UPDATE_COOLDOWN", UpdateBag) kaelten@33: self:RegisterEvent("UPDATE_INVENTORY_ALERTS", "UpdateFrame") kaelten@5: self:RegisterEvent("ITEM_LOCK_CHANGED", "UpdateItemLock") kaelten@0: kaelten@33: self.frame.name:SetText(L["%s's KeyRing"]:format(UnitName("player"))) kaelten@33: kaelten@33: self.frame:ClearAllPoints() kaelten@33: if not OneBag3.frame:IsVisible() then kaelten@33: self.frame:SetPoint("CENTER", UIParent, "CENTER", 0, 0) kaelten@33: else kaelten@33: self.frame:SetPoint("BOTTOMLEFT", OneBag3.frame, "TOPLEFT", 0, 8) kaelten@0: end kaelten@0: end) kaelten@33: kaelten@0: self.frame:SetScript("OnHide", function() kaelten@0: self:UnregisterEvent("BAG_UPDATE") kaelten@0: self:UnregisterEvent("BAG_UPDATE_COOLDOWN") kaelten@33: self:UnregisterEvent("UPDATE_INVENTORY_ALERTS") kaelten@5: self:UnregisterEvent("ITEM_LOCK_CHANGED") kaelten@0: end) kaelten@0: end kaelten@0: kaelten@0: --- Sets up hooks and registers events kaelten@0: function OneRing3:OnEnable() kaelten@0: self:SecureHook("ToggleKeyRing", function() kaelten@0: if self.frame:IsVisible() then kaelten@0: self.frame:Hide() kaelten@0: else kaelten@0: self.frame:Show() kaelten@0: end kaelten@33: kaelten@0: local shownContainerID = IsBagOpen(KEYRING_CONTAINER) kaelten@0: if ( shownContainerID ) then kaelten@0: local frame = getglobal("ContainerFrame"..shownContainerID) kaelten@0: frame:Hide() kaelten@0: end kaelten@0: end) kaelten@0: end