annotate data.lua @ 37:ef22738aebfe

Do not save recipe if error occurs during scanning
author contrebasse
date Fri, 29 Apr 2011 22:56:49 +0200
parents ef5fe66a3f0b
children aa2f6965c0f6
rev   line source
contrebasse@0 1 local addonName, A = ...
contrebasse@0 2
contrebasse@15 3 local MillID = 51005
contrebasse@15 4 local macroMill = "/cast "..GetSpellInfo(MillID).."\n/use "
contrebasse@31 5 local MillLink = GetSpellLink(MillID)
contrebasse@31 6 MillID = nil
contrebasse@15 7 local ProspectID = 31252
contrebasse@15 8 local macroProspect = "/cast "..GetSpellInfo(ProspectID).."\n/use "
contrebasse@31 9 local ProspectLink = GetSpellLink(ProspectID)
contrebasse@31 10 ProspectID = nil
contrebasse@0 11 A.data = {
contrebasse@0 12 -- Mill
contrebasse@11 13 -- Normal pigments
contrebasse@0 14 [39151] = { -- Alabaster Pigment
contrebasse@3 15 spell = macroMill,
contrebasse@31 16 spellLink = MillLink,
contrebasse@11 17 {2447,5,2,3}, -- Peacebloom
contrebasse@11 18 { 765,5,2,3}, -- Silverleaf
contrebasse@11 19 {2449,5,2,4}}, -- Earthroot
contrebasse@20 20 [39334] = { -- Dusky Pigment
contrebasse@3 21 spell = macroMill,
contrebasse@31 22 spellLink = MillLink,
contrebasse@11 23 { 785,5,2,3}, -- Mageroyal
contrebasse@11 24 {2450,5,2,3}, -- Briarthorn
contrebasse@11 25 {2452,5,2,3}, -- Swiftthistle
contrebasse@11 26 {2453,5,2,4}, -- Bruiseweed
contrebasse@11 27 {3820,5,2,4}}, -- Stranglekelp
contrebasse@0 28 [39338] = { -- Golden Pigment
contrebasse@3 29 spell = macroMill,
contrebasse@31 30 spellLink = MillLink,
contrebasse@11 31 {3369,5,2,3}, -- Grave Moss
contrebasse@11 32 {3355,5,2,3}, -- Wild Steelbloom
contrebasse@11 33 {3356,5,2,4}, -- Kingsblood
contrebasse@11 34 {3357,5,2,4}}, -- Liferoot
contrebasse@0 35 [39339] = { -- Emerald Pigment
contrebasse@3 36 spell = macroMill,
contrebasse@31 37 spellLink = MillLink,
contrebasse@11 38 {3818,5,2,3}, -- Fadeleaf
contrebasse@11 39 {3821,5,2,3}, -- Goldthorn
contrebasse@11 40 {3358,5,3,4}, -- Khadgar's Whisker
contrebasse@11 41 {3819,5,3,4}}, -- Dragon's Teeth
contrebasse@0 42 [39340] = { -- Violet Pigment
contrebasse@3 43 spell = macroMill,
contrebasse@31 44 spellLink = MillLink,
contrebasse@11 45 {4625,5,2,3}, -- Firebloom
contrebasse@11 46 {8831,5,2,3}, -- Purple Lotus
contrebasse@11 47 {8836,5,2,3}, -- Arthas' Tears
contrebasse@11 48 {8838,5,2,3}, -- Sungrass
contrebasse@11 49 {8839,5,2,4}, -- Blindweed
contrebasse@11 50 {8845,5,2,4}, -- Ghost Mushroom
contrebasse@11 51 {8846,5,2,4}}, -- Gromsblood
contrebasse@0 52 [39341] = { -- Silvery Pigment
contrebasse@3 53 spell = macroMill,
contrebasse@31 54 spellLink = MillLink,
contrebasse@11 55 {13464,5,2,3}, -- Golden Sansam
contrebasse@11 56 {13463,5,2,3}, -- Dreamfoil
contrebasse@11 57 {13465,5,2,4}, -- Mountain Silversage
contrebasse@11 58 {13466,5,2,4}, -- Sorrowmoss
contrebasse@11 59 {13467,5,2,4}}, -- Icecap
contrebasse@0 60 [39342] = { -- Nether Pigment
contrebasse@3 61 spell = macroMill,
contrebasse@31 62 spellLink = MillLink,
contrebasse@11 63 {22786,5,2,3}, -- Dreaming Glory
contrebasse@11 64 {22785,5,2,3}, -- Felweed
contrebasse@11 65 {22789,5,2,3}, -- Terocone
contrebasse@11 66 {22787,5,2,3}, -- Ragveil
contrebasse@11 67 {22790,5,2,4}, -- Ancient Lichen
contrebasse@11 68 {22793,5,2,4}, -- Mana Thistle
contrebasse@11 69 {22791,5,2,4}, -- Netherbloom
contrebasse@11 70 {22792,5,2,4}}, -- Nightmare Vine
contrebasse@0 71 [39343] = { -- Azure Pigment
contrebasse@31 72 spellLink = MillLink,
contrebasse@3 73 spell = macroMill,
contrebasse@11 74 {37921,5,2,3}, -- Deadnettle
contrebasse@11 75 {36901,5,2,3}, -- Goldclover
contrebasse@11 76 {36907,5,2,3}, -- Talandra's Rose
contrebasse@11 77 {36904,5,2,3}, -- Tiger Lily
contrebasse@11 78 {39970,5,2,3}, -- Fire Leaf
contrebasse@11 79 {39969,5,2.5,3}, -- Fire Seed (2:33%/3:67%)
contrebasse@11 80 {36903,5,2,4}, -- Adder's Tongue
contrebasse@11 81 {36906,5,2,4}, -- Icethorn
contrebasse@11 82 {36905,5,2,4}}, -- Lichbloom
contrebasse@0 83 [61979] = { -- Ashen Pigment
contrebasse@3 84 spell = macroMill,
contrebasse@31 85 spellLink = MillLink,
contrebasse@11 86 {52983,5,2,3}, -- Cinderbloom
contrebasse@11 87 {52985,5,2,3}, -- Azshara's Veil
contrebasse@11 88 {52984,5,2,3}, -- Stormvine
contrebasse@11 89 {52986,5,2,3}, -- Heartblossom
contrebasse@11 90 {52988,5,2,4}, -- Whiptail
contrebasse@11 91 {52987,5,2,4}}, -- Twilight Jasmine
contrebasse@11 92 -- Rare pigments
contrebasse@11 93 [43103] = { -- Verdant Pigment
contrebasse@11 94 spell = macroMill,
contrebasse@31 95 spellLink = MillLink,
contrebasse@11 96 {785,5,0.25}, -- Mageroyal
contrebasse@11 97 {2450,5,0.25}, -- Briarthorn
contrebasse@11 98 {2452,5,0.25}, -- Swiftthistle
contrebasse@11 99 {2453,5,0.5}, -- Bruiseweed
contrebasse@11 100 {3820,5,0.5}}, -- Stranglekelp
contrebasse@11 101 [43104] = { -- Burnt Pigment
contrebasse@11 102 spell = macroMill,
contrebasse@31 103 spellLink = MillLink,
contrebasse@11 104 {3369,5,0.25}, -- Grave Moss
contrebasse@11 105 {3355,5,0.25}, -- Wild Steelbloom
contrebasse@11 106 {3356,5,0.5}, -- Kingsblood
contrebasse@11 107 {3357,5,0.5}}, -- Liferoot
contrebasse@11 108 [43105] = { -- Indigo Pigment
contrebasse@11 109 spell = macroMill,
contrebasse@31 110 spellLink = MillLink,
contrebasse@11 111 {3818,5,0.25}, -- Fadeleaf
contrebasse@11 112 {3821,5,0.25}, -- Goldthorn
contrebasse@11 113 {3358,5,0.5}, -- Khadgar's Whisker
contrebasse@11 114 {3819,5,0.5}}, -- Dragon's Teeth
contrebasse@11 115 [43106] = { -- Ruby Pigment
contrebasse@11 116 spell = macroMill,
contrebasse@31 117 spellLink = MillLink,
contrebasse@11 118 {4625,5,0.25}, -- Firebloom
contrebasse@11 119 {8831,5,0.25}, -- Purple Lotus
contrebasse@11 120 {8836,5,0.25}, -- Arthas' Tears
contrebasse@11 121 {8838,5,0.25}, -- Sungrass
contrebasse@11 122 {8839,5,0.5}, -- Blindweed
contrebasse@11 123 {8845,5,0.5}, -- Ghost Mushroom
contrebasse@11 124 {8846,5,0.5}}, -- Gromsblood
contrebasse@11 125 [43107] = { -- Sapphire Pigment
contrebasse@11 126 spell = macroMill,
contrebasse@31 127 spellLink = MillLink,
contrebasse@11 128 {13464,5,0.25}, -- Golden Sansam
contrebasse@11 129 {13463,5,0.25}, -- Dreamfoil
contrebasse@11 130 {13465,5,0.5}, -- Mountain Silversage
contrebasse@11 131 {13466,5,0.5}, -- Sorrowmoss
contrebasse@11 132 {13467,5,0.5}}, -- Icecap
contrebasse@11 133 [43108] = { -- Ebon Pigment
contrebasse@11 134 spell = macroMill,
contrebasse@31 135 spellLink = MillLink,
contrebasse@11 136 {22786,5,0.25}, -- Dreaming Glory
contrebasse@11 137 {22785,5,0.25}, -- Felweed
contrebasse@11 138 {22789,5,0.25}, -- Terocone
contrebasse@11 139 {22787,5,0.25}, -- Ragveil
contrebasse@11 140 {22790,5,0.5}, -- Ancient Lichen
contrebasse@11 141 {22793,5,0.5}, -- Mana Thistle
contrebasse@11 142 {22791,5,0.5}, -- Netherbloom
contrebasse@11 143 {22792,5,0.5}}, -- Nightmare Vine
contrebasse@11 144 [43109] = { -- Icy Pigment
contrebasse@31 145 spellLink = MillLink,
contrebasse@11 146 spell = macroMill,
contrebasse@11 147 {37921,5,0.25}, -- Deadnettle
contrebasse@11 148 {36901,5,0.25}, -- Goldclover
contrebasse@11 149 {36907,5,0.25}, -- Talandra's Rose
contrebasse@11 150 {36904,5,0.25}, -- Tiger Lily
contrebasse@11 151 {39970,5,0.25}, -- Fire Leaf
contrebasse@11 152 {39969,5,0.25}, -- Fire Seed
contrebasse@11 153 {36903,5,0.5}, -- Adder's Tongue
contrebasse@11 154 {36906,5,0.5}, -- Icethorn
contrebasse@11 155 {36905,5,0.5}}, -- Lichbloom
contrebasse@11 156 [61980] = { -- Burning Embers
contrebasse@11 157 spell = macroMill,
contrebasse@31 158 spellLink = MillLink,
contrebasse@11 159 {52983,5,0.25}, -- Cinderbloom
contrebasse@11 160 {52985,5,0.25}, -- Azshara's Veil
contrebasse@11 161 {52984,5,0.25}, -- Stormvine
contrebasse@11 162 {52986,5,0.25}, -- Heartblossom
contrebasse@11 163 {52988,5,0.5}, -- Whiptail
contrebasse@11 164 {52987,5,0.5}}, -- Twilight Jasmine
contrebasse@0 165
contrebasse@8 166 -- Prospect
contrebasse@8 167 [774] = { -- Malachite
contrebasse@9 168 spell = macroProspect,
contrebasse@31 169 spellLink = ProspectLink,
contrebasse@8 170 {2770,5,0.5}}, -- Copper Ore
contrebasse@8 171 [818] = { -- Tigerseye
contrebasse@9 172 spell = macroProspect,
contrebasse@31 173 spellLink = ProspectLink,
contrebasse@8 174 {2770,5,0.5}}, -- Copper Ore
contrebasse@8 175 [1210] = { -- Shadowgem
contrebasse@9 176 spell = macroProspect,
contrebasse@31 177 spellLink = ProspectLink,
contrebasse@11 178 {2771,50,0.38}, -- Tin Ore
contrebasse@8 179 {2770,5,0.1}}, -- Copper Ore
contrebasse@8 180 [1705] = { -- Lesser Moonstone
contrebasse@9 181 spell = macroProspect,
contrebasse@31 182 spellLink = ProspectLink,
contrebasse@8 183 {2771,5,0.38}, -- Tin Ore
contrebasse@8 184 {2772,5,0.35}}, -- Iron Ore
contrebasse@8 185 [1206] = { -- Moss Agate
contrebasse@9 186 spell = macroProspect,
contrebasse@31 187 spellLink = ProspectLink,
contrebasse@8 188 {2771,5,0.37}}, -- Tin Ore
contrebasse@8 189 [1529] = { -- Jade
contrebasse@9 190 spell = macroProspect,
contrebasse@31 191 spellLink = ProspectLink,
contrebasse@8 192 {2772,5,0.35}, -- Iron Ore
contrebasse@8 193 {2771,5,0.03}}, -- Tin Ore
contrebasse@8 194 [7909] = { -- Aquamarine
contrebasse@9 195 spell = macroProspect,
contrebasse@31 196 spellLink = ProspectLink,
contrebasse@8 197 {3858,5,0.35}, -- Mithril Ore
contrebasse@8 198 {2772,5,0.05}, -- Iron Ore
contrebasse@8 199 {2771,5,0.03}}, -- Tin Ore
contrebasse@8 200 [3864] = { -- Citrine
contrebasse@9 201 spell = macroProspect,
contrebasse@31 202 spellLink = ProspectLink,
contrebasse@8 203 {2772,5,0.36}, -- Iron Ore
contrebasse@8 204 {3858,5,0.35}, -- Mithril Ore
contrebasse@8 205 {2771,5,0.03}}, -- Tin Ore
contrebasse@8 206 [7910] = { -- Star Ruby
contrebasse@9 207 spell = macroProspect,
contrebasse@31 208 spellLink = ProspectLink,
contrebasse@8 209 {3858,5,0.36}, -- Mithril Ore
contrebasse@8 210 {10620,5,0.15}, -- Thorium Ore
contrebasse@8 211 {2772,5,0.05}}, -- Iron Ore
contrebasse@8 212 [12799] = { -- Large Opal
contrebasse@9 213 spell = macroProspect,
contrebasse@31 214 spellLink = ProspectLink,
contrebasse@8 215 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 216 {3858,5,0.03}}, -- Mithril Ore
contrebasse@8 217 [12361] = { -- Blue Sapphire
contrebasse@9 218 spell = macroProspect,
contrebasse@31 219 spellLink = ProspectLink,
contrebasse@8 220 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 221 {3858,5,0.02}}, -- Mithril Ore
contrebasse@8 222 [12800] = { -- Azerothian Diamond
contrebasse@9 223 spell = macroProspect,
contrebasse@31 224 spellLink = ProspectLink,
contrebasse@8 225 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 226 {3858,5,0.02}}, -- Mithril Ore
contrebasse@8 227 [12364] = { -- Huge Emerald
contrebasse@9 228 spell = macroProspect,
contrebasse@31 229 spellLink = ProspectLink,
contrebasse@8 230 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 231 {3858,5,0.02}}, -- Mithril Ore
contrebasse@8 232 [23112] = { -- Golden Draenite
contrebasse@9 233 spell = macroProspect,
contrebasse@31 234 spellLink = ProspectLink,
contrebasse@8 235 {23424,5,0.19}, -- Fel Iron Ore
contrebasse@8 236 {23425,5,0.18}}, -- Adamantite Ore
contrebasse@8 237 -- To be continued...
contrebasse@8 238
contrebasse@8 239
contrebasse@3 240 -- To add : enchants, elementals, prospecting
contrebasse@0 241 }
contrebasse@0 242
contrebasse@0 243 -- @todo improve scanning
contrebasse@0 244 -- @todo rescan when a new refipe appears (TRADESKILL_UPDATE ?)
contrebasse@0 245 -- @todo be sure that skillName is unique, or use something else
contrebasse@0 246 -- @todo add support for multi-reagents recipes
contrebasse@15 247 do
contrebasse@15 248 -- lua functions
contrebasse@15 249 local print = print
contrebasse@15 250 local ipairs = ipairs
contrebasse@15 251 local tinsert = tinsert
contrebasse@0 252
contrebasse@15 253 -- Wow functions
contrebasse@15 254 local GetNumTradeSkills = GetNumTradeSkills
contrebasse@15 255 local GetTradeSkillInfo = GetTradeSkillInfo
contrebasse@15 256 local GetTradeSkillNumReagents = GetTradeSkillNumReagents
contrebasse@15 257 local GetTradeSkillItemLink = GetTradeSkillItemLink
contrebasse@15 258 local GetTradeSkillReagentItemLink = GetTradeSkillReagentItemLink
contrebasse@15 259 local GetTradeSkillReagentInfo = GetTradeSkillReagentInfo
contrebasse@15 260 local GetTradeSkillNumMade = GetTradeSkillNumMade
contrebasse@0 261
contrebasse@15 262 -- the function who scans the tradeskill
contrebasse@15 263 function A:ScanSimpleRecipes()
contrebasse@26 264 -- Check if the tradeskill is loaded
contrebasse@26 265 -- Has to have recipes and begin with a header
contrebasse@26 266 local NRecipes = GetNumTradeSkills()
contrebasse@26 267 if NRecipes==0 or select(2,GetTradeSkillInfo(1))~="header" then
contrebasse@26 268 return
contrebasse@26 269 end
contrebasse@26 270
contrebasse@26 271 for i = 2,NRecipes do -- The first one is a header
contrebasse@15 272 local skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(i)
contrebasse@15 273 if skillType ~= "header" then
contrebasse@36 274 --if GetTradeSkillNumReagents(i) == 1 then
contrebasse@15 275 -- item ID
contrebasse@15 276 local itemID = A.link2ID(GetTradeSkillItemLink(i))
contrebasse@0 277
contrebasse@15 278 -- reagent ID
contrebasse@15 279 local reagentID = A.link2ID(GetTradeSkillReagentItemLink(i, 1))
contrebasse@14 280
contrebasse@15 281 -- reagent number needed
contrebasse@15 282 local reagentName, reagentTexture, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(i, 1)
contrebasse@14 283
contrebasse@15 284 -- number of reagent created by the recipe
contrebasse@15 285 local minMade, maxMade = GetTradeSkillNumMade(i)
contrebasse@30 286
contrebasse@30 287 -- recipe link (for tooltips)
contrebasse@30 288 local recipeLink = GetTradeSkillRecipeLink(i)
contrebasse@0 289
contrebasse@15 290 -- error checking
contrebasse@30 291 if not reagentID or not reagentCount or not skillName or not itemID or not minMade or not maxMade or not recipeLink then
contrebasse@30 292 print("Erreur de scan :",itemID,skillName,reagentID,reagentCount,minMade,maxMade,recipeLink)
contrebasse@37 293
contrebasse@37 294 else -- Zap incomplete recipes, they will be scanned later
contrebasse@37 295 -- remove unneeded minMade/maxMade
contrebasse@37 296 if maxMade==minMade then
contrebasse@37 297 maxMade = nil
contrebasse@37 298 if minMade==1 then
contrebasse@37 299 minMade = nil
contrebasse@37 300 end -- if
contrebasse@37 301 end -- if
contrebasse@15 302
contrebasse@37 303 -- skillName or...???
contrebasse@37 304 -- There's still a problem when multiple recipes craft the same item
contrebasse@37 305 if not A.data[itemID] then
contrebasse@37 306 A.data[itemID] = {}
contrebasse@15 307 end -- if
contrebasse@37 308 local newSpell = true
contrebasse@37 309 for _,v in ipairs(A.data[itemID]) do
contrebasse@37 310 if v.spellName==skillName then
contrebasse@37 311 newSpell = nil
contrebasse@37 312 break
contrebasse@37 313 end -- if
contrebasse@37 314 end -- for
contrebasse@37 315 if newSpell then
contrebasse@37 316 A.data[itemID].spellLink = recipeLink
contrebasse@37 317 tinsert(A.data[itemID],{reagentID,reagentCount,minMade,maxMade,spellName=skillName})
contrebasse@15 318 end -- if
contrebasse@15 319 end -- if
contrebasse@36 320 --end -- if
contrebasse@0 321 end -- if
contrebasse@15 322 end -- for
contrebasse@26 323
contrebasse@26 324 -- the scanning is complete
contrebasse@26 325 return true
contrebasse@15 326 end -- function
contrebasse@15 327 end -- do