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 |
