Mercurial > wow > reagentmaker
comparison data.lua @ 82:cf1da2654dc6 v1.0beta3
Expand headers when needed. Not heavily tested, could fail on a slow computer...
| author | contrebasse | 
|---|---|
| date | Sun, 15 May 2011 09:23:15 +0200 | 
| parents | e837f5681fbb | 
| children | 10a6078e132f | 
   comparison
  equal
  deleted
  inserted
  replaced
| 81:32c398de6812 | 82:cf1da2654dc6 | 
|---|---|
| 26 -- Wow objects | 26 -- Wow objects | 
| 27 local GetTradeSkillLine = GetTradeSkillLine | 27 local GetTradeSkillLine = GetTradeSkillLine | 
| 28 | 28 | 
| 29 -- the function who scans the tradeskill | 29 -- the function who scans the tradeskill | 
| 30 function A:ScanSimpleRecipes() | 30 function A:ScanSimpleRecipes() | 
| 31 -- Do not scan while we modify the tradeskill display | |
| 32 if A.blockScan then return end | |
| 33 | |
| 34 | |
| 31 -- Check if the tradeskill is loaded | 35 -- Check if the tradeskill is loaded | 
| 32 -- Has to have recipes and begin with a header | 36 -- Has to have recipes and begin with a header | 
| 33 local NRecipes = GetNumTradeSkills() | 37 local NRecipes = GetNumTradeSkills() | 
| 34 if NRecipes==0 or select(2,GetTradeSkillInfo(1))~="header" then | 38 if NRecipes==0 or select(2,GetTradeSkillInfo(1))~="header" then | 
| 35 return | 39 return | 
| 52 end | 56 end | 
| 53 A.MillingDataLoaded = true | 57 A.MillingDataLoaded = true | 
| 54 end | 58 end | 
| 55 end | 59 end | 
| 56 | 60 | 
| 57 for i = 2,NRecipes do -- The first one is a header | 61 local lastHeader | 
| 62 for i = 1,NRecipes do | |
| 58 -- skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(index) | 63 -- skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(index) | 
| 59 -- serviceType is nil if the recipe creates an item | 64 -- serviceType is nil if the recipe creates an item | 
| 60 local _, skillType, _, _, serviceType = GetTradeSkillInfo(i) | 65 local skillName, skillType, _, _, serviceType = GetTradeSkillInfo(i) | 
| 61 if skillType and skillType ~= "header" and serviceType==nil then | 66 if skillType and skillType == "header" then | 
| 67 lastHeader = skillName | |
| 68 | |
| 69 elseif skillType and skillType ~= "header" and serviceType==nil then | |
| 62 -- item ID | 70 -- item ID | 
| 63 local itemID = A.link2ID(GetTradeSkillItemLink(i)) | 71 local itemID = A.link2ID(GetTradeSkillItemLink(i)) | 
| 64 | 72 | 
| 65 -- reagent ID, valid only if there's only one reagent as we take only the first one | 73 -- reagent ID, valid only if there's only one reagent as we take only the first one | 
| 66 local reagentID = A.link2ID(GetTradeSkillReagentItemLink(i, 1)) | 74 local reagentID = A.link2ID(GetTradeSkillReagentItemLink(i, 1)) | 
| 100 -- Cache the data | 108 -- Cache the data | 
| 101 if addSpell then | 109 if addSpell then | 
| 102 local spell = {reagentID,reagentCount,minMade,maxMade} | 110 local spell = {reagentID,reagentCount,minMade,maxMade} | 
| 103 spell.spellID = tradeskillID | 111 spell.spellID = tradeskillID | 
| 104 spell.spellLink = recipeLink | 112 spell.spellLink = recipeLink | 
| 113 spell.header = lastHeader | |
| 105 spell.manyReagents = GetTradeSkillNumReagents(i)>1 | 114 spell.manyReagents = GetTradeSkillNumReagents(i)>1 | 
| 106 tinsert(A.data[itemID],spell) | 115 tinsert(A.data[itemID],spell) | 
| 107 end | 116 end | 
| 108 | 117 | 
| 109 else -- Zap incomplete recipes, they will be scanned later | 118 else -- Zap incomplete recipes, they will be scanned later | 
