comparison ObjectiveUI.lua @ 1:b0447b382f36

sorting client events from maintenance logic implemented all that action buttons entail for quest items
author Nenue
date Wed, 30 Mar 2016 16:30:49 -0400
parents 3dbcad2b387d
children a2396b03ce63
comparison
equal deleted inserted replaced
0:3dbcad2b387d 1:b0447b382f36
18 Tracker.Report = function(self) 18 Tracker.Report = function(self)
19 print('Stats:', self.numWatched,'items tracked,', self.numBlocks,'blocks assigned.') 19 print('Stats:', self.numWatched,'items tracked,', self.numBlocks,'blocks assigned.')
20 end 20 end
21 21
22 Tracker.OnMouseUp = function(self, button) 22 Tracker.OnMouseUp = function(self, button)
23 if button == 'LeftButton' then 23
24 if self.initialButton == 'LeftButton' then
24 self:Select() 25 self:Select()
25 mod.UpdateWrapper() 26 mod.UpdateWrapper()
27 if self.modShift then
28 self:Remove()
29 end
26 elseif button == 'RightButton' then 30 elseif button == 'RightButton' then
27 self:Open() 31 self:Open()
28 end 32 end
33 self.initialButton = nil
34 self.modShift = nil
29 print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r ->',self.info.trackingID) 35 print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r ->',self.info.trackingID)
30 end 36 end
31 37
32 Tracker.OnMouseDown = function(self, button) 38 Tracker.OnMouseDown = function(self, button)
39 self.initialButton = button
40 self.modShift = IsShiftKeyDown()
33 if button == 'LeftButton' then 41 if button == 'LeftButton' then
34 self:SetStyle('Active') 42 self:SetStyle('Active')
35 end 43 end
36 print(self.info.title) 44 print(self.info.title)
37 end 45 end
46 Quest.name = "Quests" 54 Quest.name = "Quests"
47 Quest.Select = function(self) 55 Quest.Select = function(self)
48 SetSuperTrackedQuestID(self.info.questID) 56 SetSuperTrackedQuestID(self.info.questID)
49 end 57 end
50 Quest.Open = function(self) 58 Quest.Open = function(self)
51 print('something something quest log') 59 QuestMapFrame_OpenToQuestDetails(self.info.questID)
52 QuestMapFrame_ShowQuestDetails(self.info.questID) 60 end
53 ToggleQuestLog() 61
62 Quest.Remove = function(self)
63 RemoveQuestWatch(self.info.questIndex)
64 QuestPOIUpdateIcons()
54 end 65 end
55 66
56 67
57 ----------------------------- 68 -----------------------------
58 --- CHEEVS 69 --- CHEEVS
60 end 71 end
61 72
62 Cheevs.Open = function(self) 73 Cheevs.Open = function(self)
63 end 74 end
64 75
76 ----------------------------------------------------------------------------------------
77 --- frame template and scripts lifted from "QuestKing 2" by Barjack
78 --- url: http://mods.curse.com/addons/wow/questking
79 ----------------------------------------------------------------------------------------
80 local usedButtons = mod.Quest.itemButtons
81 local freeButtons = mod.Quest.freeButtons
82 mod.SetItemButton = function(block, info)
83 local itemInfo = info.specialItem
84 if not itemInfo then
85 return
86 end
87 --- .specialItem :: {link = link, charges = charges, icon = icon, start = start, duration = duration, enable = enable}
88
89
90 local itemButton
91 if not info.itemButton then
92 if #freeButtons >= 1 then
93 print('|cFF00FFFFfound a free button')
94 itemButton = freeButtons[#freeButtons]
95 freeButtons[#freeButtons] = nil
96 else
97 print('|cFFFF4400starting new button')
98 local buttonIndex = mod.Quest.numButtons + #freeButtons + 1
99 itemButton = CreateFrame('Button', 'VeneerQuestItemButton' .. buttonIndex, UIParent, 'VeneerItemButtonTemplate')
100 itemButton.buttonIndex = buttonIndex
101 itemButton:SetSize(48, 48)
102 itemButton:GetNormalTexture():SetSize(80,80)
103 end
104 mod.Quest.numButtons = mod.Quest.numButtons + 1
105 else
106 print('|cFF00FF00found assigned button')
107 itemButton = info.itemButton
108 end
109 -- set values
110 info.itemButton = itemButton
111 block.itemButton = itemButton
112 usedButtons[info.questLogIndex] = itemButton
113
114 itemButton:SetAttribute("type", "item")
115 itemButton:SetAttribute("item", itemInfo.link)
116
117 itemButton.questLogIndex = info.questLogIndex
118 itemButton.charges = itemInfo.charges
119 itemButton.rangeTimer = -1
120 itemButton.block = block
121
122 SetItemButtonTexture(itemButton, itemInfo.icon)
123 SetItemButtonCount(itemButton, itemInfo.charges)
124 Veneer_QuestObjectiveItem_UpdateCooldown(itemButton);
125
126 return itemButton
127 end
128 --- Clear an itemButton from the given block
129 mod.FreeItemButton = function(block, itemButton)
130 if block.itemButton ~= itemButton then
131 print('|cFFFF0088trying to release mismatched action button')
132 return
133 end
134
135 block.itemButton = nil
136 block.icon:Hide()
137
138 itemButton.block = nil
139 itemButton:Hide()
140
141 usedButtons[itemButton.questLogIndex] = nil
142 freeButtons[#freeButtons + 1] = itemButton
143 mod.Quest.numButtons = mod.Quest.numButtons - 1
144 print('|cFFFF0088released', itemButton:GetName(),'from', block:GetName())
145 end
146
147 function Veneer_QuestObjectiveItem_OnUpdate (self, elapsed)
148 -- Handle range indicator
149 local rangeTimer = self.rangeTimer
150 if (rangeTimer) then
151 rangeTimer = rangeTimer - elapsed
152 if (rangeTimer <= 0) then
153 local link, item, charges, showItemWhenComplete = GetQuestLogSpecialItemInfo(self.questLogIndex)
154 if ((not charges) or (charges ~= self.charges)) then
155 QuestKing:UpdateTracker()
156 return
157 end
158
159 local count = self.HotKey
160 local valid = IsQuestLogSpecialItemInRange(self.questLogIndex)
161 if (valid == 0) then
162 count:Show()
163 count:SetVertexColor(1.0, 0.1, 0.1)
164 elseif (valid == 1) then
165 count:Show()
166 count:SetVertexColor(0.6, 0.6, 0.6)
167 else
168 count:Hide()
169 end
170 rangeTimer = TOOLTIP_UPDATE_TIME
171 end
172
173 self.rangeTimer = rangeTimer
174 end
175 end
176
177 function Veneer_QuestObjectiveItem_UpdateCooldown (itemButton)
178 local start, duration, enable = GetQuestLogSpecialItemCooldown(itemButton.questLogIndex)
179 if (start) then
180 CooldownFrame_SetTimer(itemButton.Cooldown, start, duration, enable)
181 if (duration > 0 and enable == 0) then
182 SetItemButtonTextureVertexColor(itemButton, 0.4, 0.4, 0.4)
183 else
184 SetItemButtonTextureVertexColor(itemButton, 1, 1, 1)
185 end
186 end
187 end