Mercurial > wow > buffalo2
comparison ObjectiveTracker/Achievements.lua @ 30:7583684becf4
- implement procedural block contents generation
- redo anchor calculations to allow for transitional animation
- attempt to sort out event handling quirks related to autopopup quest completion and turn-in
- revise the data structures created by the different GetInfo's
- start on trimming out redundant variables
| author | Nenue |
|---|---|
| date | Thu, 14 Apr 2016 17:11:13 -0400 |
| parents | adcd7c328d07 |
| children | 9856ebc63fa4 |
comparison
equal
deleted
inserted
replaced
| 29:adcd7c328d07 | 30:7583684becf4 |
|---|---|
| 4 -- @file-revision@ @file-hash@ | 4 -- @file-revision@ @file-hash@ |
| 5 -- Created: 4/13/2016 7:48 PM | 5 -- Created: 4/13/2016 7:48 PM |
| 6 local B = select(2,...).frame | 6 local B = select(2,...).frame |
| 7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') | 7 local T = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') |
| 8 local band = bit.band | 8 local band = bit.band |
| 9 local ChatEdit_InsertLink, RemoveTrackedAchievement, GetAchievementLink, AchievementFrame, AchievementFrame_LoadUI = ChatEdit_InsertLink, RemoveTrackedAchievement, GetAchievementLink, AchievementFrame, AchievementFrame_LoadUI | 9 local RemoveTrackedAchievement, GetAchievementLink = RemoveTrackedAchievement, GetAchievementLink |
| 10 local AchievementFrame_ToggleAchievementFrame, AchievementFrame_SelectAchievement = AchievementFrame_ToggleAchievementFrame, AchievementFrame_SelectAchievement | 10 local AchievementFrame_ToggleAchievementFrame, AchievementFrame_SelectAchievement = AchievementFrame_ToggleAchievementFrame, AchievementFrame_SelectAchievement |
| 11 local GetTime, GetAchievementNumCriteria, GetAchievementCriteriaInfo = GetTime, GetAchievementNumCriteria, GetAchievementCriteriaInfo | 11 local GetTime, GetAchievementNumCriteria, GetAchievementCriteriaInfo = GetTime, GetAchievementNumCriteria, GetAchievementCriteriaInfo |
| 12 local GetNumTrackedAchievements, GetTrackedAchievements, GetAchievementInfo = GetNumTrackedAchievements, GetTrackedAchievements, GetAchievementInfo | 12 local GetNumTrackedAchievements, GetTrackedAchievements, GetAchievementInfo = GetNumTrackedAchievements, GetTrackedAchievements, GetAchievementInfo |
| 13 local Default, Cheevs = T.DefaultHandler, T.Cheevs | 13 local Default, Cheevs = T.DefaultHandler, T.Cheevs |
| 14 local print = B.print('Tracker') | 14 local print = B.print('Tracker') |
| 27 | 27 |
| 28 self.Info[cheevID] = {} | 28 self.Info[cheevID] = {} |
| 29 local c = self.Info[cheevID] | 29 local c = self.Info[cheevID] |
| 30 c.type = 'Cheevs' | 30 c.type = 'Cheevs' |
| 31 c.watchIndex = index | 31 c.watchIndex = index |
| 32 c.id = cheevID | |
| 32 c.cheevID = cheevID | 33 c.cheevID = cheevID |
| 33 c.title = name | 34 c.title = name |
| 34 c.points, c.completed, c.month, c.day, c.year, c.description, c.flags, c.icon, c.rewardText, c.isGuildAch, c.wasEarnedByMe, c.earnedBy = | 35 c.points, c.completed, c.month, c.day, c.year, c.description, c.flags, c.icon, c.rewardText, c.isGuildAch, c.wasEarnedByMe, c.earnedBy = |
| 35 points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy | 36 points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy |
| 36 c.numObjectives = GetAchievementNumCriteria(cheevID) | 37 c.numObjectives = GetAchievementNumCriteria(cheevID) |
| 38 | |
| 39 local tagInfo = {} | |
| 40 | |
| 41 | |
| 37 c.objectives = {} | 42 c.objectives = {} |
| 38 for i = 1, c.numObjectives do | 43 for i = 1, c.numObjectives do |
| 39 local description, type, completed, quantity, requiredQuantity, characterName, flags, assetID, quantityString, criteriaID = GetAchievementCriteriaInfo(cheevID, i) | 44 local description, type, completed, quantity, requiredQuantity, characterName, flags, assetID, quantityString, criteriaID = GetAchievementCriteriaInfo(cheevID, i) |
| 40 c.objectives[i] = { | 45 c.objectives[i] = { |
| 41 objectiveIndex = i, | 46 objectiveIndex = i, |
| 52 criteriaID = criteriaID, | 57 criteriaID = criteriaID, |
| 53 } | 58 } |
| 54 end | 59 end |
| 55 print('Cheevs.|cFF0088FFGetInfo|r('..index..')', 'obj:', GetAchievementNumCriteria(cheevID), name, description) | 60 print('Cheevs.|cFF0088FFGetInfo|r('..index..')', 'obj:', GetAchievementNumCriteria(cheevID), name, description) |
| 56 | 61 |
| 62 c.tagInfo = tagInfo | |
| 57 self.WatchInfo[index] = c | 63 self.WatchInfo[index] = c |
| 58 return self.Info[cheevID] | 64 return self.Info[cheevID] |
| 59 end | 65 end |
| 60 | 66 |
| 61 --- Content handlers | 67 --- Content handlers |
| 62 Cheevs.UpdateLine = function(handler, block, line, data) | 68 Cheevs.UpdateLine = function(handler, block, line, data) |
| 63 local print = B.print('CheevsLine') | 69 local print = B.print('CheevsLine') |
| 70 local attachment | |
| 64 line.progress = 0 | 71 line.progress = 0 |
| 65 print(' ', data.objectiveIndex,'|cFF0088FF-|r', data.objectiveType, data.text) | 72 print(' ', data.objectiveIndex,'|cFF0088FF-|r', data.objectiveType, data.text) |
| 66 if data.flags then | 73 if data.flags then |
| 67 if band(data.flags, 0x00000001) > 0 then | 74 if band(data.flags, 0x00000001) > 0 then |
| 68 line.format = "%d/%d" | 75 line.format = "%d/%d" |
| 80 | 87 |
| 81 line.displayText = data.text | 88 line.displayText = data.text |
| 82 end | 89 end |
| 83 print('line.type =', data.type) | 90 print('line.type =', data.type) |
| 84 print(' ** qtyStr:', data.quantityString, 'qty:', data.quantity, 'assetID:', data.assetID) | 91 print(' ** qtyStr:', data.quantityString, 'qty:', data.quantity, 'assetID:', data.assetID) |
| 92 return line.displayText, line.widget | |
| 85 end | 93 end |
| 86 | 94 |
| 87 Cheevs.Select = function(self) | 95 Cheevs.Select = function(self, block) |
| 88 T:Update(Cheevs.updateReasonModule) | 96 Cheevs.Link(self, block) |
| 89 end | 97 end |
| 90 | 98 |
| 91 Cheevs.Remove = function(self) | 99 Cheevs.Remove = function(self, block) |
| 92 | 100 |
| 93 RemoveTrackedAchievement(self.info.cheevID) | 101 RemoveTrackedAchievement(block.info.cheevID) |
| 94 end | 102 end |
| 95 Cheevs.OnMouseUp = function(self, button) | 103 Cheevs.OnMouseUp = function(self, button) |
| 96 | 104 |
| 97 Default.OnMouseUp(self, button) | 105 Default.OnMouseUp(self, button) |
| 98 end | 106 end |
| 99 Cheevs.Link = function(self) | 107 Cheevs.Link = function(self, block) |
| 100 | 108 local achievementLink = GetAchievementLink(block.info.cheevID); |
| 101 local achievementLink = GetAchievementLink(self.info.cheevID); | |
| 102 if ( achievementLink ) then | 109 if ( achievementLink ) then |
| 103 ChatEdit_InsertLink(achievementLink); | 110 _G.ChatEdit_InsertLink(achievementLink); |
| 104 end | 111 end |
| 105 end | 112 end |
| 106 | 113 |
| 107 Cheevs.Open = function(self) | 114 Cheevs.Open = function(self, block) |
| 108 | 115 |
| 109 if ( not AchievementFrame ) then | 116 if ( not _G.AchievementFrame ) then |
| 110 AchievementFrame_LoadUI(); | 117 _G.AchievementFrame_LoadUI(); |
| 111 end | 118 end |
| 112 if ( not AchievementFrame:IsShown() ) then | 119 if ( not _G.AchievementFrame:IsShown() ) then |
| 113 AchievementFrame_ToggleAchievementFrame(); | 120 _G.AchievementFrame_ToggleAchievementFrame(); |
| 114 end | 121 end |
| 115 AchievementFrame_SelectAchievement(self.info.cheevID); | 122 _G.AchievementFrame_SelectAchievement(block.info.cheevID); |
| 116 end | 123 end |
