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