호출 방법
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