Nenue@80: -- Veneer Nenue@80: -- OrderHall.lua Nenue@80: -- Created: 10/7/2016 10:55 PM Nenue@80: -- %file-revision% Nenue@80: -- Nenue@80: Nenue@80: VeneerWorldStateCurrencyMixin = {} Nenue@80: VeneerWorldStateMixin = {} Nenue@80: local print = DEVIAN_WORKSPACE and function(...) print('VnWorldState', ...) end or nop Nenue@80: Nenue@80: function VeneerWorldStateMixin:Setup() Nenue@80: hooksecurefunc(OrderHallCommandBar,'Show', function() Nenue@80: self:Refresh() Nenue@80: end) Nenue@80: self:Refresh() Nenue@80: --DEFAULT_CHAT_FRAME:AddMessage('Loaded') Nenue@80: end Nenue@80: Nenue@80: function VeneerWorldStateMixin:Refresh() Nenue@80: OrderHallCommandBar:ClearAllPoints() Nenue@80: OrderHallCommandBar:SetPoint('TOP') Nenue@80: OrderHallCommandBar:SetWidth(600) Nenue@80: OrderHallCommandBar.Background:SetColorTexture(0,0,0,0.5) Nenue@80: OrderHallCommandBar.WorldMapButton:Hide() Nenue@80: OrderHallCommandBar:EnableMouse(false) Nenue@80: end Nenue@80: local initialized Nenue@80: function VeneerWorldStateMixin:OnEvent(event, arg) Nenue@80: print(event, arg) Nenue@80: if OrderHallCommandBar and not initialized then Nenue@80: initialized = true Nenue@80: self:Setup() Nenue@80: self:UnregisterEvent('ADDON_LOADED') Nenue@80: end Nenue@80: Nenue@80: if event == 'PLAYER_ENTERING_WORLD' then Nenue@80: self:Update() Nenue@80: end Nenue@80: end Nenue@80: Nenue@80: function VeneerWorldStateMixin:Update() Nenue@80: local frames = {self:GetChildren()} Nenue@80: print('|cFFFFFF00All:Update()|r') Nenue@80: for i, frame in ipairs(frames) do Nenue@80: if frame.Update then Nenue@80: print(frame:GetName()) Nenue@80: frame:Update() Nenue@80: end Nenue@80: end Nenue@80: end Nenue@80: Nenue@80: Nenue@80: Nenue@80: function VeneerWorldStateMixin:OnLoad () Nenue@80: self:RegisterEvent('ADDON_LOADED') Nenue@80: self:RegisterEvent('ARTIFACT_UPDATE') Nenue@80: self:RegisterEvent('ARTIFACT_XP_UPDATE') Nenue@80: self:RegisterEvent('PLAYER_ENTERING_WORLD') Nenue@80: Nenue@80: end Nenue@80: Nenue@80: function VeneerWorldStateCurrencyMixin:OnLoad () Nenue@80: Nenue@80: self:RegisterEvent('ZONE_CHANGED') Nenue@80: self:RegisterEvent('CURRENCY_DISPLAY_UPDATE') Nenue@80: self:RegisterEvent('CHAT_MSG_CURRENCY') Nenue@80: Nenue@80: end Nenue@80: Nenue@80: function VeneerWorldStateCurrencyMixin:OnEvent (event, arg) Nenue@80: self:Update() Nenue@80: end Nenue@80: Nenue@80: Nenue@80: function VeneerWorldStateCurrencyMixin:Update() Nenue@80: local mapID = GetCurrentMapAreaID() Nenue@80: print('currency refresh: zone =', mapID) Nenue@80: if mapID == 1033 then Nenue@80: local name, earned, texture, earnedThisWeek, weeklyMax, totalMax = GetCurrencyInfo(1155) Nenue@80: Nenue@80: self.Icon:SetTexture(texture) Nenue@80: self.Label:SetFormattedText("%d / %d", earned, totalMax) Nenue@80: self:Show() Nenue@80: self:SetWidth(self.Icon:GetWidth() + self.Label:GetStringWidth() + 6) Nenue@80: else Nenue@80: self:Hide() Nenue@80: end Nenue@80: end