Mercurial > wow > cyborg-mmo7
comparison WowObjects.lua @ 25:b7074b47cfc7
Simplified the object system of the WowObject-s.
author | madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09 |
---|---|
date | Thu, 25 Apr 2013 01:30:46 +0000 |
parents | 6906d8ffd580 |
children | 1c0af1810e06 |
comparison
equal
deleted
inserted
replaced
24:6906d8ffd580 | 25:b7074b47cfc7 |
---|---|
16 | 16 |
17 --~ You should have received a copy of the GNU General Public License | 17 --~ You should have received a copy of the GNU General Public License |
18 --~ along with this program; if not, write to the Free Software | 18 --~ along with this program; if not, write to the Free Software |
19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | 19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
20 | 20 |
21 CyborgMMO_WowObject = { | 21 ------------------------------------------------------------------------------ |
22 new = function(type, detail, subdetail) | 22 |
23 local self = {} | 23 local WowObject_methods = {} |
24 self.Texture = nil | 24 local WowObject_mt = {__index=WowObject_methods} |
25 self.Name = "NoName" | 25 |
26 self.Type = type | 26 local function WowObject(type, detail, subdetail) |
27 self.Detail = detail | 27 local self = {} |
28 self.Subdetail = subdetail | 28 |
29 | 29 self.Texture = nil |
30 -- Methods -- | 30 self.Name = "NoName" |
31 self.DoAction = function() | 31 self.Type = type |
32 CyborgMMO_DPrint("Nothing To Do") | 32 self.Detail = detail |
33 self.Subdetail = subdetail | |
34 | |
35 setmetatable(self, WowObject_mt) | |
36 | |
37 return self | |
38 end | |
39 | |
40 function WowObject_methods:DoAction() | |
41 CyborgMMO_DPrint("Nothing To Do") | |
42 end | |
43 | |
44 function WowObject_methods:Pickup() | |
45 CyborgMMO_DPrint("Pick up Item") | |
46 end | |
47 | |
48 function WowObject_methods:SetBinding(key) | |
49 end | |
50 | |
51 function WowObject_methods:PlaySound() | |
52 PlaySound("igAbilityIconDrop") | |
53 end | |
54 | |
55 ------------------------------------------------------------------------------ | |
56 | |
57 local WowCallback_methods = setmetatable({}, {__index=WowObject_methods}) | |
58 local WowCallback_mt = {__index=WowCallback_methods} | |
59 | |
60 local function WowCallback(callbackName) | |
61 local self = WowObject("callback", callbackName, "") | |
62 | |
63 self.CallbackName = callbackName | |
64 self.Texture = "Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Unselected.tga" | |
65 | |
66 setmetatable(self, WowCallback_mt) | |
67 | |
68 return self | |
69 end | |
70 | |
71 function WowCallback_methods:SetTextures(buttonFrame) | |
72 CyborgMMO_DPrint("TextureName = "..self.CallbackName) | |
73 buttonFrame:SetNormalTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Unselected.tga") | |
74 buttonFrame:SetPushedTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Down.tga") | |
75 buttonFrame:SetHighlightTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Over.tga") | |
76 end | |
77 | |
78 function WowCallback_methods:DoAction() | |
79 local action = CyborgMMO_CallbackFactory:GetCallback(self.CallbackName) | |
80 CyborgMMO_DPrint("calling callback:- "..self.CallbackName) | |
81 action() | |
82 end | |
83 | |
84 function WowCallback_methods:PickupCallback() | |
85 local slot = nil | |
86 local observers = CyborgMMO_RatPageModel:GetAllObservers() | |
87 for i=1,#observers do | |
88 if MouseIsOver(observers[i]) then | |
89 slot = observers[i] | |
90 break | |
33 end | 91 end |
34 | 92 end |
35 self.Pickup = function() | 93 slot:SetNormalTexture(slot.UnCheckedTexture) |
36 CyborgMMO_DPrint("Pick up Item") | 94 end |
37 end | 95 |
38 | 96 function WowCallback_methods:Pickup() |
39 self.SetBinding = function(key) | 97 self:PlaySound() |
40 end | 98 ClearCursor() |
41 | 99 self:PickupCallback() |
42 self.PlaySound = function() | 100 end |
43 PlaySound("igAbilityIconDrop") | 101 |
44 end | 102 function WowCallback_methods:SetBinding(key) |
45 | 103 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function(...) return self:DoAction(...) end) |
46 return self | 104 SetOverrideBindingClick(CyborgMMO_CallbackFactory.Frame, true, key, name, "LeftButton") |
47 end, | 105 end |
48 | 106 |
49 ClearBinding = function(key) | 107 ------------------------------------------------------------------------------ |
50 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, nil) | 108 |
51 end, | 109 local WowItem_methods = setmetatable({}, {__index=WowObject_methods}) |
52 | 110 local WowItem_mt = {__index=WowItem_methods} |
53 -- Static Methods -- | 111 |
54 Create = function(objectType, detail, subdetail) | 112 local function WowItem(number, itemID) |
55 local object | 113 local self = WowObject("item", number, itemID) |
56 if objectType == "item" then | 114 |
57 object = CyborgMMO_WowItem.new(detail, subdetail) | 115 self.Name, |
58 elseif objectType == "macro" then | 116 self.Link, |
59 object = CyborgMMO_WowMacro.new(detail) | 117 self.Rarity, |
60 elseif objectType == "spell" then | 118 self.Level, |
61 object = CyborgMMO_WowSpell.new(objectType, detail, subdetail) | 119 self.MinLevel, |
62 elseif objectType == "petaction" then | 120 self.Type, |
63 object = CyborgMMO_WowSpell.new(objectType, detail, subdetail) | 121 self.SubType, |
64 elseif objectType == "merchant" then | 122 self.StackCount, |
65 object = CyborgMMO_SlotMerchant.new(detail, subdetail) | 123 self.EquipLoc, |
66 elseif objectType == "companion" then | 124 self.Texture, |
67 object = CyborgMMO_WowCompanion.new(detail, subdetail) | 125 self.SellPrice = GetItemInfo(itemID) |
68 elseif objectType == "equipmentset" then | 126 |
69 object = CyborgMMO_WowEquipmentSet.new(objectType, detail, subdetail) | 127 setmetatable(self, WowItem_mt) |
70 elseif objectType == "callback" then | 128 |
71 object = CyborgMMO_WowCallback.new(detail) | 129 return self |
72 else | 130 end |
73 object = CyborgMMO_WowObject.new(objectType, detail, subdetail) | 131 |
74 end | 132 function WowItem_methods:DoAction() |
75 | 133 CyborgMMO_DPrint("Use Item") |
76 return object | 134 end |
77 end, | 135 |
78 } | 136 function WowItem_methods:Pickup() |
79 | 137 self:PlaySound() |
80 local CallbackCursor = nil | 138 ClearCursor() |
81 | 139 -- SetCursor(self.Texture) |
140 return PickupItem(self.Link) | |
141 end | |
142 | |
143 function WowItem_methods:SetBinding(key) | |
144 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, "ITEM "..self.Name) | |
145 end | |
146 | |
147 ------------------------------------------------------------------------------ | |
148 | |
149 local WowSpell_methods = setmetatable({}, {__index=WowObject_methods}) | |
150 local WowSpell_mt = {__index=WowSpell_methods} | |
151 | |
152 local function WowSpell(type, spellbookID, spellbook) | |
153 local self = WowObject(type, spellbookID, spellbook) | |
154 | |
155 self.SpellbookID = spellbookID | |
156 self.Spellbook = spellbook | |
157 self.Name,self.Rank = GetSpellBookItemName(spellbookID, spellbook) | |
158 self.Texture = GetSpellBookItemTexture(spellbookID, spellbook) | |
159 self.Type = type | |
160 | |
161 setmetatable(self, WowSpell_mt) | |
162 | |
163 return self | |
164 end | |
165 | |
166 function WowSpell_methods:DoAction() | |
167 CyborgMMO_DPrint("Cast Spell") | |
168 end | |
169 | |
170 function WowSpell_methods:Pickup() | |
171 self:PlaySound() | |
172 ClearCursor() | |
173 -- SetCursor(self.Texture) | |
174 return PickupSpellBookItem(self.SpellbookID, self.Spellbook) | |
175 end | |
176 | |
177 function WowSpell_methods:SetBinding(key) | |
178 CyborgMMO_DPrint("Binding to key "..key) | |
179 self.Key = key | |
180 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, self.Key, self.Type.." "..self.Name) | |
181 end | |
182 | |
183 ------------------------------------------------------------------------------ | |
184 | |
185 local WowMacro_methods = setmetatable({}, {__index=WowObject_methods}) | |
186 local WowMacro_mt = {__index=WowMacro_methods} | |
187 | |
188 local function WowMacro(index) | |
189 local self = WowObject("macro", index, nil) | |
190 | |
191 self.Name, | |
192 self.Texture, | |
193 self.Body, | |
194 self.isLocal = GetMacroInfo(index) | |
195 self.Index = index | |
196 | |
197 setmetatable(self, WowMacro_mt) | |
198 | |
199 return self | |
200 end | |
201 | |
202 function WowMacro_methods:DoAction() | |
203 CyborgMMO_DPrint("Use Item") | |
204 end | |
205 | |
206 function WowMacro_methods:Pickup() | |
207 self:PlaySound() | |
208 ClearCursor() | |
209 -- SetCursor(self.Texture) | |
210 return PickupMacro(self.Index) | |
211 end | |
212 | |
213 function WowMacro_methods:SetBinding(key) | |
214 self.Key = key | |
215 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, "MACRO "..self.Index) | |
216 end | |
217 | |
218 ------------------------------------------------------------------------------ | |
219 | |
220 local WowCompanion_methods = setmetatable({}, {__index=WowObject_methods}) | |
221 local WowCompanion_mt = {__index=WowCompanion_methods} | |
222 | |
223 local function WowCompanion(index, SubType) | |
224 local self = WowObject("companion", index, SubType) | |
225 | |
226 self.Id, | |
227 self.Name, | |
228 self.SpellId, | |
229 self.Texture, | |
230 self.isSummoned = GetCompanionInfo(SubType, index) | |
231 self.SubType = SubType | |
232 self.index = index | |
233 | |
234 setmetatable(self, WowCompanion_mt) | |
235 | |
236 return self | |
237 end | |
238 | |
239 function WowCompanion_methods:DoAction() | |
240 if self.SubType == "MOUNT" and IsMounted() then | |
241 Dismount() | |
242 else | |
243 CallCompanion(self.SubType, self.index) | |
244 end | |
245 end | |
246 | |
247 function WowCompanion_methods:Pickup() | |
248 self:PlaySound() | |
249 return PickupCompanion(self.SubType, self.index) | |
250 end | |
251 | |
252 function WowCompanion_methods:SetBinding(key) | |
253 self.Key = key | |
254 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function() self:DoAction() end) | |
255 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton") | |
256 -- SetOverrideBinding(hiddenModeChanger, true, key, "MACRO "..self.Index) | |
257 end | |
258 | |
259 ------------------------------------------------------------------------------ | |
260 | |
261 local WowMerchant_methods = setmetatable({}, {__index=WowObject_methods}) | |
262 local WowMerchant_mt = {__index=WowMerchant_methods} | |
263 | |
264 local function WowMerchant(index) | |
265 local self = WowObject("merchant", index, nil) | |
266 | |
267 self.Name, | |
268 self.Texture, | |
269 self.Price, | |
270 self.Quantity, | |
271 self.NumAvailable, | |
272 self.IsUsable, | |
273 self.ExtendedCost = GetMerchantItemInfo(index) | |
274 self.Index = index | |
275 | |
276 setmetatable(self, WowMerchant_mt) | |
277 | |
278 return self | |
279 end | |
280 | |
281 function WowMerchant_methods:DoAction() | |
282 CyborgMMO_DPrint("Use Item") | |
283 end | |
284 | |
285 function WowMerchant_methods:Pickup() | |
286 self:PlaySound() | |
287 ClearCursor() | |
288 -- SetCursor(self.Texture) | |
289 return PickupMerchantItem(self.Index) | |
290 end | |
291 | |
292 function WowMerchant_methods:SetBinding(key) | |
293 self.Key = key | |
294 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, "MERCHANT "..self.Index) | |
295 end | |
296 | |
297 ------------------------------------------------------------------------------ | |
298 | |
299 local WowEquipmentSet_methods = setmetatable({}, {__index=WowObject_methods}) | |
300 local WowEquipmentSet_mt = {__index=WowEquipmentSet_methods} | |
301 | |
302 local function WowEquipmentSet(objectType, name, index) | |
303 local self = WowObject(objectType, name, index) | |
304 | |
305 local texture,lessIndex = GetEquipmentSetInfoByName(name) | |
306 self.Texture = "Interface\\Icons\\"..texture | |
307 self.Name = name | |
308 self.Index = lessIndex + 1 | |
309 | |
310 setmetatable(self, WowEquipmentSet_mt) | |
311 | |
312 return self | |
313 end | |
314 | |
315 function WowEquipmentSet_methods:DoAction() | |
316 UseEquipmentSet(self.Name) | |
317 end | |
318 | |
319 function WowEquipmentSet_methods:Pickup() | |
320 self:PlaySound() | |
321 ClearCursor() | |
322 -- SetCursor(self.Texture) | |
323 return PickupEquipmentSetByName(self.Name) | |
324 end | |
325 | |
326 function WowEquipmentSet_methods:SetBinding(key) | |
327 self.Key = key | |
328 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function() self:DoAction() end); | |
329 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton") | |
330 end | |
331 | |
332 ------------------------------------------------------------------------------ | |
333 | |
334 -- this class is used by pre-defined icons in the corner of the Rat page | |
82 CyborgMMO_CallbackIcons = { | 335 CyborgMMO_CallbackIcons = { |
83 new = function(self) | 336 new = function(self) |
84 self.point, | 337 self.point, |
85 self.relativeTo, | 338 self.relativeTo, |
86 self.relativePoint, | 339 self.relativePoint, |
87 self.xOfs, | 340 self.xOfs, |
88 self.yOfs = self:GetPoint() | 341 self.yOfs = self:GetPoint() |
89 -- self:SetPoint(self.point, self.relativeTo, self.relativePoint, self.xOfs, self.yOfs) | 342 -- self:SetPoint(self.point, self.relativeTo, self.relativePoint, self.xOfs, self.yOfs) |
90 self.strata = self:GetFrameStrata() | 343 self.strata = self:GetFrameStrata() |
91 self.wowObject = CyborgMMO_WowCallback.new(string.gsub(self:GetName(), self:GetParent():GetName(), "",1)) | 344 self.wowObject = WowCallback(string.gsub(self:GetName(), self:GetParent():GetName(), "",1)) |
92 self.wowObject.SetTextures(self) | 345 self.wowObject:SetTextures(self) |
93 self:RegisterForDrag("LeftButton","RightButton") | 346 self:RegisterForDrag("LeftButton","RightButton") |
94 self:SetResizable(false) | 347 self:SetResizable(false) |
95 | 348 |
96 self.OnClick = function() | 349 self.OnClick = function() |
97 self.wowObject.DoAction() | 350 self.wowObject:DoAction() |
98 end | 351 end |
99 | 352 |
100 self.DragStart = function() | 353 self.DragStart = function() |
101 self:SetMovable(true) | 354 self:SetMovable(true) |
102 self:StartMoving() | 355 self:StartMoving() |
118 | 371 |
119 return self | 372 return self |
120 end, | 373 end, |
121 } | 374 } |
122 | 375 |
123 CyborgMMO_WowCallback = { | 376 ------------------------------------------------------------------------------ |
124 new = function(callbackName) | 377 |
125 local self = CyborgMMO_WowObject.new("callback", callbackName, "") | 378 function CyborgMMO_CreateWowObject(type, ...) |
126 self.CallbackName = callbackName | 379 local object |
127 self.Texture = "Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Unselected.tga" | 380 |
128 | 381 if type == "item" then |
129 self.SetTextures = function(buttonFrame) | 382 object = WowItem(...) |
130 CyborgMMO_DPrint("TextureName = "..self.CallbackName) | 383 elseif type == "macro" then |
131 buttonFrame:SetNormalTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Unselected.tga") | 384 object = WowMacro(...) |
132 buttonFrame:SetPushedTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Down.tga") | 385 elseif type == "spell" then |
133 buttonFrame:SetHighlightTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.CallbackName.."Over.tga") | 386 object = WowSpell(type, ...) |
134 end | 387 elseif type == "petaction" then |
135 | 388 object = WowSpell(type, ...) |
136 self.DoAction = function() | 389 elseif type == "merchant" then |
137 local action = CyborgMMO_CallbackFactory:GetCallback(self.CallbackName) | 390 object = WowMerchant(...) |
138 CyborgMMO_DPrint("calling callback:- "..self.CallbackName) | 391 elseif type == "companion" then |
139 action() | 392 object = WowCompanion(...) |
140 end | 393 elseif type == "equipmentset" then |
141 | 394 object = WowEquipmentSet(type, ...) |
142 self.PickupCallback = function() | 395 elseif type == "callback" then |
143 local slot = nil | 396 object = WowCallback(...) |
144 local observers = CyborgMMO_RatPageModel:GetAllObservers() | 397 else |
145 for i=1,#observers do | 398 object = WowObject(type, ...) |
146 if MouseIsOver(observers[i]) then | 399 end |
147 slot = observers[i] | 400 |
148 break | 401 return object |
149 end | 402 end |
150 end | 403 |
151 slot:SetNormalTexture(slot.UnCheckedTexture) | 404 function CyborgMMO_ClearBinding(key) |
152 end | 405 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, nil) |
153 | 406 end |
154 self.ClickHandler = function(self, button, down) | 407 |
155 CyborgMMO_DPrint("click handler") | |
156 CallbackCursor:StopMoving() | |
157 CallbackCursor:Hide() | |
158 end | |
159 | |
160 self.Pickup = function() | |
161 self.PlaySound() | |
162 ClearCursor() | |
163 self.PickupCallback() | |
164 end | |
165 | |
166 self.SetBinding = function(key) | |
167 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(self.DoAction) | |
168 SetOverrideBindingClick(CyborgMMO_CallbackFactory.Frame, true, key, name, "LeftButton") | |
169 end | |
170 | |
171 return self | |
172 end, | |
173 } | |
174 | |
175 -- WowItem Class -- | |
176 CyborgMMO_WowItem = { | |
177 new = function(number, itemID) | |
178 local self = CyborgMMO_WowObject.new("item", number, itemID) -- base class | |
179 -- Set all the item info. -- | |
180 self.Name, | |
181 self.Link, | |
182 self.Rarity, | |
183 self.Level, | |
184 self.MinLevel, | |
185 self.Type, | |
186 self.SubType, | |
187 self.StackCount, | |
188 self.EquipLoc, | |
189 self.Texture, | |
190 self.SellPrice = GetItemInfo(itemID) | |
191 | |
192 -- override method -- | |
193 self.DoAction = function() | |
194 CyborgMMO_DPrint("Use Item") | |
195 end | |
196 | |
197 -- override method -- | |
198 self.Pickup = function() | |
199 self.PlaySound() | |
200 ClearCursor() | |
201 -- SetCursor(self.Texture) | |
202 return PickupItem(self.Link) | |
203 end | |
204 | |
205 self.SetBinding = function(key) | |
206 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, "ITEM "..self.Name) | |
207 end | |
208 | |
209 return self | |
210 end, | |
211 } | |
212 | |
213 -- WowSpell Class -- | |
214 CyborgMMO_WowSpell = { | |
215 new = function(type, spellbookID, spellbook) | |
216 local self = CyborgMMO_WowObject.new(type, spellbookID, spellbook) -- base class | |
217 self.SpellbookID = spellbookID | |
218 self.Spellbook = spellbook | |
219 self.Name,self.Rank = GetSpellBookItemName(spellbookID, spellbook) | |
220 self.Texture = GetSpellBookItemTexture(spellbookID, spellbook) | |
221 self.Type = type | |
222 | |
223 | |
224 -- override method -- | |
225 self.DoAction = function() | |
226 CyborgMMO_DPrint("Cast Spell") | |
227 end | |
228 | |
229 -- override method -- | |
230 self.Pickup = function() | |
231 self.PlaySound() | |
232 ClearCursor() | |
233 -- SetCursor(self.Texture) | |
234 return PickupSpellBookItem(self.SpellbookID, self.Spellbook) | |
235 end | |
236 | |
237 self.SetBinding = function(key) | |
238 CyborgMMO_DPrint("Binding to key "..key) | |
239 self.Key = key | |
240 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, self.Key, self.Type.." "..self.Name) | |
241 end | |
242 | |
243 return self | |
244 end, | |
245 } | |
246 | |
247 -- WowMacro Class -- | |
248 CyborgMMO_WowMacro = { | |
249 new = function(index) | |
250 local self = CyborgMMO_WowObject.new("macro", index, nil) -- base class | |
251 -- Set all the item info. -- | |
252 self.Name, | |
253 self.Texture, | |
254 self.Body, | |
255 self.isLocal = GetMacroInfo(index) | |
256 self.Index = index | |
257 | |
258 -- override method -- | |
259 self.DoAction = function() | |
260 CyborgMMO_DPrint("Use Item") | |
261 end | |
262 | |
263 -- override method -- | |
264 self.Pickup = function() | |
265 self.PlaySound() | |
266 ClearCursor() | |
267 -- SetCursor(self.Texture) | |
268 return PickupMacro(self.Index) | |
269 end | |
270 | |
271 self.SetBinding = function(key) | |
272 self.Key = key | |
273 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, "MACRO "..self.Index) | |
274 end | |
275 | |
276 return self | |
277 end, | |
278 } | |
279 | |
280 -- WowCompanion Class -- | |
281 CyborgMMO_WowCompanion = { | |
282 new = function(index, SubType) | |
283 local self = CyborgMMO_WowObject.new("companion", index, SubType) -- base class | |
284 -- Set all the item info. -- | |
285 self.Id, | |
286 self.Name, | |
287 self.SpellId, | |
288 self.Texture, | |
289 self.isSummoned = GetCompanionInfo(SubType, index) | |
290 self.SubType = SubType | |
291 self.index = index | |
292 -- override method -- | |
293 self.DoAction = function() | |
294 if self.SubType == "MOUNT" and IsMounted() then | |
295 Dismount() | |
296 else | |
297 CallCompanion(self.SubType, self.index) | |
298 end | |
299 end | |
300 | |
301 -- override method -- | |
302 self.Pickup = function() | |
303 self.PlaySound() | |
304 return PickupCompanion(self.SubType, self.index) | |
305 end | |
306 | |
307 self.SetBinding = function(key) | |
308 self.Key = key | |
309 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(self.DoAction) | |
310 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton") | |
311 -- SetOverrideBinding(hiddenModeChanger, true, key, "MACRO "..self.Index) | |
312 end | |
313 | |
314 return self | |
315 end, | |
316 } | |
317 | |
318 -- WowMerchant Class -- | |
319 CyborgMMO_WowMerchant = { | |
320 new = function(index) | |
321 local self = CyborgMMO_WowObject.new("macro", index, nil) -- base class | |
322 -- Set all the item info. -- | |
323 self.Name, | |
324 self.Texture, | |
325 self.Price, | |
326 self.Quantity, | |
327 self.NumAvailable, | |
328 self.IsUsable, | |
329 self.ExtendedCost = GetMerchantItemInfo(index) | |
330 self.Index = index | |
331 | |
332 -- override method -- | |
333 self.DoAction = function() | |
334 CyborgMMO_DPrint("Use Item") | |
335 end | |
336 | |
337 -- override method -- | |
338 self.Pickup = function() | |
339 self.PlaySound() | |
340 ClearCursor() | |
341 -- SetCursor(self.Texture) | |
342 return PickupMerchantItem(self.Index) | |
343 end | |
344 | |
345 self.SetBinding = function(key) | |
346 self.Key = key | |
347 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, "MERCHANT "..self.Index) | |
348 end | |
349 | |
350 return self | |
351 end, | |
352 } | |
353 | |
354 -- WowEquipmentSet Class -- | |
355 CyborgMMO_WowEquipmentSet = { | |
356 new = function(objectType, name, index) | |
357 local self = CyborgMMO_WowObject.new(objectType, name, index) -- base class | |
358 -- Set all the item info. -- | |
359 local texture,lessIndex = GetEquipmentSetInfoByName(name) | |
360 self.Texture = "Interface\\Icons\\"..texture | |
361 self.Name = name | |
362 self.Index = lessIndex + 1 | |
363 | |
364 -- override method -- | |
365 self.DoAction = function() | |
366 UseEquipmentSet(self.Name) | |
367 end | |
368 | |
369 -- override method -- | |
370 self.Pickup = function() | |
371 self.PlaySound() | |
372 ClearCursor() | |
373 -- SetCursor(self.Texture) | |
374 return PickupEquipmentSetByName(self.Name) | |
375 end | |
376 | |
377 self.SetBinding = function(key) | |
378 self.Key = key | |
379 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(self.DoAction); | |
380 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton") | |
381 end | |
382 | |
383 return self | |
384 end, | |
385 } | |
386 | |
387 -- End Of WowObjects -- |