Mercurial > wow > worldplan
comparison ClassPlan.lua @ 5:4e1883842abf
- use of SetShown() for combat visibility toggle
| author | Nenue |
|---|---|
| date | Tue, 18 Oct 2016 01:50:06 -0400 |
| parents | 4c7e9efec4b5 |
| children | 48001b6a9496 |
comparison
equal
deleted
inserted
replaced
| 4:4c7e9efec4b5 | 5:4e1883842abf |
|---|---|
| 69 if self:IsVisible() then | 69 if self:IsVisible() then |
| 70 self:Refresh() | 70 self:Refresh() |
| 71 end | 71 end |
| 72 end | 72 end |
| 73 | 73 |
| 74 MissionsHandler.OnGetItem = function(data) | |
| 75 if data.missionEndTime < GI_currentTime then | |
| 76 data.isComplete = true | |
| 77 end | |
| 78 end | |
| 79 | |
| 74 MissionsHandler.FreeBlock = function(self, block) | 80 MissionsHandler.FreeBlock = function(self, block) |
| 75 end | 81 end |
| 76 | 82 |
| 77 MissionsHandler.SortHandler = function (a,b) | 83 MissionsHandler.SortHandler = function (a,b) |
| 78 local result = false | 84 local result = false |
| 201 self:Refresh() | 207 self:Refresh() |
| 202 end | 208 end |
| 203 end | 209 end |
| 204 | 210 |
| 205 function core:OnLoad () | 211 function core:OnLoad () |
| 206 self:RegisterUnitEvent('UNIT_PORTRAIT_UPDATE', 'player') | |
| 207 self:RegisterEvent('PLAYER_LOGIN') | 212 self:RegisterEvent('PLAYER_LOGIN') |
| 208 self:RegisterEvent('PLAYER_ENTERING_WORLD') | 213 self:RegisterEvent('PLAYER_ENTERING_WORLD') |
| 209 self:RegisterEvent('ADDON_LOADED') | 214 self:RegisterEvent('ADDON_LOADED') |
| 210 self:RegisterEvent('PLAYER_REGEN_ENABLED') | 215 self:RegisterEvent('PLAYER_REGEN_ENABLED') |
| 216 self:RegisterEvent('PLAYER_REGEN_DISABLED') | |
| 211 -- Blizzard_GarrisonUI already fires a shipment data request for GARRISON_SHIPMENT_RECEIVED; this is unlikely to | 217 -- Blizzard_GarrisonUI already fires a shipment data request for GARRISON_SHIPMENT_RECEIVED; this is unlikely to |
| 212 | 218 |
| 213 | 219 |
| 214 self:AddHandler('missions', MissionsHandler) | 220 self:AddHandler('missions', MissionsHandler) |
| 215 self:AddHandler('shipments', ShipmentsHandler) | 221 self:AddHandler('shipments', ShipmentsHandler) |
| 221 function core:Reanchor() | 227 function core:Reanchor() |
| 222 | 228 |
| 223 | 229 |
| 224 self:ClearAllPoints() | 230 self:ClearAllPoints() |
| 225 | 231 |
| 232 local anchorTo = 'TOP' | |
| 226 self.anchorParent = UIParent | 233 self.anchorParent = UIParent |
| 227 for i, name in ipairs(parentFrames) do | 234 for i, name in ipairs(parentFrames) do |
| 228 local frame = _G[name] | 235 local frame = _G[name] |
| 229 if frame then | 236 if frame then |
| 230 if not BOUND_FRAMES[frame] then | 237 if not BOUND_FRAMES[frame] then |
| 231 BOUND_FRAMES[frame] = {visible = frame:IsVisible()} | 238 BOUND_FRAMES[frame] = {visible = (frame:IsVisible() and frame:IsShown())} |
| 232 hooksecurefunc(frame, 'Show', function() | 239 hooksecurefunc(frame, 'Show', function() |
| 233 BOUND_FRAMES[frame].visible = true | 240 BOUND_FRAMES[frame].visible = true |
| 234 print(frame:GetName(), 'Show', 'reanchor trigger') | 241 print(frame:GetName(), 'Show', 'reanchor trigger') |
| 235 self:Reanchor() | 242 self:Reanchor() |
| 236 end) | 243 end) |
| 237 hooksecurefunc(frame, 'Hide', function() | 244 hooksecurefunc(frame, 'Hide', function() |
| 238 BOUND_FRAMES[frame].visible = false | 245 BOUND_FRAMES[frame].visible = nil |
| 239 print(frame:GetName(), 'Hide', 'reanchor trigger') | 246 print(frame:GetName(), 'Hide', 'reanchor trigger') |
| 240 self:Reanchor() | 247 self:Reanchor() |
| 241 end) | 248 end) |
| 242 end | 249 end |
| 243 print('f:', frame:GetName(), frame:IsVisible()) | 250 print('f:', frame:GetName(), BOUND_FRAMES[frame].visible) |
| 244 if BOUND_FRAMES[frame].visible then | 251 if BOUND_FRAMES[frame].visible then |
| 245 self.anchorParent = frame | 252 self.anchorParent = frame |
| 253 anchorTo = 'BOTTOM' | |
| 246 break | 254 break |
| 247 end | 255 end |
| 248 end | 256 end |
| 249 end | 257 end |
| 250 print('|cFFFF8800Using ' .. tostring(self.anchorParent:GetName()) .. ' as anchor point') | 258 print('|cFFFF8800Using ' .. tostring(self.anchorParent:GetName()) .. '-'..anchorTo..' as anchor point') |
| 251 | 259 |
| 252 if self:IsVisible() then | 260 if self:IsShown() then |
| 253 self:SetPoint('TOP', ClassPlanButton, 'BOTTOM', 0, 0) | |
| 254 ClassPlanButton.Background:Show() | 261 ClassPlanButton.Background:Show() |
| 255 ClassPlanButton:SetWidth(600) | 262 ClassPlanButton:SetWidth(600) |
| 256 else | 263 else |
| 257 ClassPlanButton.Background:Hide() | 264 ClassPlanButton.Background:Hide() |
| 258 ClassPlanButton:SetWidth(200) | 265 ClassPlanButton:SetWidth(200) |
| 259 end | 266 end |
| 260 | 267 |
| 261 ClassPlanButton:SetPoint('TOP', self.anchorParent, (self.anchorPoint == UIParent) and 'TOP' or 'BOTTOM', 0, 0) | 268 self:SetPoint('TOP', ClassPlanButton, 'BOTTOM', 0, 0) |
| 262 | 269 ClassPlanButton:ClearAllPoints() |
| 270 ClassPlanButton:SetPoint('TOP', self.anchorParent, anchorTo, 0, 0) | |
| 271 | |
| 272 print(ClassPlanButton:GetPoint(1)) | |
| 263 end | 273 end |
| 264 | 274 |
| 265 function core:AddHandler(name, prototype) | 275 function core:AddHandler(name, prototype) |
| 266 self.prototypes[name] = setmetatable(prototype, { | 276 self.prototypes[name] = setmetatable(prototype, { |
| 267 __index = blockTemplate, | 277 __index = blockTemplate, |
| 309 end | 319 end |
| 310 end | 320 end |
| 311 | 321 |
| 312 function core:OnEvent (event, ...) | 322 function core:OnEvent (event, ...) |
| 313 print(event) | 323 print(event) |
| 314 if event == 'UNIT_PORTRAIT_UPDATE' then | 324 if event == 'PLAYER_REGEN_DISABLED' then |
| 315 SetPortraitTexture(self.portrait, 'player') | 325 self:SetShown(false) |
| 326 elseif event == 'PLAYER_REGEN_ENABLED' then | |
| 327 self:SetShown(true) | |
| 316 elseif event == 'PLAYER_LOGIN' then | 328 elseif event == 'PLAYER_LOGIN' then |
| 317 if not self.initialized then | 329 if not self.initialized then |
| 318 self:Setup() | 330 self:Setup() |
| 319 end | 331 end |
| 320 elseif self.initialized and self.events[event] then | 332 elseif self.initialized and self.events[event] then |
| 332 | 344 |
| 333 | 345 |
| 334 local SetOwnerData = function(self, data) | 346 local SetOwnerData = function(self, data) |
| 335 local name, realm = string.match(data.profileKey, "(.+)%-(.+)") | 347 local name, realm = string.match(data.profileKey, "(.+)%-(.+)") |
| 336 local ownerText = '|c'.. data.classColor.colorStr .. name .. '|r' | 348 local ownerText = '|c'.. data.classColor.colorStr .. name .. '|r' |
| 337 if realm ~= GI_currentRealm then | 349 --if realm ~= GI_currentRealm then |
| 338 ownerText = ownerText .. ' (' .. realm .. ')' | 350 --ownerText = ownerText .. ' (' .. realm .. ')' |
| 339 end | 351 --end |
| 340 self.Owner:SetText(ownerText) | 352 self.Owner:SetText(ownerText) |
| 341 self.Background:SetColorTexture(data.classColor.r, data.classColor.g, data.classColor.b) | 353 self.Name:SetTextColor(data.classColor.r, data.classColor.g, data.classColor.b) |
| 354 | |
| 355 if self.isComplete then | |
| 356 self.TimeLeft:SetText('Complete!') | |
| 357 self.Background:SetColorTexture(.25,.25,.25,1) | |
| 358 else | |
| 359 self.Background:SetColorTexture(0,0,0,0.5) | |
| 360 end | |
| 361 | |
| 342 end | 362 end |
| 343 | 363 |
| 344 function core:RefreshItems(configKey, prototype) | 364 function core:RefreshItems(configKey, prototype) |
| 345 local sortedItems = self.sortedItems[configKey] | 365 local sortedItems = self.sortedItems[configKey] |
| 346 | 366 |
| 374 if type(block[k]) ~= 'function' then | 394 if type(block[k]) ~= 'function' then |
| 375 block[k] = v | 395 block[k] = v |
| 376 end | 396 end |
| 377 end | 397 end |
| 378 block:Refresh(data) | 398 block:Refresh(data) |
| 399 print(block.isComplete, block.missionEndTime, block.name) | |
| 379 SetOwnerData(block, data) | 400 SetOwnerData(block, data) |
| 380 | 401 |
| 381 block:Show() | 402 block:Show() |
| 382 lastProfile = data.profileKey | 403 lastProfile = data.profileKey |
| 383 end | 404 end |
| 406 self:Reanchor() | 427 self:Reanchor() |
| 407 self:SetHeight(self.currentHeight) | 428 self:SetHeight(self.currentHeight) |
| 408 end | 429 end |
| 409 | 430 |
| 410 function core:Toggle() | 431 function core:Toggle() |
| 411 if self:IsVisible() then | 432 if self:IsShown() then |
| 412 self:Hide() | 433 self:Hide() |
| 413 else | 434 else |
| 414 self:Show() | 435 self:Show() |
| 415 end | 436 end |
| 416 | 437 |
| 417 if self.data then | 438 if self.data then |
| 418 self.data.IsShown = self:IsVisible() | 439 self.data.IsShown = self:IsShown() |
| 419 end | 440 end |
| 420 end | 441 end |
| 421 | 442 |
| 422 function core:OnUpdate() | 443 function core:OnUpdate() |
| 423 if self.fadeTimer and self.fadeTimer < GetTime() then | 444 if self.fadeTimer and self.fadeTimer < GetTime() then |
| 481 end | 502 end |
| 482 end | 503 end |
| 483 end | 504 end |
| 484 | 505 |
| 485 function MissionsHandler:OnComplete() | 506 function MissionsHandler:OnComplete() |
| 486 self.isComplete = true | 507 print('flagging complete', self.name) |
| 487 self:Refresh() | 508 self:Refresh() |
| 488 end | 509 end |
| 489 | 510 |
| 490 function MissionsHandler:OnUpdate() | 511 function MissionsHandler:OnUpdate() |
| 491 if self.isComplete then | 512 if self.isComplete then |
| 515 | 536 |
| 516 | 537 |
| 517 local r,g,b = 1, 1, 1 | 538 local r,g,b = 1, 1, 1 |
| 518 if self.isRare then | 539 if self.isRare then |
| 519 r,g,b = 0.1, 0.4, 1 | 540 r,g,b = 0.1, 0.4, 1 |
| 541 self.IconBorder:SetVertexColor(r, g, b, 1) | |
| 520 end | 542 end |
| 521 | 543 |
| 522 | 544 |
| 523 --self.missionData = data | 545 --self.missionData = data |
| 524 self.Label:SetText(self.name) | 546 self.Name:SetText(self.name) |
| 525 self.Label:SetTextColor(r, g, b) | |
| 526 | 547 |
| 527 if #self.rewards >= 1 then | 548 if #self.rewards >= 1 then |
| 528 self.Icon:SetTexture(self.rewards[1].icon or GetItemIcon(self.rewards[1].itemID)) | 549 self.Icon:SetTexture(self.rewards[1].icon or GetItemIcon(self.rewards[1].itemID)) |
| 529 self.rewardInfo = self.rewards[1] | 550 self.rewardInfo = self.rewards[1] |
| 530 else | 551 else |
| 531 self.Icon:SetAtlas(self.typeAtlas, false) | 552 self.Icon:SetAtlas(self.typeAtlas, false) |
| 532 end | 553 end |
| 533 if self.isComplete then | |
| 534 self.TimeLeft:SetText('Complete!') | |
| 535 end | |
| 536 | |
| 537 self.Background:SetAlpha(self.isComplete and 1 or 0.1) | |
| 538 end | 554 end |
| 539 | 555 |
| 540 | 556 |
| 541 function MissionsHandler:OnEnter() | 557 function MissionsHandler:OnEnter() |
| 542 if self.rewardInfo and self.rewardInfo.itemID then | 558 if self.rewardInfo and self.rewardInfo.itemID then |
