Mercurial > wow > buffalo2
comparison ObjectiveFrame.lua @ 4:18eee961038e
- more action button debug
| author | Nenue |
|---|---|
| date | Thu, 31 Mar 2016 14:28:40 -0400 |
| parents | 3397aae1f44d |
| children | e9b61fd5f607 |
comparison
equal
deleted
inserted
replaced
| 3:3397aae1f44d | 4:18eee961038e |
|---|---|
| 385 --- todo: implement objective displays | 385 --- todo: implement objective displays |
| 386 -- in an accumulator loop, call upon handler for the appropriate display frame, each defining: | 386 -- in an accumulator loop, call upon handler for the appropriate display frame, each defining: |
| 387 -- * height of whatever display widget is involved in conveying the task | 387 -- * height of whatever display widget is involved in conveying the task |
| 388 -- * number of non-wrapped text lines to account for line space; may be discarded depending on things | 388 -- * number of non-wrapped text lines to account for line space; may be discarded depending on things |
| 389 -- * boolean that determines listening for money events or not | 389 -- * boolean that determines listening for money events or not |
| 390 t.attachmentHeight = 0 | 390 t.attachmentHeight, text = mod.UpdateObjectives(t, info, text) |
| 391 for o, obj in ipairs(t.info.objectives) do | 391 |
| 392 --- achievement criteria | |
| 393 if obj.flags then | |
| 394 | |
| 395 if bit.band(obj.flags, 0x00000001) > 0 then | |
| 396 obj.type = 'ProgressBar' | |
| 397 obj.widget = mod.SetWidget(obj, info) | |
| 398 elseif bit.band(obj.flags, 0x00000002) then | |
| 399 obj.type = 'Hidden' | |
| 400 obj.widget = nil | |
| 401 else | |
| 402 obj.type = 'Text' | |
| 403 obj.widget = nil | |
| 404 text = text .. ((text == '') and "" or "\n") .. obj.text | |
| 405 end | |
| 406 | |
| 407 print(obj.type, obj.text, obj.quantityString) | |
| 408 --- none of the above (most quests) | |
| 409 else | |
| 410 local line = obj.text | |
| 411 if obj.type == 'monster' then | |
| 412 line = '|cFFFFFF00' .. line .. '|r' | |
| 413 elseif obj.type == 'item' then | |
| 414 line = '|cFF44BBFF' .. line .. '|r' | |
| 415 elseif obj.type == 'object' then | |
| 416 line = '|cFFFFFFFF' .. line .. '|r' | |
| 417 end | |
| 418 text = text .. ((text == '') and "" or "\n") .. line | |
| 419 end | |
| 420 | |
| 421 if obj.widget then | |
| 422 t.attachmentHeight = t.attachmentHeight + obj.widget.height | |
| 423 end | |
| 424 | |
| 425 end | |
| 426 t.objectives:SetText(text) | 392 t.objectives:SetText(text) |
| 427 t.objectives:SetWordWrap(true) | 393 t.objectives:SetWordWrap(true) |
| 428 | 394 |
| 429 | |
| 430 -- todo: set up a SecureActionButton template | |
| 431 if info.specialItem and not info.itemButton then | |
| 432 print(' - |cFF00FFFFupdate item button') | |
| 433 mod.SetItemButton(t, info) | |
| 434 end | |
| 435 | 395 |
| 436 | 396 |
| 437 elseif info.description then | 397 elseif info.description then |
| 438 t.objectives:SetText(info.description) | 398 t.objectives:SetText(info.description) |
| 439 t.objectives:SetWordWrap(true) | 399 t.objectives:SetWordWrap(true) |
| 445 style = 'Complete' | 405 style = 'Complete' |
| 446 elseif info.superTracked then | 406 elseif info.superTracked then |
| 447 style = 'Super' | 407 style = 'Super' |
| 448 end | 408 end |
| 449 | 409 |
| 410 if info.specialItem then | |
| 411 print(' - |cFF00FFFFupdate item button') | |
| 412 info.itemButton = mod.SetItemButton(t, info) | |
| 413 else | |
| 414 --info.itemButton = nil | |
| 415 end | |
| 416 | |
| 450 --- metrics are calculated in SetStyle | 417 --- metrics are calculated in SetStyle |
| 451 t:SetStyle(style) | 418 t:SetStyle(style) |
| 452 t:Show() | 419 t:Show() |
| 453 | 420 |
| 454 print(' |cFF00FFFF)|r -> ', t, t:GetHeight()) | 421 print(' |cFF00FFFF)|r -> ', t, t:GetHeight()) |
| 455 return t | 422 return t |
| 423 end | |
| 424 | |
| 425 mod.UpdateObjectives = function(block, info, text) | |
| 426 local attachmentHeight = 0 | |
| 427 for o, obj in ipairs(info.objectives) do | |
| 428 --- achievement criteria | |
| 429 if obj.flags then | |
| 430 | |
| 431 | |
| 432 if bit.band(obj.flags, 0x00000001) > 0 then | |
| 433 obj.type = 'ProgressBar' | |
| 434 obj.widget = mod.SetWidget(obj, info) | |
| 435 elseif bit.band(obj.flags, 0x00000002) then | |
| 436 obj.type = 'Hidden' | |
| 437 obj.widget = nil | |
| 438 else | |
| 439 obj.type = 'Text' | |
| 440 obj.widget = nil | |
| 441 text = text .. ((text == '') and "" or "\n") .. obj.text | |
| 442 end | |
| 443 | |
| 444 print(obj.type, obj.text, obj.quantityString) | |
| 445 --- none of the above (most quests) | |
| 446 else | |
| 447 local line = obj.text | |
| 448 local color = '00FFFF' | |
| 449 if obj.finished then | |
| 450 color = 'FFFFFF' | |
| 451 elseif obj.type == 'monster' then | |
| 452 color = 'FFFF00' | |
| 453 elseif obj.type == 'item' then | |
| 454 color = '44DDFF' | |
| 455 elseif obj.type == 'object' then | |
| 456 color = 'FF44DD' | |
| 457 end | |
| 458 text = text .. ((text == '') and "" or "\n") .. '|cFF'..color.. line .. '|r' | |
| 459 end | |
| 460 | |
| 461 if obj.widget then | |
| 462 attachmentHeight = attachmentHeight + obj.widget.height | |
| 463 end | |
| 464 | |
| 465 end | |
| 466 return attachmentHeight, text | |
| 456 end | 467 end |
| 457 | 468 |
| 458 mod.UpdateTracker = function(handler) | 469 mod.UpdateTracker = function(handler) |
| 459 print('|cFF00FF88UpdateTracker(|r|cFFFF4400' .. type(handler) .. '|r :: |cFF88FFFF' .. tostring(handler) .. '|r') | 470 print('|cFF00FF88UpdateTracker(|r|cFFFF4400' .. type(handler) .. '|r :: |cFF88FFFF' .. tostring(handler) .. '|r') |
| 460 local tracker = handler.Tracker | 471 local tracker = handler.Tracker |
| 601 mod.UpdateActionButtons = function() | 612 mod.UpdateActionButtons = function() |
| 602 local previousItem | 613 local previousItem |
| 603 for questID, itemButton in pairs(usedButtons) do | 614 for questID, itemButton in pairs(usedButtons) do |
| 604 local questIndex = mod.Quest.Info[questID].questLogIndex | 615 local questIndex = mod.Quest.Info[questID].questLogIndex |
| 605 print('|cFF00FFFF', questID, itemButton:GetName()) | 616 print('|cFF00FFFF', questID, itemButton:GetName()) |
| 606 local block = mod.Quest.LogBlock[questID] | 617 local block = mod.Quest.LogBlock[questIndex] |
| 607 print(block:GetTop()) | |
| 608 if block then | 618 if block then |
| 619 print(block:GetTop()) | |
| 609 if IsQuestWatched(questIndex) then | 620 if IsQuestWatched(questIndex) then |
| 610 -- Dispatch the probe | 621 -- Dispatch the probe |
| 611 block:SetScript('OnUpdate', function() | 622 block:SetScript('OnUpdate', function() |
| 612 print('|cFFFFFF00probing', block:GetName()) | 623 print('|cFFFFFF00probing', block:GetName()) |
| 613 if block:GetBottom() then | 624 if block:GetBottom() and not InCombatLockdown() then |
| 614 print('|cFF00FF00ding ding ding!') | 625 print('|cFF00FF00ding ding ding!') |
| 615 mod.UpdateBlockAction(block, itemButton, previousItem) | 626 mod.UpdateBlockAction(block, itemButton, previousItem) |
| 616 block:SetScript('OnUpdate', nil) | 627 block:SetScript('OnUpdate', nil) |
| 617 end | 628 end |
| 618 end) | 629 end) |
