Chiamala come
Conditions.talent.gridWidget(parent, spec, value, update)
Registra la dipendenza Conditions.talent.gridWidget, 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 the tier-and-column grid talent layout: a talent icon and a dropdown of the client's grid talents (up to 18). Choosing one stores layout "grid" and the talent index in value, clears the tree fields and operator, and calls update; a note warns when the saved reference belongs to another layout.
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)
elseif current=="grid" then gridWidget(parent,spec,value,update)
Dipendenze
GRID_TIER_LEVELS(builtin:Conditions/talent.lua:GRID_TIER_LEVELS)PLACEHOLDER(builtin:Conditions/talent.lua:PLACEHOLDER)block→Conditions.talent.blockdropdown→Conditions.talent.dropdowngroup→Conditions.talent.groupicon→Conditions.talent.iconinfo→Conditions.talent.infointeger→Conditions.talent.integerplatform(builtin:Conditions/talent.lua:platform)text→Conditions.talent.text
Sorgente
Conditions/talent.lua, riga 243. Nel gioco è in sola lettura; Duplica crea una copia modificabile.
Conditions.talent.gridWidget(parent, spec, value, update)
local tiers,tierOrder={},{}
for tier,level in ipairs(GRID_TIER_LEVELS) do tiers[tier]=string.format(L["Tier %d (level %d)"],tier,level);tierOrder[tier]=tier end
local chosen=value.layout=="grid" and integer(value.value,1,18) and value.value or nil
local shownTier=chosen and math.ceil(chosen/3) or 1
local choices,order={},{}
local function load()
choices,order={},{}
for column=1,3 do
local talent=platform:GetGridTalentInfo((shownTier-1)*3+column,group(spec))
if talent then choices[column]={text=talent.name,icon=talent.icon};order[#order+1]=column end
end
end
load()
if value.layout~="grid" and (value.tree~=nil or value.value~=nil) then
text(parent,L["This reference belongs to another talent layout. Selecting a talent explicitly replaces it; viewing does not convert it."])
end
local box=block(parent)
local talentIcon=icon(box,value,spec)
local tierPicker,picker
tierPicker=dropdown(box,L["Tier"],function(selected)
if selected==shownTier then return end
shownTier=selected;load();picker:SetList(choices,order)
picker:SetValue(chosen and math.ceil(chosen/3)==shownTier and (chosen-1)%3+1 or nil);picker:SetDisabled(#order==0)
end)
tierPicker.configure=function() tierPicker:SetList(tiers,tierOrder);tierPicker:SetValue(shownTier) end
picker=dropdown(box,L["Talent"],function(selected)
chosen=(shownTier-1)*3+selected
value.layout,value.value="grid",chosen
value.tree,value.talent,value.operator=nil,nil,nil
local talent=info(value,spec);talentIcon:SetImage(talent and talent.icon or PLACEHOLDER);update()
end)
picker:SetDisabled(#order==0)
picker.configure=function() picker:SetList(choices,order);picker:SetValue(chosen and math.ceil(chosen/3)==shownTier and (chosen-1)%3+1 or nil) end