Mercurial > wow > mylilpony
comparison libMyLilPony/libMyLilPony_mountFunctions.lua @ 6:21d6611a1307
Documented mountFunctions
| author | syzler |
|---|---|
| date | Tue, 05 Apr 2011 01:11:23 +0000 |
| parents | a4711e3c1eef |
| children | d96c15f7477b |
comparison
equal
deleted
inserted
replaced
| 5:a4711e3c1eef | 6:21d6611a1307 |
|---|---|
| 16 | 16 |
| 17 -- API functions for calling mounts | 17 -- API functions for calling mounts |
| 18 | 18 |
| 19 --- Summons a random mount. | 19 --- Summons a random mount. |
| 20 -- Does nothing if the only available mount is already summoned. | 20 -- Does nothing if the only available mount is already summoned. |
| 21 -- @return A Boolean value indicating whether or not a new mount was summoned. | 21 -- @return A Boolean value indicating whether or not a mount was successfully summoned. |
| 22 function MyLilPony.CallMount() | 22 function MyLilPony.CallMount() |
| 23 local filter = function (i) | 23 local filter = function (i) |
| 24 local _, _, _, _, summoned = GetCompanionInfo("MOUNT", i); | 24 local _, _, _, _, summoned = GetCompanionInfo("MOUNT", i); |
| 25 return not summoned; | 25 return not summoned; |
| 26 end | 26 end |
| 27 return MyLilPony.CallMountByFilter(filter); | 27 return MyLilPony.CallMountByFilter(filter); |
| 28 end | 28 end |
| 29 | 29 |
| 30 --- Summons a random flying mount. | |
| 31 -- Does nothing if the only available mount is already summoned. | |
| 32 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 30 function MyLilPony.CallFlyingMount() | 33 function MyLilPony.CallFlyingMount() |
| 31 local filter = function (i) | 34 local filter = function (i) |
| 32 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); | 35 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); |
| 33 return not summoned and MyLilPony.IsFlyingMount(id); | 36 return not summoned and MyLilPony.IsFlyingMount(id); |
| 34 end | 37 end |
| 35 return MyLilPony.CallMountByFilter(filter); | 38 return MyLilPony.CallMountByFilter(filter); |
| 36 end | 39 end |
| 37 | 40 |
| 41 --- Summons a random ground mount. | |
| 42 -- Does nothing if the only available mount is already summoned. | |
| 43 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 38 function MyLilPony.CallGroundMount() | 44 function MyLilPony.CallGroundMount() |
| 39 local filter = function (i) | 45 local filter = function (i) |
| 40 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); | 46 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); |
| 41 return not summoned and MyLilPony.IsGroundMount(id); | 47 return not summoned and MyLilPony.IsGroundMount(id); |
| 42 end | 48 end |
| 43 return MyLilPony.CallMountByFilter(filter); | 49 return MyLilPony.CallMountByFilter(filter); |
| 44 end | 50 end |
| 45 | 51 |
| 52 --- Summons a random aquatic mount. | |
| 53 -- Does nothing if the only available mount is already summoned. | |
| 54 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 46 function MyLilPony.CallAquaticMount() | 55 function MyLilPony.CallAquaticMount() |
| 47 local filter = function (i) | 56 local filter = function (i) |
| 48 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); | 57 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); |
| 49 return not summoned and MyLilPony.IsAquaticMount(id); | 58 return not summoned and MyLilPony.IsAquaticMount(id); |
| 50 end | 59 end |
| 51 return MyLilPony.CallMountByFilter(filter); | 60 return MyLilPony.CallMountByFilter(filter); |
| 52 end | 61 end |
| 53 | 62 |
| 63 --- Summons a mount by slot number in mount spellbook. | |
| 64 -- Does nothing if the specified mount is already summoned. | |
| 65 -- @param slotNumber The slot number of the desired mount in the mount spellbook. | |
| 66 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 54 function MyLilPony.CallMountBySlot(slotNumber) | 67 function MyLilPony.CallMountBySlot(slotNumber) |
| 55 local countMounts = GetNumCompanions("MOUNT"); | 68 local countMounts = GetNumCompanions("MOUNT"); |
| 56 if slotNumber > 0 and slotNumber < countMounts+1 then | 69 if slotNumber > 0 and slotNumber < countMounts+1 then |
| 57 local _, _, _, _, summoned = GetCompanionInfo("MOUNT", slotNumber); | 70 local _, _, _, _, summoned = GetCompanionInfo("MOUNT", slotNumber); |
| 58 MyLilPony.CallCompanion("MOUNT", slotNumber, not summoned); | 71 MyLilPony.CallCompanion("MOUNT", slotNumber, not summoned); |
| 59 return true; | 72 return true; |
| 60 end | 73 end |
| 61 return false; | 74 return false; |
| 62 end | 75 end |
| 63 | 76 |
| 77 --- Summons a mount by exact name match. | |
| 78 -- Does nothing if the specified mount is already summoned. | |
| 79 -- @param mountName The exact name (including correct upper/lower case) of the desired mount. | |
| 80 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 64 function MyLilPony.CallMountByName(mountName) | 81 function MyLilPony.CallMountByName(mountName) |
| 65 local result = false; | 82 local result = false; |
| 66 local countMounts = GetNumCompanions("MOUNT"); | 83 local countMounts = GetNumCompanions("MOUNT"); |
| 67 for i = 1, countMounts do | 84 for i = 1, countMounts do |
| 68 local _, name, _, _, summoned = GetCompanionInfo("MOUNT", i); | 85 local _, name, _, _, summoned = GetCompanionInfo("MOUNT", i); |
| 69 if name == mountName then | 86 if name == mountName then |
| 70 MyLilPony.CallCompanion("MOUNT", i, not summoned); | 87 MyLilPony.CallCompanion("MOUNT", i, not summoned); |
| 71 result = true; | 88 result = true; |
| 72 do break end | 89 do break end |
| 73 end | 90 end |
| 74 end | 91 end |
| 75 return result; | 92 return result; |
| 76 end | 93 end |
| 77 | 94 |
| 95 --- Summons a mount by name pattern match. | |
| 96 -- If the pattern matches multiple mounts, a random one is chosen. | |
| 97 -- Does nothing if the specified mount is already summoned. | |
| 98 -- @param mountNamePattern A string pattern against which mount names are matched (does not require correct upper/lower case). | |
| 99 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 78 function MyLilPony.CallMountByPattern(mountNamePattern) | 100 function MyLilPony.CallMountByPattern(mountNamePattern) |
| 79 local filter = function (i) | 101 local filter = function (i) |
| 80 local _, name, _, _, summoned = GetCompanionInfo("MOUNT", i); | 102 local _, name, _, _, summoned = GetCompanionInfo("MOUNT", i); |
| 81 return not summoned and MyLilPony.StringMatchIgnoreCase(name, mountNamePattern); | 103 return not summoned and MyLilPony.StringMatchIgnoreCase(name, mountNamePattern); |
| 82 end | 104 end |
| 83 return MyLilPony.CallMountByFilter(filter); | 105 return MyLilPony.CallMountByFilter(filter); |
| 84 end | 106 end |
| 85 | 107 |
| 108 --- Summons a mount by creature or spell ID. | |
| 109 -- Does nothing if the specified mount is already summoned. | |
| 110 -- @param id The creature or spell ID of the desired mount. | |
| 111 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 86 function MyLilPony.CallMountById(id) | 112 function MyLilPony.CallMountById(id) |
| 87 local result = false; | 113 local result = false; |
| 88 local countMounts = GetNumCompanions("MOUNT"); | 114 local countMounts = GetNumCompanions("MOUNT"); |
| 89 for i = 1, countMounts do | 115 for i = 1, countMounts do |
| 90 local creatureId, _, spellId, _, summoned = GetCompanionInfo("MOUNT", i); | 116 local creatureId, _, spellId, _, summoned = GetCompanionInfo("MOUNT", i); |
| 91 if id == creatureId or id == spellId then | 117 if id == creatureId or id == spellId then |
| 92 MyLilPony.CallCompanion("MOUNT", i, not summoned); | 118 MyLilPony.CallCompanion("MOUNT", i, not summoned); |
| 93 result = true; | 119 result = true; |
| 94 do break end | 120 do break end |
| 95 end | 121 end |
| 96 end | 122 end |
| 97 return result; | 123 return result; |
| 98 end | 124 end |
| 99 | 125 |
| 126 --- Summons a mount by spell ID. | |
| 127 -- Does nothing if the specified mount is already summoned. | |
| 128 -- @param spellId The spell ID of the desired mount. | |
| 129 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 100 function MyLilPony.CallMountBySpell(spellId) | 130 function MyLilPony.CallMountBySpell(spellId) |
| 101 local result = false; | 131 local result = false; |
| 102 local countMounts = GetNumCompanions("MOUNT"); | 132 local countMounts = GetNumCompanions("MOUNT"); |
| 103 for i = 1, countMounts do | 133 for i = 1, countMounts do |
| 104 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); | 134 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); |
| 105 if id == spellId then | 135 if id == spellId then |
| 106 MyLilPony.CallCompanion("MOUNT", i, not summoned); | 136 MyLilPony.CallCompanion("MOUNT", i, not summoned); |
| 107 result = true; | 137 result = true; |
| 108 do break end | 138 do break end |
| 109 end | 139 end |
| 110 end | 140 end |
| 111 return result; | 141 return result; |
| 112 end | 142 end |
| 113 | 143 |
| 144 --- Summons a mount by creature ID. | |
| 145 -- Does nothing if the specified mount is already summoned. | |
| 146 -- @param creatureId The creature ID of the desired mount. | |
| 147 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 114 function MyLilPony.CallMountByCreature(creatureId) | 148 function MyLilPony.CallMountByCreature(creatureId) |
| 115 local result = false; | 149 local result = false; |
| 116 local countMounts = GetNumCompanions("MOUNT"); | 150 local countMounts = GetNumCompanions("MOUNT"); |
| 117 for i = 1, countMounts do | 151 for i = 1, countMounts do |
| 118 local id, _, _, _, summoned = GetCompanionInfo("MOUNT", i); | 152 local id, _, _, _, summoned = GetCompanionInfo("MOUNT", i); |
| 119 if id == creatureId then | 153 if id == creatureId then |
| 120 MyLilPony.CallCompanion("MOUNT", i, not summoned); | 154 MyLilPony.CallCompanion("MOUNT", i, not summoned); |
| 121 result = true; | 155 result = true; |
| 122 do break end | 156 do break end |
| 123 end | 157 end |
| 124 end | 158 end |
| 125 return result; | 159 return result; |
| 126 end | 160 end |
| 127 | 161 |
| 162 --- Summons a mount by attempting to match the mount of the specified unit. | |
| 163 -- The function checks the buffs of the specified unit against the mount spellbook for matches. | |
| 164 -- As a result, the function will only likely work against player characters. | |
| 165 -- Does nothing if the specified unit's mount is already summoned. | |
| 166 -- @param unit The unit frame name (e.g. "target", "player", "focus") of the unit whose mount is desired. | |
| 167 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 168 -- @usage MyLilPony.CallMountByMatch("target") | |
| 128 function MyLilPony.CallMountByMatch(unit) | 169 function MyLilPony.CallMountByMatch(unit) |
| 129 local result = false; | 170 local result = false; |
| 130 local unitBuffs = MyLilPony.GetUnitBuffs(unit); | 171 local unitBuffs = MyLilPony.GetUnitBuffs(unit); |
| 131 local countMounts = GetNumCompanions("MOUNT"); | 172 local countMounts = GetNumCompanions("MOUNT"); |
| 132 for i = 1, countMounts do | 173 for i = 1, countMounts do |
| 133 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); | 174 local _, _, id, _, summoned = GetCompanionInfo("MOUNT", i); |
| 134 if unitBuffs[id] ~= nil then | 175 if unitBuffs[id] ~= nil then |
| 135 MyLilPony.CallCompanion("MOUNT", i, not summoned); | 176 MyLilPony.CallCompanion("MOUNT", i, not summoned); |
| 136 result = true; | 177 result = true; |
| 137 do break end | 178 do break end |
| 138 end | 179 end |
| 139 end | 180 end |
| 140 return result; | 181 return result; |
| 141 end | 182 end |
| 142 | 183 |
| 184 --- Summons a random mount after filtering the mount spellbook. | |
| 185 -- Does nothing if the specified mount is already summoned. | |
| 186 -- @param filter A filter callback function which takes a single mount slot number and returns a Boolean value indicating whether or not the the indicated mount should be included. | |
| 187 -- @return A Boolean value indicating whether or not a mount was successfully summoned. | |
| 188 -- @usage local filter = function (i) | |
| 189 -- local _, name, _, _, summoned = GetCompanionInfo("MOUNT", i); | |
| 190 -- return not summoned and string.match(name, pattern); | |
| 191 -- end | |
| 192 -- return MyLilPony.CallMountByFilter(filter); | |
| 143 function MyLilPony.CallMountByFilter(filter) | 193 function MyLilPony.CallMountByFilter(filter) |
| 144 local countMounts = GetNumCompanions("MOUNT"); | 194 local countMounts = GetNumCompanions("MOUNT"); |
| 145 if countMounts > 0 then | 195 if countMounts > 0 then |
| 146 local results = {}; | 196 local results = {}; |
| 147 local countResults = 0; | 197 local countResults = 0; |
| 161 end | 211 end |
| 162 end | 212 end |
| 163 return false; | 213 return false; |
| 164 end | 214 end |
| 165 | 215 |
| 216 --- Lists available mounts by name. | |
| 217 -- @return A list of mount names. Since this function returns all known mounts, the index of each entry in the list is also the mount's slot number. | |
| 166 function MyLilPony.ListMounts() | 218 function MyLilPony.ListMounts() |
| 167 local results = {}; | 219 local results = {}; |
| 168 local countMounts = GetNumCompanions("MOUNT"); | 220 local countMounts = GetNumCompanions("MOUNT"); |
| 169 for i = 1, countMounts do | 221 for i = 1, countMounts do |
| 170 local _, name, _, _, _ = GetCompanionInfo("MOUNT", i); | 222 local _, name, _, _, _ = GetCompanionInfo("MOUNT", i); |
| 171 results[i] = name; | 223 results[i] = name; |
| 172 end | 224 end |
| 173 return results; | 225 return results; |
| 174 end | 226 end |
| 175 | 227 |
| 228 --- Lists available ground mounts by name. | |
| 229 -- @return A list of ground mount names. | |
| 176 function MyLilPony.ListGroundMounts() | 230 function MyLilPony.ListGroundMounts() |
| 177 local results = {}; | 231 local results = {}; |
| 178 local countMounts = GetNumCompanions("MOUNT"); | 232 local countMounts = GetNumCompanions("MOUNT"); |
| 179 local x = 1; | 233 local x = 1; |
| 180 for i = 1, countMounts do | 234 for i = 1, countMounts do |
| 185 end | 239 end |
| 186 end | 240 end |
| 187 return results; | 241 return results; |
| 188 end | 242 end |
| 189 | 243 |
| 244 --- Lists available flying mounts by name. | |
| 245 -- @return A list of flying mount names. | |
| 190 function MyLilPony.ListFlyingMounts() | 246 function MyLilPony.ListFlyingMounts() |
| 191 local results = {}; | 247 local results = {}; |
| 192 local countMounts = GetNumCompanions("MOUNT"); | 248 local countMounts = GetNumCompanions("MOUNT"); |
| 193 local x = 1; | 249 local x = 1; |
| 194 for i = 1, countMounts do | 250 for i = 1, countMounts do |
| 199 end | 255 end |
| 200 end | 256 end |
| 201 return results; | 257 return results; |
| 202 end | 258 end |
| 203 | 259 |
| 260 --- Lists available aquatic mounts by name. | |
| 261 -- @return A list of aquatic mount names. | |
| 204 function MyLilPony.ListAquaticMounts() | 262 function MyLilPony.ListAquaticMounts() |
| 205 local results = {}; | 263 local results = {}; |
| 206 local countMounts = GetNumCompanions("MOUNT"); | 264 local countMounts = GetNumCompanions("MOUNT"); |
| 207 local x = 1; | 265 local x = 1; |
| 208 for i = 1, countMounts do | 266 for i = 1, countMounts do |
| 213 end | 271 end |
| 214 end | 272 end |
| 215 return results; | 273 return results; |
| 216 end | 274 end |
| 217 | 275 |
| 276 --- Lists available mounts names whose name matches a given pattern. | |
| 277 -- @param mountNamePattern A string pattern against which mount names are matched (does not require correct upper/lower case). | |
| 278 -- @return A list of matching mount names. | |
| 218 function MyLilPony.ListMountsByPattern(mountNamePattern) | 279 function MyLilPony.ListMountsByPattern(mountNamePattern) |
| 219 local results = {}; | 280 local results = {}; |
| 220 local countMounts = GetNumCompanions("MOUNT"); | 281 local countMounts = GetNumCompanions("MOUNT"); |
| 221 local x = 1; | 282 local x = 1; |
| 222 for i = 1, countMounts do | 283 for i = 1, countMounts do |
