Aufruf als
addon:Widget_UnitWidget(value, units, update, field)
Direkt über addon verfügbar; keine Abhängigkeit nötig.
Was sie bewirkt
Eine konfigurierte Einheitenauswahl erstellen, die an einen Bedingungswert-Datensatz gebunden ist. Gibt das Widget zurück, das der Aufrufer dem Callback-Elternelement der Bedingung hinzufügt.
Argumente
| Name | Typ | Was sie bewirkt |
|---|---|---|
self | RMAddon | Addon-Instanz von Rotation Master (bei Doppelpunktaufrufen implizit). |
value | table | Bedingungswert-Datensatz, der bei Auswahl einer Einheit aktualisiert wird. |
units | table | Zuordnung von Einheitenschlüssel zu Anzeigename, die in der Auswahl angezeigt wird. |
update | function | Callback, der nach dem Ändern der ausgewählten Einheit aufgerufen wird. |
field | string | nil | Zu bearbeitendes Feld des Wertedatensatzes; standardmäßig unit. |
Rückgabewerte
| 1 | RMConditionSelector | Konfigurierte Einheitenauswahl; mit parent:AddChild(widget) hinzufügen. |
|---|
Editionen
Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.
Sie liest keine Spiel-API direkt.
Wie das Addon sie aufruft
- Angreifbar (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Außerhalb der Nahkampfreichweite (widget)
parent:AddChild(addon:Widget_UnitWidget(value,addon.units,function() - Stärkungszauber vorhanden (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Restzeit des Stärkungszaubers (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Stapel des Stärkungszaubers (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Wirken (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Zauberfortschritt (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Restzeit der Zauberzeit (widget)
local unit = addon:Widget_UnitWidget(value, addon.units,
und 52 weitere: Bestimmten Zauber wirken (widget), Zauber unterbrechbar (widget), Kanalisieren (widget), Kanalisierungsfortschritt (widget), Restzeit der Kanalisierung (widget), Bestimmten Zauber kanalisieren (widget), Kanalisierung unterbrechbar (widget), Klasse (widget), Klassifizierung der Einheit (widget), Im Kampf (widget), Kampfaktionsverlauf (widget), Zeit im Kampfaktionsverlauf (widget), Kreaturtyp (widget), Ist tot oder Geist (widget), Schwächungszauber vorhanden (widget), Restzeit des Schwächungszaubers (widget), Stapel des Schwächungszaubers (widget), Schwächungszaubertyp vorhanden (widget), Entfernung (widget), Feindselig (widget), Ist freundlich (widget), In Gruppe (widget), Gesundheit (widget), Gesundheit in Prozent (widget), Immun (widget), Ist identisch mit (widget), Stufe (widget), Mana (widget), Mana in Prozent (widget), Schlachtzugsmarkierung (widget), Punkte (widget), Ressource (widget), Ressource in Prozent (widget), Verbündete in Reichweite (widget), Gesundheit in Reichweite (widget), Gesundheit in Prozent in Reichweite (widget), Anzahl nach Gesundheit in Prozent in Reichweite (widget), Anzahl nach Gesundheit in Reichweite (widget), Mana in Reichweite (widget), Mana in Prozent in Reichweite (widget), Anzahl nach Mana in Prozent in Reichweite (widget), Anzahl nach Mana in Reichweite (widget), PvP-markiert (widget), Widerstandsfähig (widget), Rolle (widget), Flüchtet (widget), Charakterwert (widget), Hat stehlbaren Stärkungszauber (widget), Bedrohung (widget), Zeit bis Gesundheit (widget), Zeit bis Gesundheit in Prozent (widget), Einheit existiert (widget)
Quelle
UI/condition_unit.lua, Zeile 23. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.
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