Chiamala come
Conditions.talent.treeWidget(parent, spec, value, update)
Registra la dipendenza Conditions.talent.treeWidget, poi chiamala con quel nome. Una chiamata con spazio dei nomi non passa self: usa una chiamata con i due punti o passa tu l'oggetto.
Cosa fa
Builds the TALENT editor controls for Classic talent trees: a tree dropdown, a talent icon, a talent dropdown for the chosen tree, and a Points comparison. Changing the tree clears the talent (and the comparison when switching from another layout), and every change calls update.
Argomenti
| Nome | Tipo | Cosa fa |
|---|---|---|
parent | table | Condition widget group the control is added to. |
spec | number | nil | Specialization the editor is for; on progression clients a value from 1 to 4 also selects the talent group to read. |
value | table | Saved TALENT condition settings; the control reads and rewrites its layout, tree, talent, node, entry, operator and value fields. |
update | function | Called with no arguments after every change so the editor can refresh. |
Valori restituiti
Niente.
Edizioni
Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.
Non legge direttamente alcuna API di gioco.
Come la chiama l'addon
- Talento (widget)
if current=="tree" then treeWidget(parent,spec,value,update)
Dipendenze
PLACEHOLDER(builtin:Conditions/talent.lua:PLACEHOLDER)block→Conditions.talent.blockdropdown→Conditions.talent.dropdowngroup→Conditions.talent.groupicon→Conditions.talent.iconinfo→Conditions.talent.infoownTrees→Conditions.talent.ownTreesplatform(builtin:Conditions/talent.lua:platform)
Sorgente
Conditions/talent.lua, riga 191. Nel gioco è in sola lettura; Duplica crea una copia modificabile.
Conditions.talent.treeWidget(parent, spec, value, update)
local trees,treeOrder={},{}
-- Names, never positions: the game's for the player's class, the shipped
-- table's for another class's rotation or before the game has the data.
local listed=addon.TalentTrees.Choices(addon.TalentTrees.ContextClass(),group(spec))
if listed then trees,treeOrder=listed.choices,listed.order end
local talents,talentOrder={},{}
local talentIcon,talentPicker,treePicker
local function choices()
talents,talentOrder={},{}
if value.tree and ownTrees() then
for index=1,platform:GetTreeTalentCount(value.tree) or 0 do
local talent=platform:GetTreeTalentInfo(value.tree,index,group(spec))
if talent then talents[index]={text=talent.name,icon=talent.icon};talentOrder[#talentOrder+1]=index end
end
end
end
choices()
local box=block(parent)
talentIcon=icon(box,value,spec)
treePicker=dropdown(box,L["Talent Tree"],function(selected)
if selected==value.tree then return end
local wasTree=value.layout=="tree" or value.layout==nil and value.tree~=nil
value.tree,value.talent,value.layout=selected,nil,"tree"
if not wasTree then value.value,value.operator=nil,nil end
choices();talentPicker:SetList(talents,talentOrder);talentPicker:SetValue(nil)
talentPicker:SetDisabled(#talentOrder==0);talentIcon:SetImage(PLACEHOLDER);update()
end)
treePicker.configure=function() treePicker:SetList(trees,treeOrder);treePicker:SetValue(value.tree) end
talentPicker=dropdown(box,L["Talent"],function(selected)
value.talent,value.layout=selected,"tree"
local talent=info(value,spec);talentIcon:SetImage(talent and talent.icon or PLACEHOLDER);update()
end)
talentPicker:SetDisabled(#talentOrder==0)
talentPicker.configure=function() talentPicker:SetList(talents,talentOrder);talentPicker:SetValue(value.talent) end
parent:AddChild(addon:Widget_OperatorWidget(value,L["Points"],update))