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