Referencia › Referencia de funciones › Conditions

Conditions.talent.treeWidget

dependencia

Llamar como

Conditions.talent.treeWidget(parent, spec, value, update)

Registra la dependencia Conditions.talent.treeWidget y luego llámala con ese nombre. Una llamada con espacio de nombres no pasa self: usa una llamada con dos puntos o pasa tú mismo el objeto.

Qué hace

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.

Argumentos

NombreTipoQué hace
parenttableCondition widget group the control is added to.
specnumber | nilSpecialization the editor is for; on progression clients a value from 1 to 4 also selects the talent group to read.
valuetableSaved TALENT condition settings; the control reads and rewrites its layout, tree, talent, node, entry, operator and value fields.
updatefunctionCalled with no arguments after every change so the editor can refresh.

Retornos

Nada.

Ediciones

Las funciones auxiliares integradas se registran en todas las ediciones. Lo que cambia es la API del juego que leen; donde falta alguna, la función auxiliar recurre a una alternativa o devuelve nil con un motivo.

No lee directamente ninguna API del juego.

Cómo la llama el addon

  • Talento (widget)
    if current=="tree" then treeWidget(parent,spec,value,update)

Dependencias

Código fuente

Conditions/talent.lua, línea 191. Solo lectura en el juego; Duplicar crea una copia editable.

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))

Volver a Referencia de funciones