Mercurial > wow > buffalo2
view Modules/OrderHall.lua @ 80:bb6b532c5d2f
- added "world state" frame for zone-specific currencies and context-based artifact/experience progress
author | Nenue |
---|---|
date | Tue, 11 Oct 2016 08:03:41 -0400 |
parents | |
children | 65ec88b30eb8 |
line wrap: on
line source
-- Veneer -- OrderHall.lua -- Created: 10/7/2016 10:55 PM -- %file-revision% -- VeneerWorldStateCurrencyMixin = {} VeneerWorldStateMixin = {} local print = DEVIAN_WORKSPACE and function(...) print('VnWorldState', ...) end or nop function VeneerWorldStateMixin:Setup() hooksecurefunc(OrderHallCommandBar,'Show', function() self:Refresh() end) self:Refresh() --DEFAULT_CHAT_FRAME:AddMessage('Loaded') end function VeneerWorldStateMixin:Refresh() OrderHallCommandBar:ClearAllPoints() OrderHallCommandBar:SetPoint('TOP') OrderHallCommandBar:SetWidth(600) OrderHallCommandBar.Background:SetColorTexture(0,0,0,0.5) OrderHallCommandBar.WorldMapButton:Hide() OrderHallCommandBar:EnableMouse(false) end local initialized function VeneerWorldStateMixin:OnEvent(event, arg) print(event, arg) if OrderHallCommandBar and not initialized then initialized = true self:Setup() self:UnregisterEvent('ADDON_LOADED') end if event == 'PLAYER_ENTERING_WORLD' then self:Update() end end function VeneerWorldStateMixin:Update() local frames = {self:GetChildren()} print('|cFFFFFF00All:Update()|r') for i, frame in ipairs(frames) do if frame.Update then print(frame:GetName()) frame:Update() end end end function VeneerWorldStateMixin:OnLoad () self:RegisterEvent('ADDON_LOADED') self:RegisterEvent('ARTIFACT_UPDATE') self:RegisterEvent('ARTIFACT_XP_UPDATE') self:RegisterEvent('PLAYER_ENTERING_WORLD') end function VeneerWorldStateCurrencyMixin:OnLoad () self:RegisterEvent('ZONE_CHANGED') self:RegisterEvent('CURRENCY_DISPLAY_UPDATE') self:RegisterEvent('CHAT_MSG_CURRENCY') end function VeneerWorldStateCurrencyMixin:OnEvent (event, arg) self:Update() end function VeneerWorldStateCurrencyMixin:Update() local mapID = GetCurrentMapAreaID() print('currency refresh: zone =', mapID) if mapID == 1033 then local name, earned, texture, earnedThisWeek, weeklyMax, totalMax = GetCurrencyInfo(1155) self.Icon:SetTexture(texture) self.Label:SetFormattedText("%d / %d", earned, totalMax) self:Show() self:SetWidth(self.Icon:GetWidth() + self.Label:GetStringWidth() + 6) else self:Hide() end end