madcatzinc@13
|
1 --~ Warcraft Plugin for Cyborg MMO7
|
madcatzinc@0
|
2 --~ Filename: WowObjects.lua
|
madcatzinc@0
|
3 --~ Description: Warcraft in game object models
|
madcatzinc@0
|
4 --~ Copyright (C) 2012 Mad Catz Inc.
|
madcatzinc@0
|
5 --~ Author: Christopher Hooks
|
madcatzinc@0
|
6
|
madcatzinc@0
|
7 --~ This program is free software; you can redistribute it and/or
|
madcatzinc@0
|
8 --~ modify it under the terms of the GNU General Public License
|
madcatzinc@0
|
9 --~ as published by the Free Software Foundation; either version 2
|
madcatzinc@0
|
10 --~ of the License, or (at your option) any later version.
|
madcatzinc@0
|
11
|
madcatzinc@0
|
12 --~ This program is distributed in the hope that it will be useful,
|
madcatzinc@0
|
13 --~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
madcatzinc@0
|
14 --~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
madcatzinc@0
|
15 --~ GNU General Public License for more details.
|
madcatzinc@0
|
16
|
madcatzinc@0
|
17 --~ You should have received a copy of the GNU General Public License
|
madcatzinc@0
|
18 --~ along with this program; if not, write to the Free Software
|
madcatzinc@0
|
19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
madcatzinc@0
|
20
|
madcatzinc@4
|
21 CyborgMMO_WowObject = {
|
madcatzinc@0
|
22 new = function(type, detail, subdetail)
|
madcatzinc@13
|
23 local self = {}
|
madcatzinc@13
|
24 self.Texture = nil
|
madcatzinc@13
|
25 self.Name = "NoName"
|
madcatzinc@13
|
26 self.Type = type
|
madcatzinc@13
|
27 self.Detail = detail
|
madcatzinc@13
|
28 self.Subdetail = subdetail
|
madcatzinc@0
|
29
|
madcatzinc@0
|
30 -- Methods --
|
madcatzinc@0
|
31 self.DoAction = function()
|
madcatzinc@13
|
32 msg("Nothing To Do")
|
madcatzinc@0
|
33 end
|
madcatzinc@0
|
34
|
madcatzinc@0
|
35 self.Pickup = function()
|
madcatzinc@13
|
36 msg("Pick up Item")
|
madcatzinc@0
|
37 end
|
madcatzinc@0
|
38
|
madcatzinc@0
|
39 self.SetBinding = function(key)
|
madcatzinc@0
|
40 end
|
madcatzinc@0
|
41
|
madcatzinc@0
|
42 self.PlaySound = function()
|
madcatzinc@13
|
43 PlaySound("igAbilityIconDrop")
|
madcatzinc@0
|
44 end
|
madcatzinc@0
|
45
|
madcatzinc@13
|
46 return self
|
madcatzinc@0
|
47 end,
|
madcatzinc@0
|
48
|
madcatzinc@0
|
49 ClearBinding = function(key)
|
madcatzinc@13
|
50 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory.Instance().AddCallback(CyborgMMO_WowObject.DoNothing)
|
madcatzinc@13
|
51 local result = SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton")
|
madcatzinc@13
|
52 if result ~= 1 then
|
madcatzinc@13
|
53 msg("Failed to bind companion to button click")
|
madcatzinc@0
|
54 end
|
madcatzinc@0
|
55 end,
|
madcatzinc@0
|
56
|
madcatzinc@0
|
57 DoNothing = function()
|
madcatzinc@0
|
58 end,
|
madcatzinc@0
|
59
|
madcatzinc@0
|
60 Load = function(object)
|
madcatzinc@13
|
61 if type == "item" then
|
madcatzinc@14
|
62 object = CyborgMMO_WowItem.Load(object)
|
madcatzinc@13
|
63 elseif type == "macro" then
|
madcatzinc@4
|
64 object = CyborgMMO_WowMacro.Load(object)
|
madcatzinc@13
|
65 elseif type == "spell" then
|
madcatzinc@4
|
66 object = CyborgMMO_WowSpell.Load(object)
|
madcatzinc@13
|
67 elseif type == "petaction" then
|
madcatzinc@4
|
68 object = CyborgMMO_WowSpell.Load(object)
|
madcatzinc@13
|
69 -- elseif type == "merchant" then
|
madcatzinc@13
|
70 -- object = SlotMerchant.new(detail, subdetail)
|
madcatzinc@13
|
71 elseif type == "companion" then
|
madcatzinc@4
|
72 object = CyborgMMO_WowCompanion.Load(object)
|
madcatzinc@13
|
73 elseif type == "equipmentset" then
|
madcatzinc@4
|
74 object = CyborgMMO_WowEquipmentSet.Load(object)
|
madcatzinc@0
|
75 else
|
madcatzinc@14
|
76 object = CyborgMMO_WowObject.new(type, nil, nil)
|
madcatzinc@0
|
77 end
|
madcatzinc@13
|
78 return object
|
madcatzinc@0
|
79 end,
|
madcatzinc@0
|
80
|
madcatzinc@0
|
81 -- Static Methods --
|
madcatzinc@0
|
82 Create = function(objectType, detail, subdetail)
|
madcatzinc@13
|
83 local object
|
madcatzinc@13
|
84 if objectType == "item" then
|
madcatzinc@13
|
85 object = CyborgMMO_WowItem.new(detail, subdetail)
|
madcatzinc@13
|
86 elseif objectType == "macro" then
|
madcatzinc@4
|
87 object = CyborgMMO_WowMacro.new(detail)
|
madcatzinc@13
|
88 elseif objectType == "spell" then
|
madcatzinc@13
|
89 object = CyborgMMO_WowSpell.new(objectType, detail, subdetail)
|
madcatzinc@13
|
90 elseif objectType == "petaction" then
|
madcatzinc@13
|
91 object = CyborgMMO_WowSpell.new(objectType, detail, subdetail)
|
madcatzinc@13
|
92 elseif objectType == "merchant" then
|
madcatzinc@13
|
93 object = CyborgMMO_SlotMerchant.new(detail, subdetail)
|
madcatzinc@13
|
94 elseif objectType == "companion" then
|
madcatzinc@13
|
95 object = CyborgMMO_WowCompanion.new(detail, subdetail)
|
madcatzinc@13
|
96 elseif objectType == "equipmentset" then
|
madcatzinc@13
|
97 object = CyborgMMO_WowEquipmentSet.new(objectType, detail, subdetail)
|
madcatzinc@13
|
98 elseif objectType == "callback" then
|
madcatzinc@13
|
99 object = CyborgMMO_WowCallback.new(detail)
|
madcatzinc@0
|
100 else
|
madcatzinc@13
|
101 object = CyborgMMO_WowObject.new(objectType, detail, subdetail)
|
madcatzinc@0
|
102 end
|
madcatzinc@0
|
103
|
madcatzinc@13
|
104 return object
|
madcatzinc@13
|
105 end,
|
madcatzinc@0
|
106 }
|
madcatzinc@0
|
107
|
madcatzinc@13
|
108 local CallbackCursor = nil
|
madcatzinc@0
|
109
|
madcatzinc@4
|
110 CyborgMMO_CallbackIcons = {
|
madcatzinc@0
|
111 new = function(self)
|
madcatzinc@13
|
112 self.point,
|
madcatzinc@13
|
113 self.relativeTo,
|
madcatzinc@13
|
114 self.relativePoint,
|
madcatzinc@13
|
115 self.xOfs,
|
madcatzinc@13
|
116 self.yOfs = self:GetPoint()
|
madcatzinc@13
|
117 -- self:SetPoint(self.point, self.relativeTo, self.relativePoint, self.xOfs, self.yOfs)
|
madcatzinc@13
|
118 self.strata = self:GetFrameStrata()
|
madcatzinc@4
|
119 self.wowObject = CyborgMMO_WowCallback.new(string.gsub(self:GetName(), self:GetParent():GetName(), "",1))
|
madcatzinc@13
|
120 self.wowObject.SetTextures(self)
|
madcatzinc@0
|
121 self:RegisterForDrag("LeftButton","RightButton")
|
madcatzinc@13
|
122 self:SetResizable(false)
|
madcatzinc@13
|
123
|
madcatzinc@0
|
124 self.OnClick = function()
|
madcatzinc@13
|
125 self.wowObject.DoAction()
|
madcatzinc@0
|
126 end
|
madcatzinc@13
|
127
|
madcatzinc@0
|
128 self.DragStart = function()
|
madcatzinc@13
|
129 self:SetMovable(true)
|
madcatzinc@13
|
130 self:StartMoving()
|
madcatzinc@13
|
131 self.isMoving = true
|
madcatzinc@0
|
132 self:SetFrameStrata("TOOLTIP")
|
madcatzinc@0
|
133 end
|
madcatzinc@13
|
134
|
madcatzinc@0
|
135 self.DragStop = function()
|
madcatzinc@13
|
136 self:SetFrameStrata(self.strata)
|
madcatzinc@13
|
137 self.isMoving = false
|
madcatzinc@13
|
138 self:SetMovable(false)
|
madcatzinc@13
|
139 self:StopMovingOrSizing()
|
madcatzinc@0
|
140
|
madcatzinc@13
|
141 self:ClearAllPoints()
|
madcatzinc@13
|
142 self:SetPoint(self.point, self.relativeTo, self.relativePoint, self.xOfs, self.yOfs)
|
madcatzinc@13
|
143 local x,y = GetCursorPosition()
|
madcatzinc@4
|
144 CyborgMMO_RatPageController.Instance().CallbackDropped(self)
|
madcatzinc@0
|
145 end
|
madcatzinc@13
|
146
|
madcatzinc@13
|
147 return self
|
madcatzinc@13
|
148 end,
|
madcatzinc@0
|
149 }
|
madcatzinc@0
|
150
|
madcatzinc@4
|
151 CyborgMMO_WowCallback = {
|
madcatzinc@0
|
152 new = function(callbackName)
|
madcatzinc@13
|
153 local self = CyborgMMO_WowObject.new("callback", callbackName, "")
|
madcatzinc@13
|
154 self.CallbackName = callbackName
|
madcatzinc@0
|
155 self.Texture = "Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Unselected.tga"
|
madcatzinc@13
|
156
|
madcatzinc@0
|
157 self.SetTextures = function(buttonFrame)
|
madcatzinc@4
|
158 msg("TextureName = "..self.CallbackName)
|
madcatzinc@0
|
159 buttonFrame:SetNormalTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Unselected.tga")
|
madcatzinc@0
|
160 buttonFrame:SetPushedTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Down.tga")
|
madcatzinc@0
|
161 buttonFrame:SetHighlightTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Over.tga")
|
madcatzinc@0
|
162 end
|
madcatzinc@13
|
163
|
madcatzinc@0
|
164 self.DoAction = function()
|
madcatzinc@4
|
165 local action = CyborgMMO_CallbackFactory.Instance().GetCallback(self.CallbackName)
|
madcatzinc@13
|
166 msg("calling callback:- "..self.CallbackName)
|
madcatzinc@13
|
167 action()
|
madcatzinc@0
|
168 end
|
madcatzinc@13
|
169
|
madcatzinc@0
|
170 self.PickupCallback = function()
|
madcatzinc@13
|
171 local slot = nil
|
madcatzinc@13
|
172 local observers = CyborgMMO_RatPageModel.Instance().GetAllObservers()
|
madcatzinc@13
|
173 for i=1,#observers do
|
madcatzinc@13
|
174 if MouseIsOver(observers[i]) then
|
madcatzinc@13
|
175 slot = observers[i]
|
madcatzinc@13
|
176 break
|
madcatzinc@0
|
177 end
|
madcatzinc@0
|
178 end
|
madcatzinc@0
|
179 slot:SetNormalTexture(slot.UnCheckedTexture)
|
madcatzinc@0
|
180 end
|
madcatzinc@0
|
181
|
madcatzinc@0
|
182 self.ClickHandler = function(self, button, down)
|
madcatzinc@13
|
183 msg("click handler")
|
madcatzinc@13
|
184 CallbackCursor:StopMoving()
|
madcatzinc@13
|
185 CallbackCursor:Hide()
|
madcatzinc@0
|
186 end
|
madcatzinc@13
|
187
|
madcatzinc@0
|
188 self.Pickup = function()
|
madcatzinc@0
|
189 self.PlaySound()
|
madcatzinc@13
|
190 ClearCursor()
|
madcatzinc@13
|
191 self.PickupCallback()
|
madcatzinc@13
|
192 end
|
madcatzinc@0
|
193
|
madcatzinc@0
|
194 self.SetBinding = function(key)
|
madcatzinc@13
|
195 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory.Instance().AddCallback(self.DoAction)
|
madcatzinc@13
|
196 local result = SetOverrideBindingClick(CyborgMMO_CallbackFactory.Instance().Frame, true, key, name, "LeftButton")
|
madcatzinc@13
|
197 if result ~= 1 then
|
madcatzinc@13
|
198 msg("Failed to Bind modeChange")
|
madcatzinc@0
|
199 end
|
madcatzinc@0
|
200 end
|
madcatzinc@13
|
201
|
madcatzinc@13
|
202 return self
|
madcatzinc@13
|
203 end,
|
madcatzinc@0
|
204 }
|
madcatzinc@0
|
205
|
madcatzinc@0
|
206 -- WowItem Class --
|
madcatzinc@4
|
207 CyborgMMO_WowItem = {
|
madcatzinc@0
|
208 new = function(number, itemID)
|
madcatzinc@13
|
209 local self = CyborgMMO_WowObject.new("item", number, itemID) -- base class
|
madcatzinc@0
|
210 -- Set all the item info. --
|
madcatzinc@0
|
211 self.Name,
|
madcatzinc@0
|
212 self.Link,
|
madcatzinc@0
|
213 self.Rarity,
|
madcatzinc@0
|
214 self.Level,
|
madcatzinc@0
|
215 self.MinLevel,
|
madcatzinc@0
|
216 self.Type,
|
madcatzinc@0
|
217 self.SubType,
|
madcatzinc@0
|
218 self.StackCount,
|
madcatzinc@0
|
219 self.EquipLoc,
|
madcatzinc@0
|
220 self.Texture,
|
madcatzinc@13
|
221 self.SellPrice = GetItemInfo(itemID)
|
madcatzinc@0
|
222
|
madcatzinc@0
|
223 -- override method --
|
madcatzinc@0
|
224 self.DoAction = function()
|
madcatzinc@13
|
225 msg("Use Item")
|
madcatzinc@0
|
226 end
|
madcatzinc@0
|
227
|
madcatzinc@0
|
228 -- override method --
|
madcatzinc@0
|
229 self.Pickup = function()
|
madcatzinc@0
|
230 self.PlaySound()
|
madcatzinc@13
|
231 ClearCursor()
|
madcatzinc@13
|
232 -- SetCursor(self.Texture)
|
madcatzinc@13
|
233 return PickupItem(self.Link)
|
madcatzinc@0
|
234 end
|
madcatzinc@0
|
235
|
madcatzinc@0
|
236 self.SetBinding = function(key)
|
madcatzinc@13
|
237 SetOverrideBinding(CyborgMMO_CallbackFactory.Instance().Frame, true, key, "ITEM "..self.Name)
|
madcatzinc@0
|
238 end
|
madcatzinc@0
|
239
|
madcatzinc@13
|
240 return self
|
madcatzinc@0
|
241 end,
|
madcatzinc@0
|
242 }
|
madcatzinc@0
|
243
|
madcatzinc@0
|
244 -- WowSpell Class --
|
madcatzinc@4
|
245 CyborgMMO_WowSpell = {
|
madcatzinc@0
|
246 new = function(type, spellbookID, spellbook)
|
madcatzinc@4
|
247 local self = CyborgMMO_WowObject.new(type, spellbookID, spellbook) -- base class
|
madcatzinc@13
|
248 self.SpellbookID = spellbookID
|
madcatzinc@13
|
249 self.Spellbook = spellbook
|
madcatzinc@13
|
250 self.Name,self.Rank = GetSpellBookItemName(spellbookID, spellbook)
|
madcatzinc@13
|
251 self.Texture = GetSpellBookItemTexture(spellbookID, spellbook)
|
madcatzinc@13
|
252 self.Type = type
|
madcatzinc@0
|
253
|
madcatzinc@0
|
254
|
madcatzinc@0
|
255 -- override method --
|
madcatzinc@0
|
256 self.DoAction = function()
|
madcatzinc@13
|
257 msg("Cast Spell")
|
madcatzinc@0
|
258 end
|
madcatzinc@0
|
259
|
madcatzinc@0
|
260 -- override method --
|
madcatzinc@0
|
261 self.Pickup = function()
|
madcatzinc@0
|
262 self.PlaySound()
|
madcatzinc@13
|
263 ClearCursor()
|
madcatzinc@13
|
264 -- SetCursor(self.Texture)
|
madcatzinc@13
|
265 return PickupSpellBookItem(self.SpellbookID, self.Spellbook)
|
madcatzinc@0
|
266 end
|
madcatzinc@0
|
267
|
madcatzinc@0
|
268 self.SetBinding = function(key)
|
madcatzinc@0
|
269 msg("Binding to key "..key)
|
madcatzinc@0
|
270 self.Key = key
|
madcatzinc@13
|
271 SetOverrideBinding(CyborgMMO_CallbackFactory.Instance().Frame, true, self.Key, self.Type.." "..self.Name)
|
madcatzinc@0
|
272 end
|
madcatzinc@0
|
273
|
madcatzinc@13
|
274 return self
|
madcatzinc@0
|
275 end,
|
madcatzinc@0
|
276
|
madcatzinc@0
|
277 Load = function(object)
|
madcatzinc@13
|
278 local o = WowSpell.new(object.Type, object.Detail, object.Subdetail)
|
madcatzinc@13
|
279 o.Name = object.Name
|
madcatzinc@13
|
280 o.Texture = object.Texture
|
madcatzinc@13
|
281 return o
|
madcatzinc@13
|
282 end,
|
madcatzinc@0
|
283 }
|
madcatzinc@0
|
284
|
madcatzinc@0
|
285 -- WowMacro Class --
|
madcatzinc@4
|
286 CyborgMMO_WowMacro = {
|
madcatzinc@0
|
287 new = function(index)
|
madcatzinc@13
|
288 local self = CyborgMMO_WowObject.new("macro", index, nil) -- base class
|
madcatzinc@0
|
289 -- Set all the item info. --
|
madcatzinc@0
|
290 self.Name,
|
madcatzinc@0
|
291 self.Texture,
|
madcatzinc@0
|
292 self.Body,
|
madcatzinc@13
|
293 self.isLocal = GetMacroInfo(index)
|
madcatzinc@13
|
294 self.Index = index
|
madcatzinc@0
|
295
|
madcatzinc@0
|
296 -- override method --
|
madcatzinc@0
|
297 self.DoAction = function()
|
madcatzinc@13
|
298 msg("Use Item")
|
madcatzinc@0
|
299 end
|
madcatzinc@0
|
300
|
madcatzinc@0
|
301 -- override method --
|
madcatzinc@0
|
302 self.Pickup = function()
|
madcatzinc@0
|
303 self.PlaySound()
|
madcatzinc@13
|
304 ClearCursor()
|
madcatzinc@13
|
305 -- SetCursor(self.Texture)
|
madcatzinc@13
|
306 return PickupMacro(self.Index)
|
madcatzinc@0
|
307 end
|
madcatzinc@0
|
308
|
madcatzinc@0
|
309 self.SetBinding = function(key)
|
madcatzinc@13
|
310 self.Key = key
|
madcatzinc@13
|
311 SetOverrideBinding(CyborgMMO_CallbackFactory.Instance().Frame, true, key, "MACRO "..self.Index)
|
madcatzinc@0
|
312 end
|
madcatzinc@0
|
313
|
madcatzinc@13
|
314 return self
|
madcatzinc@13
|
315 end,
|
madcatzinc@0
|
316 }
|
madcatzinc@0
|
317
|
madcatzinc@0
|
318 -- WowCompanion Class --
|
madcatzinc@4
|
319 CyborgMMO_WowCompanion = {
|
madcatzinc@0
|
320 new = function(index, SubType)
|
madcatzinc@13
|
321 local self = CyborgMMO_WowObject.new("companion", index, SubType) -- base class
|
madcatzinc@0
|
322 -- Set all the item info. --
|
madcatzinc@13
|
323 self.Id,
|
madcatzinc@13
|
324 self.Name,
|
madcatzinc@13
|
325 self.SpellId,
|
madcatzinc@13
|
326 self.Texture,
|
madcatzinc@13
|
327 self.isSummoned = GetCompanionInfo(SubType, index)
|
madcatzinc@13
|
328 self.SubType = SubType
|
madcatzinc@13
|
329 self.index = index
|
madcatzinc@0
|
330 -- override method --
|
madcatzinc@0
|
331 self.DoAction = function()
|
madcatzinc@13
|
332 if self.SubType == "MOUNT" and IsMounted() then
|
madcatzinc@13
|
333 Dismount()
|
madcatzinc@0
|
334 else
|
madcatzinc@13
|
335 CallCompanion(self.SubType, self.index)
|
madcatzinc@0
|
336 end
|
madcatzinc@0
|
337 end
|
madcatzinc@0
|
338
|
madcatzinc@0
|
339 -- override method --
|
madcatzinc@0
|
340 self.Pickup = function()
|
madcatzinc@0
|
341 self.PlaySound()
|
madcatzinc@13
|
342 return PickupCompanion(self.SubType, self.index)
|
madcatzinc@0
|
343 end
|
madcatzinc@0
|
344
|
madcatzinc@0
|
345 self.SetBinding = function(key)
|
madcatzinc@0
|
346 self.Key = key
|
madcatzinc@13
|
347 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory.Instance().AddCallback(self.DoAction)
|
madcatzinc@13
|
348 local result = SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton")
|
madcatzinc@13
|
349 if result ~= 1 then
|
madcatzinc@13
|
350 msg("Failed to bind companion to button click")
|
madcatzinc@0
|
351 end
|
madcatzinc@13
|
352 -- SetOverrideBinding(hiddenModeChanger, true, key, "MACRO "..self.Index)
|
madcatzinc@0
|
353 end
|
madcatzinc@0
|
354
|
madcatzinc@13
|
355 return self
|
madcatzinc@0
|
356 end,
|
madcatzinc@0
|
357
|
madcatzinc@0
|
358 Load = function(object)
|
madcatzinc@13
|
359 local o = WowCompanion.new(object.index, object.SubType)
|
madcatzinc@13
|
360 return o
|
madcatzinc@13
|
361 end,
|
madcatzinc@0
|
362 }
|
madcatzinc@0
|
363
|
madcatzinc@0
|
364 -- WowMerchant Class --
|
madcatzinc@4
|
365 CyborgMMO_WowMerchant = {
|
madcatzinc@0
|
366 new = function(index)
|
madcatzinc@13
|
367 local self = CyborgMMO_WowObject.new("macro", index, nil) -- base class
|
madcatzinc@0
|
368 -- Set all the item info. --
|
madcatzinc@0
|
369 self.Name,
|
madcatzinc@0
|
370 self.Texture,
|
madcatzinc@0
|
371 self.Price,
|
madcatzinc@0
|
372 self.Quantity,
|
madcatzinc@0
|
373 self.NumAvailable,
|
madcatzinc@0
|
374 self.IsUsable,
|
madcatzinc@13
|
375 self.ExtendedCost = GetMerchantItemInfo(index)
|
madcatzinc@13
|
376 self.Index = index
|
madcatzinc@0
|
377
|
madcatzinc@0
|
378 -- override method --
|
madcatzinc@0
|
379 self.DoAction = function()
|
madcatzinc@13
|
380 msg("Use Item")
|
madcatzinc@0
|
381 end
|
madcatzinc@0
|
382
|
madcatzinc@0
|
383 -- override method --
|
madcatzinc@0
|
384 self.Pickup = function()
|
madcatzinc@0
|
385 self.PlaySound()
|
madcatzinc@13
|
386 ClearCursor()
|
madcatzinc@13
|
387 -- SetCursor(self.Texture)
|
madcatzinc@13
|
388 return PickupMerchantItem(self.Index)
|
madcatzinc@0
|
389 end
|
madcatzinc@0
|
390
|
madcatzinc@0
|
391 self.SetBinding = function(key)
|
madcatzinc@0
|
392 self.Key = key
|
madcatzinc@13
|
393 SetOverrideBinding(CyborgMMO_CallbackFactory.Instance().Frame, true, key, "MERCHANT "..self.Index)
|
madcatzinc@0
|
394 end
|
madcatzinc@0
|
395
|
madcatzinc@13
|
396 return self
|
madcatzinc@13
|
397 end,
|
madcatzinc@0
|
398 }
|
madcatzinc@0
|
399
|
madcatzinc@0
|
400 -- WowEquipmentSet Class --
|
madcatzinc@4
|
401 CyborgMMO_WowEquipmentSet = {
|
madcatzinc@0
|
402 new = function(objectType, name, index)
|
madcatzinc@13
|
403 local self = CyborgMMO_WowObject.new(objectType, name, index) -- base class
|
madcatzinc@0
|
404 -- Set all the item info. --
|
madcatzinc@14
|
405 local texture,lessIndex = GetEquipmentSetInfoByName(name)
|
madcatzinc@13
|
406 self.Texture = "Interface\\Icons\\"..texture
|
madcatzinc@0
|
407 self.Name = name
|
madcatzinc@13
|
408 self.Index = lessIndex + 1
|
madcatzinc@0
|
409
|
madcatzinc@0
|
410 -- override method --
|
madcatzinc@0
|
411 self.DoAction = function()
|
madcatzinc@13
|
412 UseEquipmentSet(self.Name)
|
madcatzinc@0
|
413 end
|
madcatzinc@0
|
414
|
madcatzinc@0
|
415 -- override method --
|
madcatzinc@0
|
416 self.Pickup = function()
|
madcatzinc@0
|
417 self.PlaySound()
|
madcatzinc@13
|
418 ClearCursor()
|
madcatzinc@13
|
419 -- SetCursor(self.Texture)
|
madcatzinc@13
|
420 return PickupEquipmentSetByName(self.Name)
|
madcatzinc@0
|
421 end
|
madcatzinc@0
|
422
|
madcatzinc@0
|
423 self.SetBinding = function(key)
|
madcatzinc@0
|
424 self.Key = key
|
madcatzinc@13
|
425 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory.Instance().AddCallback(self.DoAction);
|
madcatzinc@13
|
426 local result = SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton")
|
madcatzinc@13
|
427 if result ~= 1 then
|
madcatzinc@13
|
428 msg("Failed to bind companion to button click")
|
madcatzinc@0
|
429 end
|
madcatzinc@0
|
430 end
|
madcatzinc@0
|
431
|
madcatzinc@13
|
432 return self
|
madcatzinc@13
|
433 end,
|
madcatzinc@0
|
434 }
|
madcatzinc@0
|
435
|
madcatzinc@0
|
436 -- End Of WowObjects --
|