Nenue@80
|
1 -- Veneer
|
Nenue@84
|
2 -- WorldState.lua
|
Nenue@80
|
3 -- Created: 10/7/2016 10:55 PM
|
Nenue@80
|
4 -- %file-revision%
|
Nenue@80
|
5 --
|
Nenue@80
|
6
|
Nenue@80
|
7 VeneerWorldStateCurrencyMixin = {}
|
Nenue@84
|
8 VeneerWorldStateProgressMixin = {
|
Nenue@84
|
9 keepOpen = true
|
Nenue@84
|
10 }
|
Nenue@81
|
11 VeneerWorldStateMixin = {
|
Nenue@82
|
12 maxHeight = 0,
|
Nenue@81
|
13 detectedFrames = {}
|
Nenue@81
|
14 }
|
Nenue@80
|
15 local print = DEVIAN_WORKSPACE and function(...) print('VnWorldState', ...) end or nop
|
Nenue@80
|
16
|
Nenue@80
|
17 function VeneerWorldStateMixin:Setup()
|
Nenue@80
|
18 --DEFAULT_CHAT_FRAME:AddMessage('Loaded')
|
Nenue@84
|
19 print('|cFFFFFF00'..self:GetName()..'|r:Setup()')
|
Nenue@81
|
20
|
Nenue@81
|
21 self.modules = self.modules or {self:GetChildren()}
|
Nenue@81
|
22 for i, frame in ipairs(self.modules) do
|
Nenue@84
|
23 print('--'.. frame:GetName()..' exists')
|
Nenue@81
|
24 if frame.Setup then
|
Nenue@84
|
25 print('--'.. frame:GetName()..':Setup()')
|
Nenue@81
|
26 frame:Setup()
|
Nenue@81
|
27 end
|
Nenue@82
|
28
|
Nenue@82
|
29 frame:SetScript('OnSizeChanged', function()
|
Nenue@82
|
30 local h = frame:GetHeight()
|
Nenue@82
|
31 if h > self.maxHeight then
|
Nenue@82
|
32 self.maxHeight = h
|
Nenue@82
|
33 self:SetHeight(h)
|
Nenue@82
|
34 print('updating max height:', h)
|
Nenue@82
|
35 elseif h < self.maxHeight then
|
Nenue@82
|
36 self:UpdateSize()
|
Nenue@82
|
37 end
|
Nenue@82
|
38 end)
|
Nenue@82
|
39 frame:SetScript('OnHide', function()
|
Nenue@82
|
40 print('|cFF0088FF'..frame:GetName()..':OnHide()')
|
Nenue@82
|
41 self:UpdateSize()
|
Nenue@82
|
42 end)
|
Nenue@82
|
43 frame:SetScript('OnShow', function()
|
Nenue@82
|
44 frame.timeLived = 0
|
Nenue@82
|
45 print('|cFF0088FF'..frame:GetName()..':OnShow()')
|
Nenue@82
|
46 self:UpdateSize()
|
Nenue@82
|
47 end)
|
Nenue@82
|
48
|
Nenue@82
|
49 function frame.ShowPanel(frame)
|
Nenue@82
|
50 frame:SetShown(true)
|
Nenue@82
|
51 self:Show()
|
Nenue@82
|
52 end
|
Nenue@83
|
53 function frame.HidePanel(frame)
|
Nenue@83
|
54 frame:SetShown(false)
|
Nenue@83
|
55 self:UpdateSize()
|
Nenue@83
|
56 end
|
Nenue@81
|
57 end
|
Nenue@82
|
58 self:SetOrderHallUIMods()
|
Nenue@84
|
59 self:UnregisterEvent('PLAYER_LOGIN')
|
Nenue@80
|
60 end
|
Nenue@80
|
61
|
Nenue@82
|
62 function VeneerWorldStateMixin:SetOrderHallUIMods()
|
Nenue@81
|
63 if OrderHallCommandBar then
|
Nenue@81
|
64 if not self.detectedFrames[OrderHallCommandBar] then
|
Nenue@81
|
65 self.detectedFrames[OrderHallCommandBar] = true
|
Nenue@81
|
66 hooksecurefunc(OrderHallCommandBar,'Show', function()
|
Nenue@82
|
67 self:SetOrderHallUIMods()
|
Nenue@82
|
68 end)
|
Nenue@82
|
69 hooksecurefunc(OrderHallCommandBar,'Hide', function()
|
Nenue@82
|
70 self:SetOrderHallUIMods()
|
Nenue@84
|
71 self:UpdateSize()
|
Nenue@81
|
72 end)
|
Nenue@81
|
73 end
|
Nenue@81
|
74
|
Nenue@81
|
75
|
Nenue@81
|
76 OrderHallCommandBar:ClearAllPoints()
|
Nenue@81
|
77 OrderHallCommandBar:SetPoint('TOP')
|
Nenue@81
|
78 OrderHallCommandBar:SetWidth(600)
|
Nenue@81
|
79 OrderHallCommandBar.Background:SetColorTexture(0,0,0,0.5)
|
Nenue@81
|
80 OrderHallCommandBar.WorldMapButton:Hide()
|
Nenue@81
|
81 OrderHallCommandBar:EnableMouse(false)
|
Nenue@82
|
82
|
Nenue@82
|
83 if OrderHallCommandBar:IsVisible() then
|
Nenue@82
|
84 self:SetPoint('TOP', OrderHallCommandBar, 'BOTTOM')
|
Nenue@82
|
85 print('anchoring to CommandBar')
|
Nenue@82
|
86 else
|
Nenue@82
|
87 self:SetPoint('TOP', UIParent, 'TOP')
|
Nenue@82
|
88 print('anchoring to UIParent')
|
Nenue@82
|
89 end
|
Nenue@84
|
90
|
Nenue@84
|
91 self:UnregisterEvent('ADDON_LOADED')
|
Nenue@82
|
92 else
|
Nenue@82
|
93 self:SetPoint('TOP', UIParent, 'TOP')
|
Nenue@82
|
94 print('anchoring to UIParent')
|
Nenue@81
|
95 end
|
Nenue@80
|
96 end
|
Nenue@84
|
97
|
Nenue@84
|
98
|
Nenue@84
|
99 function VeneerWorldStateMixin:OnLoad ()
|
Nenue@84
|
100 print('|cFFFFFF00'..self:GetName()..'|r!')
|
Nenue@84
|
101 self:RegisterEvent('PLAYER_LOGIN')
|
Nenue@84
|
102 self:RegisterEvent('ADDON_LOADED')
|
Nenue@84
|
103 self:RegisterEvent('ARTIFACT_UPDATE')
|
Nenue@84
|
104 self:RegisterEvent('ARTIFACT_XP_UPDATE')
|
Nenue@84
|
105 self:RegisterEvent('PLAYER_ENTERING_WORLD')
|
Nenue@84
|
106 self:RegisterEvent('PLAYER_REGEN_ENABLED')
|
Nenue@84
|
107 self:RegisterEvent('PLAYER_REGEN_DISABLED')
|
Nenue@84
|
108 end
|
Nenue@84
|
109
|
Nenue@80
|
110 function VeneerWorldStateMixin:OnEvent(event, arg)
|
Nenue@80
|
111 print(event, arg)
|
Nenue@81
|
112
|
Nenue@84
|
113 if event == 'PLAYER_LOGIN' then
|
Nenue@84
|
114 if IsLoggedIn() and not self.initialized then
|
Nenue@84
|
115 self.initialized = true
|
Nenue@80
|
116 self:Setup()
|
Nenue@81
|
117 end
|
Nenue@82
|
118 elseif event == 'ADDON_LOADED' then
|
Nenue@84
|
119 if self.initialized and IsAddOnLoaded('Blizzard_OrderHallUI') then
|
Nenue@82
|
120 self:SetOrderHallUIMods()
|
Nenue@82
|
121 end
|
Nenue@82
|
122 elseif event == 'PLAYER_ENTERING_WORLD' then
|
Nenue@80
|
123 self:Update()
|
Nenue@81
|
124 elseif event == 'PLAYER_REGEN_ENABLED' then
|
Nenue@83
|
125 self:SetShown(true)
|
Nenue@81
|
126 elseif event == 'PLAYER_REGEN_DISABLED' then
|
Nenue@83
|
127 self:SetShown(false)
|
Nenue@80
|
128 end
|
Nenue@80
|
129 end
|
Nenue@80
|
130
|
Nenue@80
|
131 function VeneerWorldStateMixin:Update()
|
Nenue@82
|
132 self.modules = {self:GetChildren()}
|
Nenue@80
|
133 print('|cFFFFFF00All:Update()|r')
|
Nenue@82
|
134 print(self:GetChildren())
|
Nenue@82
|
135 for i, frame in ipairs(self.modules) do
|
Nenue@82
|
136 if frame.Update then
|
Nenue@82
|
137 print(' |cFFFF00FF'.. frame:GetName() .. ':Update()')
|
Nenue@82
|
138 frame:Update()
|
Nenue@82
|
139 end
|
Nenue@82
|
140 end
|
Nenue@82
|
141 self:SetOrderHallUIMods()
|
Nenue@82
|
142 end
|
Nenue@82
|
143
|
Nenue@82
|
144 function VeneerWorldStateMixin:UpdateSize()
|
Nenue@82
|
145 print('|cFFFFFF00All:UpdateSize()|r')
|
Nenue@82
|
146 print(self:GetChildren())
|
Nenue@82
|
147 self.modules = {self:GetChildren()}
|
Nenue@81
|
148 self.maxHeight = 0
|
Nenue@81
|
149 for i, frame in ipairs(self.modules) do
|
Nenue@82
|
150 print(' '..frame:GetName()..':',frame:IsShown(), frame:IsVisible(), frame:GetHeight())
|
Nenue@82
|
151 if frame:IsShown() then
|
Nenue@82
|
152 self.maxHeight = max(self.maxHeight, frame:GetHeight())
|
Nenue@80
|
153 end
|
Nenue@80
|
154 end
|
Nenue@82
|
155 if self.maxHeight == 0 then
|
Nenue@82
|
156 print ('height zero')
|
Nenue@82
|
157 self:Hide()
|
Nenue@82
|
158 else
|
Nenue@82
|
159 self:Show()
|
Nenue@82
|
160 print ('height update:', self.maxHeight)
|
Nenue@82
|
161 self:SetHeight(self.maxHeight)
|
Nenue@82
|
162 end
|
Nenue@82
|
163
|
Nenue@80
|
164 end
|
Nenue@80
|
165
|
Nenue@80
|
166
|
Nenue@80
|
167
|
Nenue@84
|
168 function VeneerWorldStateMixin:OnMouseDown()
|
Nenue@80
|
169 end
|
Nenue@80
|
170
|
Nenue@80
|
171 function VeneerWorldStateCurrencyMixin:OnLoad ()
|
Nenue@80
|
172
|
Nenue@84
|
173 self:RegisterEvent("PLAYER_ENTERING_WORLD");
|
Nenue@84
|
174 self:RegisterEvent("ZONE_CHANGED");
|
Nenue@84
|
175 self:RegisterEvent("ZONE_CHANGED_INDOORS");
|
Nenue@84
|
176 self:RegisterEvent("ZONE_CHANGED_NEW_AREA");
|
Nenue@80
|
177 self:RegisterEvent('CURRENCY_DISPLAY_UPDATE')
|
Nenue@80
|
178 self:RegisterEvent('CHAT_MSG_CURRENCY')
|
Nenue@80
|
179
|
Nenue@80
|
180 end
|
Nenue@80
|
181
|
Nenue@80
|
182 function VeneerWorldStateCurrencyMixin:OnEvent (event, arg)
|
Nenue@80
|
183 self:Update()
|
Nenue@80
|
184 end
|
Nenue@80
|
185
|
Nenue@80
|
186
|
Nenue@80
|
187 function VeneerWorldStateCurrencyMixin:Update()
|
Nenue@81
|
188
|
Nenue@82
|
189 print(' Zone:', GetZoneText())
|
Nenue@81
|
190 if GetZoneText() == 'Suramar' then
|
Nenue@80
|
191 local name, earned, texture, earnedThisWeek, weeklyMax, totalMax = GetCurrencyInfo(1155)
|
Nenue@80
|
192
|
Nenue@80
|
193 self.Icon:SetTexture(texture)
|
Nenue@80
|
194 self.Label:SetFormattedText("%d / %d", earned, totalMax)
|
Nenue@80
|
195 self:Show()
|
Nenue@80
|
196 self:SetWidth(self.Icon:GetWidth() + self.Label:GetStringWidth() + 6)
|
Nenue@82
|
197 self:SetSize(200,16)
|
Nenue@80
|
198 else
|
Nenue@80
|
199 self:Hide()
|
Nenue@80
|
200 end
|
Nenue@81
|
201
|
Nenue@82
|
202
|
Nenue@81
|
203 end
|
Nenue@81
|
204
|
Nenue@82
|
205 function VeneerWorldStateProgressMixin:OnUpdate(sinceLast)
|
Nenue@84
|
206 if self.keepOpen then
|
Nenue@84
|
207 return
|
Nenue@84
|
208 end
|
Nenue@84
|
209
|
Nenue@82
|
210 self.timeLived = (self.timeLived or 0) + sinceLast
|
Nenue@82
|
211 if self.timeLived >= 3 and not self.TransitionFadeOut:IsPlaying() then
|
Nenue@82
|
212 if not self.timeOut then
|
Nenue@82
|
213 self.timeOut = true
|
Nenue@84
|
214 self.TimedFadeOut:Play()
|
Nenue@82
|
215 end
|
Nenue@82
|
216 end
|
Nenue@82
|
217 end
|
Nenue@82
|
218
|
Nenue@82
|
219
|
Nenue@81
|
220 function VeneerWorldStateProgressMixin:OnLoad()
|
Nenue@82
|
221 self:RegisterEvent('PLAYER_EQUIPMENT_CHANGED')
|
Nenue@81
|
222
|
Nenue@82
|
223 self:RegisterEvent("PLAYER_XP_UPDATE");
|
Nenue@82
|
224 self:RegisterEvent("UPDATE_EXHAUSTION");
|
Nenue@82
|
225 self:RegisterEvent("PLAYER_LEVEL_UP");
|
Nenue@82
|
226 self:RegisterEvent("PLAYER_UPDATE_RESTING");
|
Nenue@82
|
227
|
Nenue@82
|
228 self:RegisterEvent("ARTIFACT_UPDATE");
|
Nenue@82
|
229 self:RegisterEvent("ARTIFACT_XP_UPDATE");
|
Nenue@82
|
230 self:RegisterEvent("ARTIFACT_CLOSE");
|
Nenue@82
|
231 self:RegisterEvent("ARTIFACT_MAX_RANKS_UPDATE");
|
Nenue@82
|
232
|
Nenue@82
|
233 self.progressPercent = 0
|
Nenue@82
|
234 self.progressAmount = 0
|
Nenue@82
|
235 self.progressMax = 1
|
Nenue@82
|
236 self.progressOverflow = 0
|
Nenue@84
|
237
|
Nenue@81
|
238 end
|
Nenue@81
|
239
|
Nenue@81
|
240 function VeneerWorldStateProgressMixin:Setup()
|
Nenue@81
|
241 self:UpdateXPGain()
|
Nenue@82
|
242
|
Nenue@82
|
243 if self.canGainXP then
|
Nenue@81
|
244 self.mode = 'xp'
|
Nenue@81
|
245 else
|
Nenue@81
|
246 self.mode = 'artifact'
|
Nenue@81
|
247 end
|
Nenue@81
|
248 print('setup mode:', self.mode)
|
Nenue@81
|
249 end
|
Nenue@81
|
250
|
Nenue@82
|
251 function VeneerWorldStateProgressMixin:OnEvent(event, ...)
|
Nenue@82
|
252 local lastMode = self.mode
|
Nenue@82
|
253 if event == 'PLAYER_LEVEL_UP' or event == 'ENABLE_XP_GAIN' or event == 'DISABLE_XP_GAIN' then
|
Nenue@81
|
254 self:UpdateXPGain()
|
Nenue@81
|
255 elseif event == 'ARTIFACT_XP_UPDATE' or event == 'ARTIFACT_UPDATE' then
|
Nenue@81
|
256 self.mode = 'artifact'
|
Nenue@82
|
257
|
Nenue@82
|
258 elseif event == 'PLAYER_EQUIPMENT_CHANGED' then
|
Nenue@82
|
259 local slot, hasEquip = ...
|
Nenue@82
|
260 if slot == 16 then
|
Nenue@82
|
261 self.mode = 'artifact'
|
Nenue@82
|
262 lastMode = nil
|
Nenue@82
|
263 end
|
Nenue@82
|
264 elseif event == 'PLAYER_XP_UPDATE' or event == 'PLAYER_LEVEL_UP' then
|
Nenue@82
|
265 print('forcing to XP mode')
|
Nenue@81
|
266 self.mode = 'xp'
|
Nenue@81
|
267 end
|
Nenue@82
|
268 self.modeChanged = (lastMode ~= self.mode)
|
Nenue@82
|
269 if self.modeChanged and self:IsVisible() then
|
Nenue@82
|
270 print('|cFF88FF00'..self:GetName()..'.TransitionFadeOut:Play()', event, ...)
|
Nenue@84
|
271 self:AnimateMode()
|
Nenue@82
|
272 else
|
Nenue@82
|
273 print('|cFFFFFF00'..self:GetName()..':Update()', event, ...)
|
Nenue@82
|
274 self:Update()
|
Nenue@82
|
275 end
|
Nenue@81
|
276 end
|
Nenue@81
|
277 function VeneerWorldStateProgressMixin:UpdateXPGain()
|
Nenue@82
|
278 self.canGainXP = (UnitLevel('player') < GetMaxPlayerLevel()) and (not IsXPUserDisabled())
|
Nenue@82
|
279 if not self.canGainXP then
|
Nenue@81
|
280 self.ProgressBar:SetColorTexture(0.75,0.75,0.75)
|
Nenue@81
|
281 end
|
Nenue@81
|
282 end
|
Nenue@81
|
283
|
Nenue@81
|
284 local GetEquippedArtifactInfo = _G.C_ArtifactUI.GetEquippedArtifactInfo
|
Nenue@81
|
285 local GetCostForPointAtRank = _G.C_ArtifactUI.GetCostForPointAtRank
|
Nenue@81
|
286 function VeneerWorldStateProgressMixin:Update()
|
Nenue@82
|
287 local hasNewInfo = false
|
Nenue@82
|
288 local progressChange = false
|
Nenue@82
|
289 print(' current mode:', self.mode)
|
Nenue@81
|
290
|
Nenue@81
|
291
|
Nenue@81
|
292 if self.mode == 'xp' then
|
Nenue@81
|
293 local xp = UnitXP('player')
|
Nenue@81
|
294 local xpMax = UnitXPMax('player')
|
Nenue@81
|
295 local bonusXP = GetXPExhaustion()
|
Nenue@81
|
296 if xp then
|
Nenue@81
|
297 self.progressPercent = xp / xpMax
|
Nenue@81
|
298 end
|
Nenue@82
|
299
|
Nenue@84
|
300 self.progressText = '|cFFFFCC00' .. UnitLevel('player') .. '|r ' .. xp .. '/' .. xpMax
|
Nenue@82
|
301
|
Nenue@82
|
302 if bonusXP then
|
Nenue@82
|
303 self.ProgressBar:SetColorTexture(0, 0.5,1)
|
Nenue@82
|
304 self.OverflowBar:Show()
|
Nenue@82
|
305 self.OverflowBar:ClearAllPoints()
|
Nenue@82
|
306 self.OverflowBar:SetPoint('BOTTOMLEFT', self.ProgressBar, 'BOTTOMRIGHT', 0, 0)
|
Nenue@82
|
307
|
Nenue@82
|
308 else
|
Nenue@82
|
309 self.ProgressBar:SetColorTexture(0.5,0,1)
|
Nenue@82
|
310 end
|
Nenue@82
|
311 hasNewInfo = (self.progressAmount ~= xp)
|
Nenue@82
|
312
|
Nenue@83
|
313 progressChange = (hasNewInfo and not self.modeChanged) and ((xp - self.progressAmount) / xpMax)
|
Nenue@82
|
314
|
Nenue@84
|
315 self.progressOverFlow = bonusXP
|
Nenue@82
|
316 self.progressAmount = xp
|
Nenue@82
|
317 self.progressMax = xpMax
|
Nenue@81
|
318 elseif self.mode == 'artifact' then
|
Nenue@81
|
319
|
Nenue@81
|
320 local itemID, altItemID, name, icon, totalXP, pointsSpent = GetEquippedArtifactInfo()
|
Nenue@82
|
321 print(' C_AUI:', itemID, altItemID, name, icon, totalXP, pointsSpent)
|
Nenue@82
|
322
|
Nenue@82
|
323 if itemID then
|
Nenue@82
|
324 local nextRankCost = GetCostForPointAtRank(pointsSpent) or 0
|
Nenue@82
|
325 hasNewInfo = (self.progressAmount ~= totalXP)
|
Nenue@83
|
326 progressChange = (hasNewInfo and not self.modeChanged) and (((totalXP - self.progressAmount) / nextRankCost))
|
Nenue@82
|
327
|
Nenue@82
|
328 if totalXP > nextRankCost then
|
Nenue@82
|
329 self.progressPercent = 1
|
Nenue@82
|
330 self.progressPercent = totalXP / nextRankCost
|
Nenue@82
|
331 end
|
Nenue@82
|
332
|
Nenue@82
|
333 self.progressText = name .. ' ('..pointsSpent .. '): '.. totalXP .. ' / ' .. nextRankCost
|
Nenue@82
|
334
|
Nenue@82
|
335 self.ProgressBar:SetColorTexture(1,0.5,0,1)
|
Nenue@82
|
336 self.OverflowBar:Hide()
|
Nenue@82
|
337
|
Nenue@84
|
338 self.progressOverFlow = 0
|
Nenue@82
|
339 self.progressAmount = totalXP
|
Nenue@82
|
340 self.progressMax = nextRankCost
|
Nenue@82
|
341 else
|
Nenue@82
|
342 self.progressAmount = 0
|
Nenue@82
|
343 self.progressMax = 1
|
Nenue@82
|
344 self.progressText = ''
|
Nenue@82
|
345 end
|
Nenue@82
|
346 end
|
Nenue@82
|
347
|
Nenue@82
|
348 if self.mode then
|
Nenue@82
|
349 self:SetSize(600,16)
|
Nenue@82
|
350 if hasNewInfo then
|
Nenue@82
|
351 self.timeOut = nil
|
Nenue@82
|
352 self.timeLived = 0
|
Nenue@82
|
353 if self.TransitionFadeOut:IsPlaying() then
|
Nenue@82
|
354 self.TransitionFadeOut:Stop()
|
Nenue@82
|
355 self:SetAlpha(1)
|
Nenue@82
|
356 end
|
Nenue@82
|
357 if not self:IsVisible() then
|
Nenue@82
|
358 self.TransitionFadeIn:Play()
|
Nenue@82
|
359 else
|
Nenue@82
|
360 self:ShowPanel()
|
Nenue@82
|
361 end
|
Nenue@82
|
362
|
Nenue@81
|
363 end
|
Nenue@81
|
364
|
Nenue@84
|
365 --print(self.ProgressBG:GetWidth())
|
Nenue@82
|
366 print(' Percent:', floor(self.progressPercent*100)/100, 'BarLength:', floor(self:GetWidth()* self.progressPercent), 'NewInfo:', hasNewInfo, 'IsShown:', self:IsShown())
|
Nenue@81
|
367
|
Nenue@81
|
368
|
Nenue@82
|
369 if progressChange then
|
Nenue@82
|
370 print(' Render change:', progressChange)
|
Nenue@82
|
371 self.ProgressAdded:Show()
|
Nenue@82
|
372 self.ProgressAdded:SetPoint('BOTTOMLEFT', self.ProgressBar, 'BOTTOMRIGHT', - (self:GetWidth() * progressChange), 0)
|
Nenue@82
|
373 self.ProgressAdded:SetPoint('TOPRIGHT', self.ProgressBar, 'TOPRIGHT', 0, 0)
|
Nenue@82
|
374 self.ProgressFlash:Play()
|
Nenue@81
|
375 end
|
Nenue@81
|
376
|
Nenue@82
|
377
|
Nenue@82
|
378 if self.progressPercent > 0 then
|
Nenue@82
|
379 self.ProgressBar:Show()
|
Nenue@82
|
380 self.ProgressBar:SetPoint('TOPRIGHT', self.ProgressBG, 'TOPLEFT', self:GetWidth()* self.progressPercent , 0)
|
Nenue@84
|
381 self.Label:SetText(self.progressText)
|
Nenue@82
|
382
|
Nenue@84
|
383 self.progressLeft = self.progressMax - self.progressAmount
|
Nenue@84
|
384 if self.progressOverflow >= self.progressLeft then
|
Nenue@84
|
385
|
Nenue@84
|
386 self.OverflowBar:SetPoint('TOPRIGHT', self.ProgressBar, 'TOPRIGHT', (self.progressOverflow / self.progressMax) * self:GetWidth(), 0)
|
Nenue@84
|
387 else
|
Nenue@84
|
388 self.OverflowBar:SetPoint('TOPRIGHT', self.ProgressBG, 'TOPRIGHT', 0, 0)
|
Nenue@84
|
389 end
|
Nenue@84
|
390
|
Nenue@82
|
391 else
|
Nenue@82
|
392 self.ProgressBar:Hide()
|
Nenue@82
|
393 end
|
Nenue@81
|
394 else
|
Nenue@84
|
395 --self:HidePanel()
|
Nenue@81
|
396 end
|
Nenue@81
|
397
|
Nenue@82
|
398 self.modeChanged = nil
|
Nenue@84
|
399 end
|
Nenue@84
|
400
|
Nenue@84
|
401 function VeneerWorldStateProgressMixin:OnMouseDown(button)
|
Nenue@84
|
402 if button == 'RightButton' then
|
Nenue@84
|
403 if self.keepOpen then
|
Nenue@84
|
404 self.keepOpen = nil
|
Nenue@84
|
405 else
|
Nenue@84
|
406 self.keepOpen = true
|
Nenue@84
|
407 end
|
Nenue@84
|
408 print('keepOpen =', self.keepOpen)
|
Nenue@84
|
409 else
|
Nenue@84
|
410 if self.mode == 'xp' then
|
Nenue@84
|
411 self.mode = 'artifact'
|
Nenue@84
|
412 else
|
Nenue@84
|
413 self.mode = 'xp'
|
Nenue@84
|
414 end
|
Nenue@84
|
415 self:AnimateMode()
|
Nenue@84
|
416 end
|
Nenue@84
|
417
|
Nenue@84
|
418 end
|
Nenue@84
|
419
|
Nenue@84
|
420 function VeneerWorldStateProgressMixin:AnimateMode()
|
Nenue@84
|
421
|
Nenue@84
|
422 self.TransitionFadeIn:Stop()
|
Nenue@84
|
423 print('|cFF88FF00'..self:GetName()..'.TransitionFadeOut:Play()')
|
Nenue@84
|
424 self.modeChanged = true
|
Nenue@84
|
425 self.TransitionFadeOut:Play()
|
Nenue@80
|
426 end |