Mercurial > wow > buffalo2
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Modules/OrderHall.lua Tue Oct 11 08:03:41 2016 -0400 @@ -0,0 +1,88 @@ +-- 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 \ No newline at end of file