annotate WowObjects.lua @ 65:8b8b0bade520

Fixed support for mounts using the new MountJournal and mount IDs (no conversion of old profiles at the moment).
author Jerome Vuarand <jerome.vuarand@gmail.com>
date Thu, 23 Oct 2014 13:44:59 +0100
parents 7cbd32de1fdd
children 840c9f09a707
rev   line source
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@25 21 ------------------------------------------------------------------------------
madcatzinc@0 22
madcatzinc@25 23 local WowObject_methods = {}
madcatzinc@25 24 local WowObject_mt = {__index=WowObject_methods}
madcatzinc@25 25
madcatzinc@25 26 local function WowObject(type, detail, subdetail)
madcatzinc@25 27 local self = {}
madcatzinc@25 28
madcatzinc@34 29 self.type = type
madcatzinc@34 30 self.detail = detail
madcatzinc@34 31 self.subdetail = subdetail
madcatzinc@25 32
madcatzinc@25 33 setmetatable(self, WowObject_mt)
madcatzinc@25 34
madcatzinc@25 35 return self
madcatzinc@25 36 end
madcatzinc@25 37
madcatzinc@34 38 function WowObject_methods:SaveData()
madcatzinc@34 39 return {
madcatzinc@34 40 type = self.type,
madcatzinc@34 41 detail = self.detail,
madcatzinc@34 42 subdetail = self.subdetail,
madcatzinc@34 43 }
madcatzinc@34 44 end
madcatzinc@34 45
madcatzinc@25 46 function WowObject_methods:DoAction()
madcatzinc@25 47 CyborgMMO_DPrint("Nothing To Do")
madcatzinc@25 48 end
madcatzinc@25 49
madcatzinc@25 50 function WowObject_methods:Pickup()
madcatzinc@25 51 CyborgMMO_DPrint("Pick up Item")
madcatzinc@25 52 end
madcatzinc@25 53
madcatzinc@25 54 function WowObject_methods:SetBinding(key)
madcatzinc@25 55 end
madcatzinc@25 56
madcatzinc@25 57 ------------------------------------------------------------------------------
madcatzinc@25 58
madcatzinc@25 59 local WowCallback_methods = setmetatable({}, {__index=WowObject_methods})
madcatzinc@25 60 local WowCallback_mt = {__index=WowCallback_methods}
madcatzinc@25 61
madcatzinc@25 62 local function WowCallback(callbackName)
madcatzinc@25 63 local self = WowObject("callback", callbackName, "")
madcatzinc@25 64
madcatzinc@34 65 self.callbackName = callbackName
madcatzinc@47 66 self.texture = "Interface\\AddOns\\CyborgMMO7\\Graphics\\"..callbackName.."Unselected"
madcatzinc@25 67
madcatzinc@25 68 setmetatable(self, WowCallback_mt)
madcatzinc@25 69
madcatzinc@25 70 return self
madcatzinc@25 71 end
madcatzinc@25 72
madcatzinc@25 73 function WowCallback_methods:SetTextures(buttonFrame)
madcatzinc@47 74 buttonFrame:SetNormalTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.callbackName.."Unselected")
madcatzinc@47 75 buttonFrame:SetPushedTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.callbackName.."Down")
madcatzinc@47 76 buttonFrame:SetHighlightTexture("Interface\\AddOns\\CyborgMMO7\\Graphics\\"..self.callbackName.."Over")
madcatzinc@25 77 end
madcatzinc@25 78
madcatzinc@25 79 function WowCallback_methods:DoAction()
madcatzinc@34 80 local action = CyborgMMO_CallbackFactory:GetCallback(self.callbackName)
madcatzinc@25 81 action()
madcatzinc@25 82 end
madcatzinc@25 83
madcatzinc@25 84 function WowCallback_methods:PickupCallback()
madcatzinc@25 85 local slot = nil
madcatzinc@25 86 local observers = CyborgMMO_RatPageModel:GetAllObservers()
madcatzinc@25 87 for i=1,#observers do
madcatzinc@25 88 if MouseIsOver(observers[i]) then
madcatzinc@25 89 slot = observers[i]
madcatzinc@25 90 break
madcatzinc@0 91 end
madcatzinc@25 92 end
madcatzinc@25 93 slot:SetNormalTexture(slot.UnCheckedTexture)
madcatzinc@25 94 end
madcatzinc@0 95
madcatzinc@25 96 function WowCallback_methods:Pickup()
madcatzinc@34 97 PlaySound("igAbilityIconDrop")
madcatzinc@25 98 ClearCursor()
madcatzinc@25 99 self:PickupCallback()
madcatzinc@25 100 end
madcatzinc@0 101
madcatzinc@25 102 function WowCallback_methods:SetBinding(key)
madcatzinc@25 103 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function(...) return self:DoAction(...) end)
madcatzinc@25 104 SetOverrideBindingClick(CyborgMMO_CallbackFactory.Frame, true, key, name, "LeftButton")
madcatzinc@25 105 end
madcatzinc@0 106
madcatzinc@25 107 ------------------------------------------------------------------------------
madcatzinc@0 108
madcatzinc@25 109 local WowItem_methods = setmetatable({}, {__index=WowObject_methods})
madcatzinc@25 110 local WowItem_mt = {__index=WowItem_methods}
madcatzinc@0 111
madcatzinc@34 112 local function WowItem(itemID)
madcatzinc@39 113 local texture = select(10, GetItemInfo(itemID)) -- :FIXME: this may fail too early in the session (like when loading saved data)
madcatzinc@39 114 if not texture then
madcatzinc@39 115 return nil
madcatzinc@39 116 end
madcatzinc@39 117
madcatzinc@34 118 local self = WowObject("item", itemID)
madcatzinc@0 119
madcatzinc@34 120 self.itemID = itemID
madcatzinc@39 121 self.texture = texture
madcatzinc@0 122
madcatzinc@25 123 setmetatable(self, WowItem_mt)
madcatzinc@0 124
madcatzinc@25 125 return self
madcatzinc@25 126 end
madcatzinc@0 127
madcatzinc@25 128 function WowItem_methods:Pickup()
madcatzinc@34 129 -- PlaySound("igAbilityIconDrop")
madcatzinc@25 130 ClearCursor()
madcatzinc@34 131 -- SetCursor(self.texture)
madcatzinc@34 132 return PickupItem(self.itemID)
madcatzinc@25 133 end
madcatzinc@25 134
madcatzinc@25 135 function WowItem_methods:SetBinding(key)
madcatzinc@34 136 local name = GetItemInfo(self.itemID)
madcatzinc@34 137 SetOverrideBindingItem(CyborgMMO_CallbackFactory.Frame, true, key, name)
madcatzinc@25 138 end
madcatzinc@25 139
madcatzinc@25 140 ------------------------------------------------------------------------------
madcatzinc@25 141
madcatzinc@25 142 local WowSpell_methods = setmetatable({}, {__index=WowObject_methods})
madcatzinc@25 143 local WowSpell_mt = {__index=WowSpell_methods}
madcatzinc@25 144
madcatzinc@34 145 local function WowSpell(spellID)
madcatzinc@39 146 local texture = GetSpellTexture(spellID)
madcatzinc@39 147 if not texture then
madcatzinc@39 148 return nil
madcatzinc@39 149 end
madcatzinc@39 150
madcatzinc@34 151 local self = WowObject("spell", spellID)
madcatzinc@25 152
madcatzinc@34 153 self.spellID = spellID
madcatzinc@39 154 self.texture = texture
madcatzinc@25 155
madcatzinc@25 156 setmetatable(self, WowSpell_mt)
madcatzinc@25 157
madcatzinc@25 158 return self
madcatzinc@25 159 end
madcatzinc@25 160
madcatzinc@25 161 function WowSpell_methods:DoAction()
madcatzinc@25 162 CyborgMMO_DPrint("Cast Spell")
madcatzinc@25 163 end
madcatzinc@25 164
madcatzinc@25 165 function WowSpell_methods:Pickup()
madcatzinc@34 166 -- PlaySound("igAbilityIconDrop")
madcatzinc@25 167 ClearCursor()
madcatzinc@34 168 -- SetCursor(self.texture)
madcatzinc@34 169 -- return PickupSpellBookItem(self.SpellbookID, self.Spellbook)
madcatzinc@34 170 return PickupSpell(self.spellID)
madcatzinc@25 171 end
madcatzinc@25 172
madcatzinc@25 173 function WowSpell_methods:SetBinding(key)
madcatzinc@34 174 -- CyborgMMO_DPrint("Binding to key "..key)
madcatzinc@34 175 local name = GetSpellInfo(self.spellID)
madcatzinc@34 176 CyborgMMO_DPrint("binding spell:", self.spellID, name)
madcatzinc@34 177 SetOverrideBindingSpell(CyborgMMO_CallbackFactory.Frame, true, key, name)
madcatzinc@25 178 end
madcatzinc@25 179
madcatzinc@25 180 ------------------------------------------------------------------------------
madcatzinc@25 181
madcatzinc@25 182 local WowMacro_methods = setmetatable({}, {__index=WowObject_methods})
madcatzinc@25 183 local WowMacro_mt = {__index=WowMacro_methods}
madcatzinc@25 184
madcatzinc@34 185 local function WowMacro(name)
madcatzinc@39 186 local texture = select(2, GetMacroInfo(name))
madcatzinc@39 187 if not texture then
madcatzinc@39 188 return nil
madcatzinc@39 189 end
madcatzinc@39 190
madcatzinc@34 191 local self = WowObject("macro", name)
madcatzinc@25 192
madcatzinc@34 193 self.name = name
madcatzinc@39 194 self.texture = texture
madcatzinc@25 195
madcatzinc@25 196 setmetatable(self, WowMacro_mt)
madcatzinc@25 197
madcatzinc@25 198 return self
madcatzinc@25 199 end
madcatzinc@25 200
madcatzinc@25 201 function WowMacro_methods:DoAction()
madcatzinc@25 202 CyborgMMO_DPrint("Use Item")
madcatzinc@25 203 end
madcatzinc@25 204
madcatzinc@25 205 function WowMacro_methods:Pickup()
madcatzinc@34 206 -- PlaySound("igAbilityIconDrop")
madcatzinc@25 207 ClearCursor()
madcatzinc@34 208 -- SetCursor(self.texture)
madcatzinc@34 209 return PickupMacro(self.name)
madcatzinc@25 210 end
madcatzinc@25 211
madcatzinc@25 212 function WowMacro_methods:SetBinding(key)
madcatzinc@34 213 SetOverrideBindingMacro(CyborgMMO_CallbackFactory.Frame, true, key, self.name)
madcatzinc@25 214 end
madcatzinc@25 215
madcatzinc@25 216 ------------------------------------------------------------------------------
madcatzinc@25 217
madcatzinc@25 218 local WowCompanion_methods = setmetatable({}, {__index=WowObject_methods})
madcatzinc@25 219 local WowCompanion_mt = {__index=WowCompanion_methods}
madcatzinc@25 220
madcatzinc@34 221 local function WowCompanion(spellID)
madcatzinc@39 222 local texture = select(3, GetSpellInfo(spellID))
madcatzinc@39 223 if not texture then
madcatzinc@39 224 return nil
madcatzinc@39 225 end
madcatzinc@39 226
madcatzinc@34 227 local self = WowObject("companion", spellID)
madcatzinc@34 228 CyborgMMO_DPrint("creating companion binding:", type, spellID)
madcatzinc@25 229
madcatzinc@34 230 self.spellID = spellID
madcatzinc@39 231 self.texture = texture
madcatzinc@25 232
madcatzinc@25 233 setmetatable(self, WowCompanion_mt)
madcatzinc@25 234
madcatzinc@25 235 return self
madcatzinc@25 236 end
madcatzinc@25 237
madcatzinc@34 238 local function IdentifyCompanion(spellID)
madcatzinc@34 239 for _,subtype in ipairs{'MOUNT', 'CRITTER'} do
madcatzinc@34 240 for index=1,GetNumCompanions(subtype) do
madcatzinc@34 241 local spellID2,_,active = select(3, GetCompanionInfo(subtype, index))
madcatzinc@34 242 if spellID2 == spellID then
madcatzinc@34 243 return subtype,index,active
madcatzinc@34 244 end
madcatzinc@34 245 end
madcatzinc@34 246 end
madcatzinc@34 247 end
madcatzinc@34 248
madcatzinc@25 249 function WowCompanion_methods:DoAction()
madcatzinc@34 250 local subtype,index,active = IdentifyCompanion(self.spellID)
madcatzinc@34 251 -- if subtype == "MOUNT" and IsMounted() then
madcatzinc@34 252 if subtype == "MOUNT" and active then
madcatzinc@25 253 Dismount()
madcatzinc@34 254 elseif subtype and index then
madcatzinc@34 255 CallCompanion(subtype, index)
madcatzinc@25 256 end
madcatzinc@25 257 end
madcatzinc@25 258
madcatzinc@25 259 function WowCompanion_methods:Pickup()
madcatzinc@34 260 -- PlaySound("igAbilityIconDrop")
madcatzinc@34 261 local subtype,index = IdentifyCompanion(self.spellID)
madcatzinc@34 262 if subtype and index then
madcatzinc@34 263 return PickupCompanion(subtype, index)
madcatzinc@34 264 end
madcatzinc@25 265 end
madcatzinc@25 266
madcatzinc@25 267 function WowCompanion_methods:SetBinding(key)
madcatzinc@25 268 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function() self:DoAction() end)
madcatzinc@25 269 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton")
madcatzinc@25 270 end
madcatzinc@25 271
madcatzinc@25 272 ------------------------------------------------------------------------------
madcatzinc@25 273
madcatzinc@25 274 local WowEquipmentSet_methods = setmetatable({}, {__index=WowObject_methods})
madcatzinc@25 275 local WowEquipmentSet_mt = {__index=WowEquipmentSet_methods}
madcatzinc@25 276
madcatzinc@34 277 local function WowEquipmentSet(name)
madcatzinc@39 278 local texture = GetEquipmentSetInfoByName(name)
madcatzinc@39 279 if not texture then
madcatzinc@39 280 return nil
madcatzinc@39 281 end
madcatzinc@39 282
madcatzinc@34 283 local self = WowObject("equipmentset", name)
madcatzinc@25 284
madcatzinc@34 285 self.name = name
madcatzinc@34 286 self.texture = "Interface\\Icons\\"..texture
madcatzinc@25 287
madcatzinc@25 288 setmetatable(self, WowEquipmentSet_mt)
madcatzinc@25 289
madcatzinc@25 290 return self
madcatzinc@25 291 end
madcatzinc@25 292
madcatzinc@25 293 function WowEquipmentSet_methods:DoAction()
madcatzinc@34 294 UseEquipmentSet(self.name)
madcatzinc@25 295 end
madcatzinc@25 296
madcatzinc@25 297 function WowEquipmentSet_methods:Pickup()
madcatzinc@34 298 -- PlaySound("igAbilityIconDrop")
madcatzinc@25 299 ClearCursor()
madcatzinc@34 300 -- SetCursor(self.texture)
madcatzinc@50 301 return PickupEquipmentSetByName(self.name)
madcatzinc@25 302 end
madcatzinc@25 303
madcatzinc@25 304 function WowEquipmentSet_methods:SetBinding(key)
madcatzinc@34 305 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function() self:DoAction() end)
madcatzinc@34 306 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton")
madcatzinc@34 307 end
madcatzinc@34 308
madcatzinc@34 309 ------------------------------------------------------------------------------
madcatzinc@34 310
madcatzinc@34 311 local WowBattlePet_methods = setmetatable({}, {__index=WowObject_methods})
madcatzinc@34 312 local WowBattlePet_mt = {__index=WowBattlePet_methods}
madcatzinc@34 313
madcatzinc@34 314 local function WowBattlePet(petID)
madcatzinc@39 315 local texture = select(9, C_PetJournal.GetPetInfoByPetID(petID)) -- :FIXME: this may fail too early in the session (like when loading saved data)
madcatzinc@39 316 if not texture then
madcatzinc@39 317 return nil
madcatzinc@39 318 end
madcatzinc@39 319
madcatzinc@34 320 local self = WowObject("battlepet", petID)
madcatzinc@34 321 CyborgMMO_DPrint("creating battle pet binding:", petID)
madcatzinc@34 322
madcatzinc@34 323 self.petID = petID
madcatzinc@39 324 self.texture = texture
madcatzinc@34 325
madcatzinc@34 326 setmetatable(self, WowBattlePet_mt)
madcatzinc@34 327
madcatzinc@34 328 return self
madcatzinc@34 329 end
madcatzinc@34 330
madcatzinc@34 331 --[[
madcatzinc@34 332 local function IdentifyPet(petID)
madcatzinc@34 333 local creatureID = select(11, C_PetJournal.GetPetInfoByPetID(petID))
madcatzinc@34 334 for index=1,GetNumCompanions('CRITTER') do
madcatzinc@34 335 local creatureID2,_,spellID = GetCompanionInfo('CRITTER', index)
madcatzinc@34 336 if creatureID2 == creatureID then
madcatzinc@34 337 return spellID
madcatzinc@34 338 end
madcatzinc@34 339 end
madcatzinc@34 340 end
madcatzinc@34 341 --]]
madcatzinc@34 342
madcatzinc@34 343 function WowBattlePet_methods:DoAction()
madcatzinc@34 344 -- PlaySound("igMainMenuOptionCheckBoxOn")
madcatzinc@34 345 C_PetJournal.SummonPetByGUID(self.petID)
madcatzinc@34 346 end
madcatzinc@34 347
madcatzinc@34 348 function WowBattlePet_methods:Pickup()
madcatzinc@34 349 -- PlaySound("igAbilityIconDrop")
madcatzinc@34 350 return C_PetJournal.PickupPet(self.petID)
madcatzinc@34 351 end
madcatzinc@34 352
madcatzinc@34 353 function WowBattlePet_methods:SetBinding(key)
madcatzinc@34 354 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function() self:DoAction() end)
madcatzinc@25 355 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton")
madcatzinc@25 356 end
madcatzinc@25 357
madcatzinc@25 358 ------------------------------------------------------------------------------
madcatzinc@25 359
jerome@65 360 local function GetMountInfoEx(mountID)
jerome@65 361 -- special case for random mount
jerome@65 362 if mountID == 0xFFFFFFF then
jerome@65 363 return 0,"Interface/ICONS/ACHIEVEMENT_GUILDPERK_MOUNTUP"
jerome@65 364 end
jerome@65 365
jerome@65 366 local spellID = CyborgMMO_MountMap[mountID] or CyborgMMO_LocalMountMap[mountID]
jerome@65 367 if not spellID then return nil,"not in database" end
jerome@65 368
jerome@65 369 local mountIndex
jerome@65 370 for i=1,C_MountJournal.GetNumMounts() do
jerome@65 371 local _,spell,texture = C_MountJournal.GetMountInfo(i) -- :FIXME: this may fail too early in the session (like when loading saved data)
jerome@65 372 if spell==spellID then
jerome@65 373 return i,texture
jerome@65 374 end
jerome@65 375 end
jerome@65 376
jerome@65 377 return nil,"not in journal"
jerome@65 378 end
jerome@65 379
jerome@65 380 local WowMount_methods = setmetatable({}, {__index=WowObject_methods})
jerome@65 381 local WowMount_mt = {__index=WowMount_methods}
jerome@65 382
jerome@65 383 local function WowMount(mountID)
jerome@65 384 local mountIndex,texture = GetMountInfoEx(mountID)
jerome@65 385 if not mountIndex then
jerome@65 386 -- the mount might have been removed from the game
jerome@65 387 return nil
jerome@65 388 end
jerome@65 389
jerome@65 390 local self = WowObject("mount", mountID)
jerome@65 391 CyborgMMO_DPrint("creating mount binding:", mountID, texture)
jerome@65 392
jerome@65 393 self.mountID = mountID
jerome@65 394 self.texture = texture
jerome@65 395
jerome@65 396 setmetatable(self, WowMount_mt)
jerome@65 397
jerome@65 398 return self
jerome@65 399 end
jerome@65 400
jerome@65 401 function WowMount_methods:DoAction()
jerome@65 402 local mountIndex = GetMountInfoEx(self.mountID)
jerome@65 403 if not mountIndex then return end
jerome@65 404
jerome@65 405 C_MountJournal.Summon(mountIndex)
jerome@65 406 end
jerome@65 407
jerome@65 408 function WowMount_methods:Pickup()
jerome@65 409 local mountIndex = GetMountInfoEx(self.mountID)
jerome@65 410 if not mountIndex then return end
jerome@65 411
jerome@65 412 return C_MountJournal.Pickup(mountIndex)
jerome@65 413 end
jerome@65 414
jerome@65 415 function WowMount_methods:SetBinding(key)
jerome@65 416 local buttonFrame,parentFrame,name = CyborgMMO_CallbackFactory:AddCallback(function() self:DoAction() end)
jerome@65 417 SetOverrideBindingClick(parentFrame, true, key, name, "LeftButton")
jerome@65 418 end
jerome@65 419
jerome@65 420 ------------------------------------------------------------------------------
jerome@65 421
madcatzinc@25 422 -- this class is used by pre-defined icons in the corner of the Rat page
madcatzinc@4 423 CyborgMMO_CallbackIcons = {
madcatzinc@0 424 new = function(self)
madcatzinc@13 425 self.point,
madcatzinc@13 426 self.relativeTo,
madcatzinc@13 427 self.relativePoint,
madcatzinc@13 428 self.xOfs,
madcatzinc@13 429 self.yOfs = self:GetPoint()
madcatzinc@13 430 -- self:SetPoint(self.point, self.relativeTo, self.relativePoint, self.xOfs, self.yOfs)
madcatzinc@13 431 self.strata = self:GetFrameStrata()
madcatzinc@25 432 self.wowObject = WowCallback(string.gsub(self:GetName(), self:GetParent():GetName(), "",1))
madcatzinc@25 433 self.wowObject:SetTextures(self)
madcatzinc@0 434 self:RegisterForDrag("LeftButton","RightButton")
madcatzinc@13 435 self:SetResizable(false)
madcatzinc@13 436
madcatzinc@0 437 self.OnClick = function()
madcatzinc@25 438 self.wowObject:DoAction()
madcatzinc@0 439 end
madcatzinc@13 440
madcatzinc@0 441 self.DragStart = function()
madcatzinc@13 442 self:SetMovable(true)
madcatzinc@13 443 self:StartMoving()
madcatzinc@13 444 self.isMoving = true
madcatzinc@0 445 self:SetFrameStrata("TOOLTIP")
madcatzinc@0 446 end
madcatzinc@13 447
madcatzinc@0 448 self.DragStop = function()
madcatzinc@13 449 self:SetFrameStrata(self.strata)
madcatzinc@13 450 self.isMoving = false
madcatzinc@13 451 self:SetMovable(false)
madcatzinc@13 452 self:StopMovingOrSizing()
madcatzinc@0 453
madcatzinc@13 454 self:ClearAllPoints()
madcatzinc@13 455 self:SetPoint(self.point, self.relativeTo, self.relativePoint, self.xOfs, self.yOfs)
madcatzinc@13 456 local x,y = GetCursorPosition()
madcatzinc@18 457 CyborgMMO_RatPageController:CallbackDropped(self)
madcatzinc@0 458 end
madcatzinc@13 459
madcatzinc@13 460 return self
madcatzinc@13 461 end,
madcatzinc@0 462 }
madcatzinc@0 463
madcatzinc@25 464 ------------------------------------------------------------------------------
madcatzinc@13 465
madcatzinc@25 466 function CyborgMMO_CreateWowObject(type, ...)
madcatzinc@39 467 local object,unsupported
madcatzinc@13 468
madcatzinc@25 469 if type == "item" then
madcatzinc@39 470 object = WowItem(...)
madcatzinc@25 471 elseif type == "macro" then
madcatzinc@25 472 object = WowMacro(...)
madcatzinc@25 473 elseif type == "spell" then
madcatzinc@33 474 object = WowSpell(...)
madcatzinc@25 475 elseif type == "companion" then
madcatzinc@25 476 object = WowCompanion(...)
madcatzinc@25 477 elseif type == "equipmentset" then
madcatzinc@34 478 object = WowEquipmentSet(...)
madcatzinc@34 479 elseif type == "battlepet" then
madcatzinc@34 480 object = WowBattlePet(...)
jerome@65 481 elseif type == "mount" then
jerome@65 482 object = WowMount(...)
madcatzinc@25 483 elseif type == "callback" then
madcatzinc@25 484 object = WowCallback(...)
madcatzinc@25 485 else
madcatzinc@39 486 CyborgMMO_DPrint("unsupported wow object:", type, ...)
madcatzinc@39 487 unsupported = true
madcatzinc@39 488 end
madcatzinc@39 489 if not object and not unsupported then
madcatzinc@39 490 CyborgMMO_DPrint("creating "..tostring(type).." object failed:", type, ...)
madcatzinc@25 491 end
madcatzinc@13 492
madcatzinc@25 493 return object
madcatzinc@25 494 end
madcatzinc@0 495
madcatzinc@25 496 function CyborgMMO_ClearBinding(key)
madcatzinc@25 497 SetOverrideBinding(CyborgMMO_CallbackFactory.Frame, true, key, nil)
madcatzinc@25 498 end
madcatzinc@13 499