Как вызывать
addon:Widget_UnitWidget(value, units, update, field)
Доступен напрямую через addon; зависимость не нужна.
Что делает
Создать настроенный выбор юнита, привязанный к записи значения условия. Возвращает виджет, который вызывающий добавляет к родителю обратного вызова условия.
Аргументы
| Имя | Тип | Что делает |
|---|---|---|
self | RMAddon | Экземпляр аддона Rotation Master (неявно при вызове через двоеточие). |
value | table | Запись значения условия, обновляемая при выборе юнита. |
units | table | Таблица соответствия ключей юнитов и отображаемых названий для списка выбора. |
update | function | Обратный вызов после смены выбранного юнита. |
field | string | nil | Изменяемое поле записи значения; по умолчанию unit. |
Возвращает
| 1 | RMConditionSelector | Настроенный выбор юнита; добавьте его через parent:AddChild(widget). |
|---|
Издания
Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.
Не читает игровой API напрямую.
Как его вызывает аддон
- Можно атаковать (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Вне ближнего боя (widget)
parent:AddChild(addon:Widget_UnitWidget(value,addon.units,function() - Есть положительный эффект (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Оставшееся время полож. эффекта (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Наложения полож. эффекта (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Применение (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Ход применения (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Оставшееся время применения (widget)
local unit = addon:Widget_UnitWidget(value, addon.units,
и ещё 52: Применение определённого заклинания (widget), Применение можно прервать (widget), Поддержание (widget), Ход поддержания (widget), Оставшееся время поддержания (widget), Поддержание определённого заклинания (widget), Поддержание можно прервать (widget), Класс (widget), Классификация юнита (widget), В бою (widget), История боевых действий (widget), Время в истории боевых действий (widget), Тип существа (widget), Мёртв или призрак (widget), Есть отрицательный эффект (widget), Оставшееся время отриц. эффекта (widget), Наложения отриц. эффекта (widget), Есть тип отриц. эффекта (widget), Дистанция (widget), Враждебный (widget), Дружественный (widget), В группе (widget), Здоровье (widget), Процент здоровья (widget), Невосприимчивость (widget), Совпадает с (widget), Уровень (widget), Мана (widget), Процент маны (widget), Метка рейда (widget), Очки (widget), Ресурс (widget), Процент ресурса (widget), Союзники в радиусе (widget), Здоровье в радиусе (widget), Процент здоровья в радиусе (widget), Число по проценту здоровья в радиусе (widget), Число по здоровью в радиусе (widget), Мана в радиусе (widget), Процент маны в радиусе (widget), Число по проценту маны в радиусе (widget), Число по мане в радиусе (widget), В режиме PvP (widget), Сопротивляемость (widget), Роль (widget), Исполнитель (widget), Характеристика персонажа (widget), Есть похищаемый полож. эффект (widget), Угроза (widget), Время до уровня здоровья (widget), Время до процента здоровья (widget), Цель существует (widget)
Исходный код
UI/condition_unit.lua, строка 23. В игре только для чтения; «Дублировать» создаёт редактируемую копию.
Conditions.common.Widget_UnitWidget(self, value, units, update, field)
if field == nil then
field = "unit"
end
local unit = addon:CreateConditionDropdown()
unit:SetLabel(L["Unit"])
unit:SetCallback("OnValueChanged", function(_, _, v)
value[field] = v
update()
end)
unit:SetDisabled(value.disabled)
unit.configure = function()
local choices=units
local parent=unit.parent
local top
for _=1,128 do
if not parent then break end
top=parent:GetUserData('top')
if top then break end
parent=parent.parent
end
if field=='unit' and (value[field]=='announcementtarget' or top and top:GetUserData('announcementTarget')==true) then
choices={};for key,label in pairs(units) do choices[key]=label end
choices.announcementtarget=L['Announcement target']
end
unit:SetList(choices, addon.keys(choices))
unit:SetValue(value[field])
end
return unit