@ -16,52 +16,52 @@ local private = {}
private.gather = { }
private.gather = { }
private.shown = { }
private.shown = { }
local function GetProfessionInfo ( id )
-- local function GetProfessionInfo(id )
-- store primary profession names
-- -- store primary profession names
local primary = { }
-- local primary = { }
local cooking = { }
-- local cooking = { }
local firstAid = { }
-- local firstAid = { }
-- find which primary professions we have
-- -- find which primary professions we have
for i = 1 , GetNumSkillLines ( ) do
-- for i = 1, GetNumSkillLines() do
if GetSkillLineInfo ( i ) == " Professions " then
-- if GetSkillLineInfo(i) == "Professions" then
i = i + 1 -- skip header
-- i = i+1 -- skip header
while select ( 2 , GetSkillLineInfo ( i ) ) ~= 1 do
-- while select(2, GetSkillLineInfo(i)) ~= 1 do
local name , _ , _ , skillRank , _ , _ , skillMaxRank = GetSkillLineInfo ( i )
-- local name, _, _, skillRank, _, _, skillMaxRank = GetSkillLineInfo(i )
table.insert ( primary , { name = name , skillRank = skillRank , skillMaxRank = skillMaxRank } )
-- table.insert(primary, {name=name, skillRank=skillRank, skillMaxRank=skillMaxRank} )
i = i + 1
-- i = i+ 1
end
-- end
elseif GetSkillLineInfo ( i ) == " Secondary Skills " then
-- elseif GetSkillLineInfo(i) == "Secondary Skills" then
i = i + 1 -- skip header
-- i = i+1 -- skip header
while select ( 2 , GetSkillLineInfo ( i ) ) ~= 1 do
-- while select(2, GetSkillLineInfo(i)) ~= 1 do
local name , _ , _ , skillRank , _ , _ , skillMaxRank = GetSkillLineInfo ( i )
-- local name, _, _, skillRank, _, _, skillMaxRank = GetSkillLineInfo(i )
if name == " Cooking " then
-- if name == "Cooking" then
table.insert ( cooking , { name = name , skillRank = skillRank , skillMaxRank = skillMaxRank } )
-- table.insert(cooking, {name=name, skillRank=skillRank, skillMaxRank=skillMaxRank} )
elseif name == " First Aid " then
-- elseif name == "First Aid" then
table.insert ( firstAid , { name = name , skillRank = skillRank , skillMaxRank = skillMaxRank } )
-- table.insert(firstAid, {name=name, skillRank=skillRank, skillMaxRank=skillMaxRank} )
end
-- end
i = i + 1
-- i = i+ 1
end
-- end
end
-- end
end
-- end
--local spell, profession = GetSpellLink(primary[1])
-- --local spell, profession = GetSpellLink(primary[1])
local profession
-- local profession
if id == " tradeSkill1 " then
-- if id == "tradeSkill1" then
profession = primary [ 1 ]
-- profession = primary[1 ]
elseif id == " tradeSkill2 " then
-- elseif id == "tradeSkill2" then
profession = primary [ 2 ]
-- profession = primary[2 ]
elseif id == " cook " then
-- elseif id == "cook" then
profession = cooking
-- profession = cooking
elseif id == " firstAid " then
-- elseif id == "firstAid" then
profession = firstAid
-- profession = firstAid
else
-- else
error ( " Invalid GetProfessionInfo id " )
-- error("Invalid GetProfessionInfo id" )
return nil
-- return nil
end
-- end
if profession == nil then
-- if profession == nil then
return nil
-- return nil
end
-- end
return profession.name , nil , profession.skillRank , profession.skillMaxRank
-- return profession.name, nil, profession.skillRank, profession.skillMaxRank
end
-- end
-- Helper function to find spellID associated to spellname
-- Helper function to find spellID associated to spellname
local function GetTradeSkillSpellID ( spellName )
local function GetTradeSkillSpellID ( spellName )
@ -313,26 +313,21 @@ function GUI:UpdateTradeSkills()
--11- Fishing
--11- Fishing
--12- Riding
--12- Riding
local skillName , header
local skillName
local tradeSkill1 , tradeSkill2 , cook , firstAid
local cook , firstAid
local insideProfessions
local tradeSkill = { }
for i = 1 , GetNumSkillLines ( ) do
for i = 1 , GetNumSkillLines ( ) do
skillName = GetSkillLineInfo ( i )
skillName = GetSkillLineInfo ( i )
if skillName == " Professions " then --TRADE_SKILLS ) then
if skillName == " Professions " then
tradeSkill1 , header = GetSkillLineInfo ( i + 1 ) ;
insideProfessions = true
if tradeSkill1 == " Mining " then tradeSkill1 = " Smelting " end
elseif skillName == " Secondary Skills "
if header or not GetSpellInfo ( tradeSkill1 ) then
or skillName == " Weapon Skills " then
tradeSkill1 = nil
insideProfessions = false
else
elseif insideProfessions then
tradeSkill1 = i + 1
if skillName == " Mining " then skillName = " Smelting " end
end
if GetSpellInfo ( skillName ) then
table.insert ( tradeSkill , i )
tradeSkill2 , header = GetSkillLineInfo ( i + 2 ) ;
if tradeSkill2 == " Mining " then tradeSkill2 = " Smelting " end
if header or not GetSpellInfo ( tradeSkill2 ) then
tradeSkill2 = nil
else
tradeSkill2 = i + 2
end
end
elseif skillName == " Cooking " then
elseif skillName == " Cooking " then
cook = i
cook = i
@ -346,35 +341,25 @@ function GUI:UpdateTradeSkills()
if not playerName then return end
if not playerName then return end
TSM.db . realm.tradeSkills [ playerName ] = TSM.db . realm.tradeSkills [ playerName ] or { }
TSM.db . realm.tradeSkills [ playerName ] = TSM.db . realm.tradeSkills [ playerName ] or { }
-- SpellBook_UpdateProfTab()
for i , id in pairs ( { tradeSkill [ 1 ] , tradeSkill [ 2 ] , tradeSkill [ 3 ] , tradeSkill [ 4 ] , tradeSkill [ 5 ] , tradeSkill [ 6 ] , tradeSkill [ 7 ] , tradeSkill [ 8 ] , tradeSkill [ 9 ] , tradeSkill [ 10 ] , cook , firstAid } ) do -- needs to be pairs since may not be continuous indices
-- local tradeSkill1, tradeSkill2, _, _, cook, firstAid = GetProfessions() -- GetProfessions API added in Cata
local skillName , _ , _ , skillRank , _ , _ , skillMaxRank = GetSkillLineInfo ( id )
-- local btns = { PrimaryProfession1SpellButtonBottom, PrimaryProfession2SpellButtonBottom, SecondaryProfession3SpellButtonRight, SecondaryProfession4SpellButtonRight }
if skillName ~= nil then
local old = TSM.db . realm.tradeSkills [ playerName ]
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] = TSM.db . realm.tradeSkills [ playerName ] [ skillName ] or { }
--TSM.db.realm.tradeSkills[playerName] = {}
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . level = skillRank
-- for i, id in pairs({ "tradeSkill1", "tradeSkill2", "cook", "firstAid" }) do
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . maxLevel = skillMaxRank
for i , id in pairs ( { tradeSkill1 , tradeSkill2 , cook , firstAid } ) do -- needs to be pairs since may not be continuous indices
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . isSecondary = ( i > 10 ) and true
-- if not btns[i]:GetParent().missingHeader:IsVisible() then
-- local skillName, _, level, maxLevel = GetProfessionInfo(id) -- Also added in Cata
local _ , link = GetSpellLink ( skillName )
local skillName , _ , _ , skillRank , _ , _ , skillMaxRank = GetSkillLineInfo ( id )
if link then
if skillName ~= nil then
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . link = link
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] = old [ skillName ] or { }
if skillName == GetTradeSkillLine ( ) and i <= 10 and not TSM.isSyncing then
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . level = skillRank
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . account = nil
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . maxLevel = skillMaxRank
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . accountKey = TSMAPI.Sync : GetAccountKey ( )
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . isSecondary = ( i > 2 ) and true
TSM.Sync : BroadcastTradeSkillData ( )
-- local spellBookSlot = btns[i]:GetID() + btns[i]:GetParent().spellOffset
local _ , link = GetSpellLink ( skillName )
if link then
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . link = link
if skillName == GetTradeSkillLine ( ) and i <= 2 and not TSM.isSyncing then
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . account = nil
TSM.db . realm.tradeSkills [ playerName ] [ skillName ] . accountKey = TSMAPI.Sync : GetAccountKey ( )
TSM.Sync : BroadcastTradeSkillData ( )
end
end
end
end
end
-- end
end
end
end
--tidy up crafts if player unlearned a profession
--tidy up crafts if player unlearned a profession
@ -2760,4 +2745,4 @@ function CheapestVellum(itemPassed)
end
end
end
end
return itemPassed
return itemPassed
end
end