add custom tags to PowerBar
This commit is contained in:
parent
1a8cd81f7a
commit
c6c3d23074
@ -111,6 +111,7 @@ local deletedOptions = { -- backwards compatibility
|
|||||||
trinketPos = true,
|
trinketPos = true,
|
||||||
padding = true,
|
padding = true,
|
||||||
growUp = true,
|
growUp = true,
|
||||||
|
powerBarFontSize = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function checkIsDeletedOption(k, str, msg, errorFound, errorMsg)
|
local function checkIsDeletedOption(k, str, msg, errorFound, errorMsg)
|
||||||
|
@ -28,7 +28,6 @@ local Healthbar = Gladdy:NewModule("Health Bar", 100, {
|
|||||||
healthFrameStrata = "MEDIUM",
|
healthFrameStrata = "MEDIUM",
|
||||||
healthFrameLevel = 1,
|
healthFrameLevel = 1,
|
||||||
healthCustomTagsEnabled = false,
|
healthCustomTagsEnabled = false,
|
||||||
healthTextRight = "[percent|status]",
|
|
||||||
healthTextLeft = "[name]",
|
healthTextLeft = "[name]",
|
||||||
healthTextRight = "[percent|status]",
|
healthTextRight = "[percent|status]",
|
||||||
healthTextLeftOutline = false,
|
healthTextLeftOutline = false,
|
||||||
@ -122,12 +121,13 @@ function Healthbar.OnEvent(self, event, unit)
|
|||||||
self.hp:SetMinMaxValues(0, healthMax)
|
self.hp:SetMinMaxValues(0, healthMax)
|
||||||
self.hp:SetValue(health)
|
self.hp:SetValue(health)
|
||||||
self.hp.current = health
|
self.hp.current = health
|
||||||
|
self.hp.max = healthMax
|
||||||
Healthbar:SetText(unit, health, healthMax)
|
Healthbar:SetText(unit, health, healthMax)
|
||||||
--Healthbar:SetHealthText(self, health, healthMax)
|
--Healthbar:SetHealthText(self, health, healthMax)
|
||||||
elseif event == "UNIT_NAME_UPDATE" then
|
elseif event == "UNIT_NAME_UPDATE" then
|
||||||
local name = UnitName(unit)
|
local name = UnitName(unit)
|
||||||
Gladdy.buttons[unit].name = name
|
Gladdy.buttons[unit].name = name
|
||||||
Healthbar:SetText(unit, self.hp.current, 100)
|
Healthbar:SetText(unit, self.hp.current, self.hp.max)
|
||||||
end
|
end
|
||||||
if not Gladdy.buttons[unit].class then
|
if not Gladdy.buttons[unit].class then
|
||||||
Gladdy:SpotEnemy(unit, true)
|
Gladdy:SpotEnemy(unit, true)
|
||||||
@ -245,6 +245,7 @@ function Healthbar:Test(unit)
|
|||||||
--self:JOINED_ARENA()
|
--self:JOINED_ARENA()
|
||||||
Gladdy:SendMessage("UNIT_HEALTH", unit, button.health, button.healthMax)
|
Gladdy:SendMessage("UNIT_HEALTH", unit, button.health, button.healthMax)
|
||||||
healthBar.hp.current = button.health
|
healthBar.hp.current = button.health
|
||||||
|
healthBar.hp.max = button.healthMax
|
||||||
self:ENEMY_SPOTTED(unit)
|
self:ENEMY_SPOTTED(unit)
|
||||||
self:SetText(unit, button.health, button.healthMax)
|
self:SetText(unit, button.health, button.healthMax)
|
||||||
healthBar.hp:SetValue(button.health)
|
healthBar.hp:SetValue(button.health)
|
||||||
@ -259,7 +260,7 @@ function Healthbar:UNIT_SPEC(unit)
|
|||||||
if not button then
|
if not button then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
self:SetText(unit, button.healthBar.hp.current, 100)
|
self:SetText(unit, button.healthBar.hp.current, button.healthBar.hp.max)
|
||||||
--button.healthBar.nameText:SetText(Gladdy:SetTag(unit, Gladdy.db.healthTextLeft, button.health, button.healthMax))
|
--button.healthBar.nameText:SetText(Gladdy:SetTag(unit, Gladdy.db.healthTextLeft, button.health, button.healthMax))
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -282,6 +283,7 @@ function Healthbar:ENEMY_SPOTTED(unit)
|
|||||||
healthBar.hp:SetMinMaxValues(0, healthMax)
|
healthBar.hp:SetMinMaxValues(0, healthMax)
|
||||||
healthBar.hp:SetValue(health)
|
healthBar.hp:SetValue(health)
|
||||||
healthBar.hp.current = health
|
healthBar.hp.current = health
|
||||||
|
healthBar.hp.max = healthMax
|
||||||
Healthbar:SetText(unit, health, healthMax)
|
Healthbar:SetText(unit, health, healthMax)
|
||||||
--Healthbar:SetHealthText(healthBar, health, healthMax)
|
--Healthbar:SetHealthText(healthBar, health, healthMax)
|
||||||
end
|
end
|
||||||
@ -310,8 +312,7 @@ function Healthbar:UNIT_DESTROYED(unit)
|
|||||||
|
|
||||||
healthBar.hp:SetValue(0)
|
healthBar.hp:SetValue(0)
|
||||||
healthBar.hp.current = 0
|
healthBar.hp.current = 0
|
||||||
healthBar.healthText:SetText(L["LEAVE"])
|
Healthbar:SetText(unit, 0, 100, L["LEAVE"])
|
||||||
healthBar.nameText:SetText("")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function option(params)
|
local function option(params)
|
||||||
@ -455,7 +456,7 @@ function Healthbar:GetOptions()
|
|||||||
max = 20,
|
max = 20,
|
||||||
width = "full",
|
width = "full",
|
||||||
}),
|
}),
|
||||||
headerLeftText = {
|
headerOffsets = {
|
||||||
type = "header",
|
type = "header",
|
||||||
name = L["Offsets"],
|
name = L["Offsets"],
|
||||||
order = 30,
|
order = 30,
|
||||||
|
@ -16,7 +16,8 @@ local Powerbar = Gladdy:NewModule("Power Bar", 90, {
|
|||||||
powerBarBorderColor = { r = 0, g = 0, b = 0, a = 1 },
|
powerBarBorderColor = { r = 0, g = 0, b = 0, a = 1 },
|
||||||
powerBarFontColor = { r = 1, g = 1, b = 1, a = 1 },
|
powerBarFontColor = { r = 1, g = 1, b = 1, a = 1 },
|
||||||
powerBarBgColor = { r = 0.3, g = 0.3, b = 0.3, a = 0.7 },
|
powerBarBgColor = { r = 0.3, g = 0.3, b = 0.3, a = 0.7 },
|
||||||
powerBarFontSize = 10,
|
powerBarRaceFontSize = 10,
|
||||||
|
powerBarPowerFontSize = 10,
|
||||||
powerShowSpec = true,
|
powerShowSpec = true,
|
||||||
powerShowRace = true,
|
powerShowRace = true,
|
||||||
powerActual = true,
|
powerActual = true,
|
||||||
@ -24,6 +25,15 @@ local Powerbar = Gladdy:NewModule("Power Bar", 90, {
|
|||||||
powerPercentage = false,
|
powerPercentage = false,
|
||||||
powerFrameStrata = "MEDIUM",
|
powerFrameStrata = "MEDIUM",
|
||||||
powerFrameLevel = 1,
|
powerFrameLevel = 1,
|
||||||
|
powerCustomTagsEnabled = false,
|
||||||
|
powerTextLeft = "[spec] [race]",
|
||||||
|
powerTextRight = "[current]/[max]",
|
||||||
|
powerTextLeftOutline = false,
|
||||||
|
powerTextRightOutline = false,
|
||||||
|
powerTextLeftVOffset = 1,
|
||||||
|
powerTextLeftHOffset = 5,
|
||||||
|
powerTextRightVOffset = 1,
|
||||||
|
powerTextRightHOffset = -5,
|
||||||
})
|
})
|
||||||
|
|
||||||
function Powerbar:Initialize()
|
function Powerbar:Initialize()
|
||||||
@ -72,85 +82,31 @@ function Powerbar:CreateFrame(unit)
|
|||||||
powerBar.bg:SetVertexColor(Gladdy:SetColor(Gladdy.db.powerBarBgColor))
|
powerBar.bg:SetVertexColor(Gladdy:SetColor(Gladdy.db.powerBarBgColor))
|
||||||
|
|
||||||
powerBar.raceText = powerBar:CreateFontString(nil, "LOW")
|
powerBar.raceText = powerBar:CreateFontString(nil, "LOW")
|
||||||
powerBar.raceText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarFontSize)
|
powerBar.raceText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarRaceFontSize, Gladdy.db.powerTextLeftOutline and "OUTLINE")
|
||||||
powerBar.raceText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
powerBar.raceText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
||||||
powerBar.raceText:SetShadowOffset(1, -1)
|
powerBar.raceText:SetShadowOffset(1, -1)
|
||||||
powerBar.raceText:SetShadowColor(0, 0, 0, 1)
|
powerBar.raceText:SetShadowColor(0, 0, 0, 1)
|
||||||
powerBar.raceText:SetJustifyH("CENTER")
|
powerBar.raceText:SetJustifyH("CENTER")
|
||||||
powerBar.raceText:SetPoint("LEFT", 5, 1)
|
powerBar.raceText:SetPoint("LEFT", Gladdy.db.powerTextLeftHOffset, Gladdy.db.powerTextLeftVOffset)
|
||||||
|
|
||||||
powerBar.powerText = powerBar:CreateFontString(nil, "LOW")
|
powerBar.powerText = powerBar:CreateFontString(nil, "LOW")
|
||||||
powerBar.powerText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarFontSize)
|
powerBar.powerText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarPowerFontSize, Gladdy.db.powerTextRightOutline and "OUTLINE")
|
||||||
powerBar.powerText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
powerBar.powerText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
||||||
powerBar.powerText:SetShadowOffset(1, -1)
|
powerBar.powerText:SetShadowOffset(1, -1)
|
||||||
powerBar.powerText:SetShadowColor(0, 0, 0, 1)
|
powerBar.powerText:SetShadowColor(0, 0, 0, 1)
|
||||||
powerBar.powerText:SetJustifyH("CENTER")
|
powerBar.powerText:SetJustifyH("CENTER")
|
||||||
powerBar.powerText:SetPoint("RIGHT", -5, 1)
|
powerBar.powerText:SetPoint("RIGHT", Gladdy.db.powerTextRightHOffset, Gladdy.db.powerTextRightVOffset)
|
||||||
|
|
||||||
button.powerBar = powerBar
|
button.powerBar = powerBar
|
||||||
self.frames[unit] = powerBar
|
self.frames[unit] = powerBar
|
||||||
self:ResetUnit(unit)
|
self:ResetUnit(unit)
|
||||||
|
powerBar.unit = unit
|
||||||
powerBar:RegisterUnitEvent("UNIT_POWER_UPDATE", unit)
|
powerBar:RegisterUnitEvent("UNIT_POWER_UPDATE", unit)
|
||||||
powerBar:RegisterUnitEvent("UNIT_MAXPOWER", unit)
|
powerBar:RegisterUnitEvent("UNIT_MAXPOWER", unit)
|
||||||
powerBar:RegisterUnitEvent("UNIT_DISPLAYPOWER", unit)
|
powerBar:RegisterUnitEvent("UNIT_DISPLAYPOWER", unit)
|
||||||
powerBar:SetScript("OnEvent", Powerbar.OnEvent)
|
powerBar:SetScript("OnEvent", Powerbar.OnEvent)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Powerbar.OnEvent(powerBar, event, unit)
|
|
||||||
if event == "UNIT_POWER_UPDATE" then
|
|
||||||
Powerbar:SetPower(powerBar, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
|
||||||
elseif event == "UNIT_MAXPOWER" then
|
|
||||||
Powerbar:SetPower(powerBar, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
|
||||||
elseif event == "UNIT_DISPLAYPOWER" then
|
|
||||||
Powerbar:SetPower(powerBar, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function Powerbar:SetPower(powerBar, power, powerMax, powerType)
|
|
||||||
local powerPercentage = floor(power * 100 / powerMax)
|
|
||||||
local powerText
|
|
||||||
|
|
||||||
if (Gladdy.db.powerActual) then
|
|
||||||
powerText = powerMax > 999 and ("%.1fk"):format(power / 1000) or power
|
|
||||||
end
|
|
||||||
|
|
||||||
if (Gladdy.db.powerMax) then
|
|
||||||
local text = powerMax > 999 and ("%.1fk"):format(powerMax / 1000) or powerMax
|
|
||||||
if (powerText) then
|
|
||||||
powerText = ("%s/%s"):format(powerText, text)
|
|
||||||
else
|
|
||||||
powerText = text
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (Gladdy.db.powerPercentage) then
|
|
||||||
if (powerText) then
|
|
||||||
powerText = ("%s (%d%%)"):format(powerText, powerPercentage)
|
|
||||||
else
|
|
||||||
powerText = ("%d%%"):format(powerPercentage)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (powerType == 1 and powerBar.powerType ~= powerType) then
|
|
||||||
powerBar.energy:SetStatusBarColor(1, 0, 0, 1)
|
|
||||||
powerBar.powerColor = {r = 1, g = 0, b = 0}
|
|
||||||
powerBar.powerType = powerType
|
|
||||||
elseif (powerType == 3 and powerBar.powerType ~= powerType) then
|
|
||||||
powerBar.energy:SetStatusBarColor(1, 1, 0, 1)
|
|
||||||
powerBar.powerColor = {r = 1, g = 1, b = 0}
|
|
||||||
powerBar.powerType = powerType
|
|
||||||
elseif powerBar.powerType ~= powerType then
|
|
||||||
powerBar.energy:SetStatusBarColor(.18, .44, .75, 1)
|
|
||||||
powerBar.powerColor = {r = .18, g = .44, b = .75}
|
|
||||||
powerBar.powerType = powerType
|
|
||||||
end
|
|
||||||
|
|
||||||
powerBar.powerText:SetText(powerText)
|
|
||||||
powerBar.energy:SetMinMaxValues(0, powerMax)
|
|
||||||
powerBar.energy:SetValue(power)
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
function Powerbar:UpdateFrame(unit)
|
function Powerbar:UpdateFrame(unit)
|
||||||
local powerBar = self.frames[unit]
|
local powerBar = self.frames[unit]
|
||||||
if (not powerBar) then
|
if (not powerBar) then
|
||||||
@ -182,7 +138,7 @@ function Powerbar:UpdateFrame(unit)
|
|||||||
powerBar:SetPoint("TOPLEFT", healthBar, "BOTTOMLEFT", 0, -1)
|
powerBar:SetPoint("TOPLEFT", healthBar, "BOTTOMLEFT", 0, -1)
|
||||||
|
|
||||||
powerBar:SetBackdrop({ edgeFile = Gladdy:SMFetch("border", "powerBarBorderStyle"),
|
powerBar:SetBackdrop({ edgeFile = Gladdy:SMFetch("border", "powerBarBorderStyle"),
|
||||||
edgeSize = Gladdy.db.powerBarBorderSize })
|
edgeSize = Gladdy.db.powerBarBorderSize })
|
||||||
powerBar:SetBackdropBorderColor(Gladdy:SetColor(Gladdy.db.powerBarBorderColor))
|
powerBar:SetBackdropBorderColor(Gladdy:SetColor(Gladdy.db.powerBarBorderColor))
|
||||||
|
|
||||||
powerBar.energy:SetStatusBarTexture(Gladdy:SMFetch("statusbar", "powerBarTexture"))
|
powerBar.energy:SetStatusBarTexture(Gladdy:SMFetch("statusbar", "powerBarTexture"))
|
||||||
@ -190,10 +146,13 @@ function Powerbar:UpdateFrame(unit)
|
|||||||
powerBar.energy:SetPoint("TOPLEFT", powerBar, "TOPLEFT", (Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset), -(Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset))
|
powerBar.energy:SetPoint("TOPLEFT", powerBar, "TOPLEFT", (Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset), -(Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset))
|
||||||
powerBar.energy:SetPoint("BOTTOMRIGHT", powerBar, "BOTTOMRIGHT", -(Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset), (Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset))
|
powerBar.energy:SetPoint("BOTTOMRIGHT", powerBar, "BOTTOMRIGHT", -(Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset), (Gladdy.db.powerBarBorderSize/Gladdy.db.statusbarBorderOffset))
|
||||||
|
|
||||||
powerBar.raceText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarFontSize)
|
powerBar.raceText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarRaceFontSize, Gladdy.db.powerTextLeftOutline and "OUTLINE")
|
||||||
powerBar.raceText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
powerBar.raceText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
||||||
powerBar.powerText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarFontSize)
|
powerBar.raceText:SetPoint("LEFT", Gladdy.db.powerTextLeftHOffset, Gladdy.db.powerTextLeftVOffset)
|
||||||
|
|
||||||
|
powerBar.powerText:SetFont(Gladdy:SMFetch("font", "powerBarFont"), Gladdy.db.powerBarPowerFontSize, Gladdy.db.powerTextRightOutline and "OUTLINE")
|
||||||
powerBar.powerText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
powerBar.powerText:SetTextColor(Gladdy:SetColor(Gladdy.db.powerBarFontColor))
|
||||||
|
powerBar.powerText:SetPoint("RIGHT", Gladdy.db.powerTextRightHOffset, Gladdy.db.powerTextRightVOffset)
|
||||||
|
|
||||||
powerBar:SetFrameStrata(Gladdy.db.powerFrameStrata)
|
powerBar:SetFrameStrata(Gladdy.db.powerFrameStrata)
|
||||||
powerBar:SetFrameLevel(Gladdy.db.powerFrameLevel)
|
powerBar:SetFrameLevel(Gladdy.db.powerFrameLevel)
|
||||||
@ -201,6 +160,83 @@ function Powerbar:UpdateFrame(unit)
|
|||||||
powerBar.energy:SetFrameLevel(Gladdy.db.powerFrameLevel - 1)
|
powerBar.energy:SetFrameLevel(Gladdy.db.powerFrameLevel - 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Powerbar.OnEvent(powerBar, event, unit)
|
||||||
|
if event == "UNIT_POWER_UPDATE" then
|
||||||
|
Powerbar:SetPower(powerBar, unit, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
||||||
|
elseif event == "UNIT_MAXPOWER" then
|
||||||
|
Powerbar:SetPower(powerBar, unit, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
||||||
|
elseif event == "UNIT_DISPLAYPOWER" then
|
||||||
|
Powerbar:SetPower(powerBar, unit, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Powerbar:SetText(unit, power, powerMax, status)
|
||||||
|
local button = Gladdy.buttons[unit]
|
||||||
|
if not Gladdy.buttons[unit] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local powerBar = button.powerBar
|
||||||
|
if Gladdy.db.powerCustomTagsEnabled then
|
||||||
|
powerBar.powerText:SetText(Gladdy:SetTag(unit, Gladdy.db.powerTextRight, power, powerMax, status))
|
||||||
|
powerBar.raceText:SetText(Gladdy:SetTag(unit, Gladdy.db.powerTextLeft, power, powerMax, status))
|
||||||
|
else
|
||||||
|
if power then
|
||||||
|
local powerPercentage = floor(power * 100 / powerMax)
|
||||||
|
local powerText
|
||||||
|
if (Gladdy.db.powerActual) then
|
||||||
|
powerText = powerMax > 999 and ("%.1fk"):format(power / 1000) or power
|
||||||
|
end
|
||||||
|
if (Gladdy.db.powerMax) then
|
||||||
|
local text = powerMax > 999 and ("%.1fk"):format(powerMax / 1000) or powerMax
|
||||||
|
if (powerText) then
|
||||||
|
powerText = ("%s/%s"):format(powerText, text)
|
||||||
|
else
|
||||||
|
powerText = text
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if (Gladdy.db.powerPercentage) then
|
||||||
|
if (powerText) then
|
||||||
|
powerText = ("%s (%d%%)"):format(powerText, powerPercentage)
|
||||||
|
else
|
||||||
|
powerText = ("%d%%"):format(powerPercentage)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
powerBar.powerText:SetText(powerText)
|
||||||
|
end
|
||||||
|
|
||||||
|
local raceText = Gladdy.db.powerShowRace and button.raceLoc or ""
|
||||||
|
if (button.spec and Gladdy.db.powerShowSpec) then
|
||||||
|
raceText = button.spec .. " " .. raceText
|
||||||
|
end
|
||||||
|
powerBar.raceText:SetText(raceText)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Powerbar:SetPower(powerBar, unit, power, powerMax, powerType, status)
|
||||||
|
Powerbar:SetText(unit, power, powerMax, status)
|
||||||
|
powerBar.energy.current = power
|
||||||
|
powerBar.energy.max = powerMax
|
||||||
|
powerBar.energy.powerType = powerType
|
||||||
|
|
||||||
|
if (powerType == 1 and powerBar.powerType ~= powerType) then
|
||||||
|
powerBar.energy:SetStatusBarColor(1, 0, 0, 1)
|
||||||
|
powerBar.powerColor = {r = 1, g = 0, b = 0}
|
||||||
|
powerBar.powerType = powerType
|
||||||
|
elseif (powerType == 3 and powerBar.powerType ~= powerType) then
|
||||||
|
powerBar.energy:SetStatusBarColor(1, 1, 0, 1)
|
||||||
|
powerBar.powerColor = {r = 1, g = 1, b = 0}
|
||||||
|
powerBar.powerType = powerType
|
||||||
|
elseif powerBar.powerType ~= powerType then
|
||||||
|
powerBar.energy:SetStatusBarColor(.18, .44, .75, 1)
|
||||||
|
powerBar.powerColor = {r = .18, g = .44, b = .75}
|
||||||
|
powerBar.powerType = powerType
|
||||||
|
end
|
||||||
|
|
||||||
|
powerBar.energy:SetMinMaxValues(0, powerMax)
|
||||||
|
powerBar.energy:SetValue(power)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
function Powerbar:ResetUnit(unit)
|
function Powerbar:ResetUnit(unit)
|
||||||
local powerBar = self.frames[unit]
|
local powerBar = self.frames[unit]
|
||||||
if (not powerBar) then
|
if (not powerBar) then
|
||||||
@ -222,8 +258,14 @@ function Powerbar:Test(unit)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
powerBar.energy.current = button.power
|
||||||
|
powerBar.energy.max = button.powerMax
|
||||||
|
powerBar.energy.powerType = button.powerType
|
||||||
self:ENEMY_SPOTTED(unit)
|
self:ENEMY_SPOTTED(unit)
|
||||||
self:UNIT_POWER(unit, button.power, button.powerMax, button.powerType)
|
self:UNIT_POWER(unit, button.power, button.powerMax, button.powerType)
|
||||||
|
if unit == "arena1" then
|
||||||
|
self:UNIT_DEATH(unit)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Powerbar:ENEMY_SPOTTED(unit)
|
function Powerbar:ENEMY_SPOTTED(unit)
|
||||||
@ -233,13 +275,6 @@ function Powerbar:ENEMY_SPOTTED(unit)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local raceText = Gladdy.db.powerShowRace and button.raceLoc or ""
|
|
||||||
|
|
||||||
if (button.spec and Gladdy.db.powerShowSpec) then
|
|
||||||
raceText = button.spec .. " " .. raceText
|
|
||||||
end
|
|
||||||
|
|
||||||
powerBar.raceText:SetText(raceText)
|
|
||||||
if UnitExists(unit) then
|
if UnitExists(unit) then
|
||||||
Powerbar:SetPower(powerBar, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
Powerbar:SetPower(powerBar, UnitPower(unit, UnitPowerType(unit), true), UnitPowerMax(unit, UnitPowerType(unit), true), UnitPowerType(unit))
|
||||||
end
|
end
|
||||||
@ -251,13 +286,10 @@ function Powerbar:UNIT_SPEC(unit, spec)
|
|||||||
if (not powerBar or not button) then
|
if (not powerBar or not button) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local raceText = Gladdy.db.powerShowRace and button.raceLoc or ""
|
|
||||||
|
|
||||||
if (button.spec and Gladdy.db.powerShowSpec) then
|
if UnitExists(unit) then
|
||||||
raceText = spec .. " " .. raceText
|
Powerbar:SetPower(powerBar, unit, powerBar.energy.current, powerBar.energy.max, powerBar.energy.powerType)
|
||||||
end
|
end
|
||||||
|
|
||||||
powerBar.raceText:SetText(raceText)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Powerbar:UNIT_POWER(unit, power, powerMax, powerType)
|
function Powerbar:UNIT_POWER(unit, power, powerMax, powerType)
|
||||||
@ -269,44 +301,7 @@ function Powerbar:UNIT_POWER(unit, power, powerMax, powerType)
|
|||||||
if not Gladdy.buttons[unit].class then
|
if not Gladdy.buttons[unit].class then
|
||||||
Gladdy:SpotEnemy(unit, true)
|
Gladdy:SpotEnemy(unit, true)
|
||||||
end
|
end
|
||||||
|
Powerbar:SetPower(powerBar, unit, power, powerMax, powerType)
|
||||||
local powerPercentage = floor(power * 100 / powerMax)
|
|
||||||
local powerText
|
|
||||||
|
|
||||||
if (Gladdy.db.powerActual) then
|
|
||||||
powerText = powerMax > 999 and ("%.1fk"):format(power / 1000) or power
|
|
||||||
end
|
|
||||||
|
|
||||||
if (Gladdy.db.powerMax) then
|
|
||||||
local text = powerMax > 999 and ("%.1fk"):format(powerMax / 1000) or powerMax
|
|
||||||
if (powerText) then
|
|
||||||
powerText = ("%s/%s"):format(powerText, text)
|
|
||||||
else
|
|
||||||
powerText = text
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (Gladdy.db.powerPercentage) then
|
|
||||||
if (powerText) then
|
|
||||||
powerText = ("%s (%d%%)"):format(powerText, powerPercentage)
|
|
||||||
else
|
|
||||||
powerText = ("%d%%"):format(powerPercentage)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (powerType == 1) then
|
|
||||||
powerBar.energy:SetStatusBarColor(1, 0, 0, 1)
|
|
||||||
powerBar.powerColor = {r = 1, g = 0, b = 0}
|
|
||||||
elseif (powerType == 3) then
|
|
||||||
powerBar.energy:SetStatusBarColor(1, 1, 0, 1)
|
|
||||||
powerBar.powerColor = {r = 1, g = 1, b = 0}
|
|
||||||
else
|
|
||||||
powerBar.energy:SetStatusBarColor(.18, .44, .75, 1)
|
|
||||||
powerBar.powerColor = {r = .18, g = .44, b = .75}
|
|
||||||
end
|
|
||||||
|
|
||||||
powerBar.powerText:SetText(powerText)
|
|
||||||
powerBar.energy:SetValue(powerPercentage)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Powerbar:UNIT_DEATH(unit)
|
function Powerbar:UNIT_DEATH(unit)
|
||||||
@ -314,9 +309,7 @@ function Powerbar:UNIT_DEATH(unit)
|
|||||||
if (not powerBar) then
|
if (not powerBar) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
Powerbar:SetPower(powerBar, unit, 0, powerBar.energy.max, powerBar.energy.powerType, L["DEAD"])
|
||||||
powerBar.energy:SetValue(0)
|
|
||||||
powerBar.powerText:SetText("0%")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Powerbar:UNIT_DESTROYED(unit)
|
function Powerbar:UNIT_DESTROYED(unit)
|
||||||
@ -324,8 +317,7 @@ function Powerbar:UNIT_DESTROYED(unit)
|
|||||||
if (not powerBar) then
|
if (not powerBar) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
powerBar.energy:SetValue(0)
|
Powerbar:SetPower(powerBar, unit, 0, powerBar.energy.max, powerBar.energy.powerType, L["LEAVE"])
|
||||||
powerBar.powerText:SetText("0%")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function option(params)
|
local function option(params)
|
||||||
@ -341,8 +333,10 @@ local function option(params)
|
|||||||
if Gladdy.db.powerBarBorderSize > Gladdy.db.powerBarHeight/2 then
|
if Gladdy.db.powerBarBorderSize > Gladdy.db.powerBarHeight/2 then
|
||||||
Gladdy.db.powerBarBorderSize = Gladdy.db.powerBarHeight/2
|
Gladdy.db.powerBarBorderSize = Gladdy.db.powerBarHeight/2
|
||||||
end
|
end
|
||||||
for i=1,Gladdy.curBracket do
|
if Gladdy.frame.testing then
|
||||||
Powerbar:Test("arena" .. i)
|
for i=1,Gladdy.curBracket do
|
||||||
|
Powerbar:Test("arena" .. i)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
Gladdy:UpdateFrame()
|
Gladdy:UpdateFrame()
|
||||||
end,
|
end,
|
||||||
@ -436,16 +430,84 @@ function Powerbar:GetOptions()
|
|||||||
order = 12,
|
order = 12,
|
||||||
hasAlpha = true,
|
hasAlpha = true,
|
||||||
}),
|
}),
|
||||||
powerBarFontSize = option({
|
powerTextLeftOutline = option({
|
||||||
type = "range",
|
type = "toggle",
|
||||||
name = L["Font size"],
|
name = L["Left Font Outline"],
|
||||||
desc = L["Size of the text"],
|
|
||||||
order = 13,
|
order = 13,
|
||||||
|
width = "full",
|
||||||
|
}),
|
||||||
|
powerTextRightOutline = option({
|
||||||
|
type = "toggle",
|
||||||
|
name = L["Right Font Outline"],
|
||||||
|
order = 14,
|
||||||
|
width = "full",
|
||||||
|
}),
|
||||||
|
headerSize = {
|
||||||
|
type = "header",
|
||||||
|
name = L["Size"],
|
||||||
|
order = 20,
|
||||||
|
},
|
||||||
|
powerBarRaceFontSize = option({
|
||||||
|
type = "range",
|
||||||
|
name = L["Race font size"],
|
||||||
|
desc = L["Size of the race text"],
|
||||||
|
order = 21,
|
||||||
step = 0.1,
|
step = 0.1,
|
||||||
min = 1,
|
min = 0,
|
||||||
max = 20,
|
max = 20,
|
||||||
width = "full",
|
width = "full",
|
||||||
}),
|
}),
|
||||||
|
powerBarPowerFontSize = option({
|
||||||
|
type = "range",
|
||||||
|
name = L["Power font size"],
|
||||||
|
desc = L["Size of the power text"],
|
||||||
|
order = 22,
|
||||||
|
step = 0.1,
|
||||||
|
min = 0,
|
||||||
|
max = 20,
|
||||||
|
width = "full",
|
||||||
|
}),
|
||||||
|
headerOffsets = {
|
||||||
|
type = "header",
|
||||||
|
name = L["Offsets"],
|
||||||
|
order = 30,
|
||||||
|
},
|
||||||
|
powerTextLeftVOffset = option({
|
||||||
|
type = "range",
|
||||||
|
name = L["Left Text Vertical Offset"],
|
||||||
|
order = 31,
|
||||||
|
step = 0.1,
|
||||||
|
min = -200,
|
||||||
|
max = 200,
|
||||||
|
width = "full",
|
||||||
|
}),
|
||||||
|
powerTextLeftHOffset = option({
|
||||||
|
type = "range",
|
||||||
|
name = L["Left Text Horizontal Offset"],
|
||||||
|
order = 32,
|
||||||
|
step = 0.1,
|
||||||
|
min = -200,
|
||||||
|
max = 200,
|
||||||
|
width = "full",
|
||||||
|
}),
|
||||||
|
powerTextRightVOffset = option({
|
||||||
|
type = "range",
|
||||||
|
name = L["Right Text Vertical Offset"],
|
||||||
|
order = 33,
|
||||||
|
step = 0.1,
|
||||||
|
min = -200,
|
||||||
|
max = 200,
|
||||||
|
width = "full",
|
||||||
|
}),
|
||||||
|
powerTextRightHOffset = option({
|
||||||
|
type = "range",
|
||||||
|
name = L["Right Text Horizontal Offset"],
|
||||||
|
order = 34,
|
||||||
|
step = 0.1,
|
||||||
|
min = -200,
|
||||||
|
max = 200,
|
||||||
|
width = "full",
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
border = {
|
border = {
|
||||||
@ -528,31 +590,44 @@ function Powerbar:GetOptions()
|
|||||||
name = L["Show race"],
|
name = L["Show race"],
|
||||||
desc = L["Show race"],
|
desc = L["Show race"],
|
||||||
order = 2,
|
order = 2,
|
||||||
|
disabled = function() return Gladdy.db.powerCustomTagsEnabled end,
|
||||||
}),
|
}),
|
||||||
powerShowSpec= option({
|
powerShowSpec= option({
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Show spec"],
|
name = L["Show spec"],
|
||||||
desc = L["Show spec"],
|
desc = L["Show spec"],
|
||||||
order = 3,
|
order = 3,
|
||||||
|
disabled = function() return Gladdy.db.powerCustomTagsEnabled end,
|
||||||
}),
|
}),
|
||||||
powerActual = option({
|
powerActual = option({
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Show the actual power"],
|
name = L["Show the actual power"],
|
||||||
desc = L["Show the actual power on the power bar"],
|
desc = L["Show the actual power on the power bar"],
|
||||||
order = 31,
|
order = 4,
|
||||||
|
disabled = function() return Gladdy.db.powerCustomTagsEnabled end,
|
||||||
}),
|
}),
|
||||||
powerMax = option({
|
powerMax = option({
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Show max power"],
|
name = L["Show max power"],
|
||||||
desc = L["Show max power on the power bar"],
|
desc = L["Show max power on the power bar"],
|
||||||
order = 32,
|
order = 5,
|
||||||
|
disabled = function() return Gladdy.db.powerCustomTagsEnabled end,
|
||||||
}),
|
}),
|
||||||
powerPercentage = option({
|
powerPercentage = option({
|
||||||
type = "toggle",
|
type = "toggle",
|
||||||
name = L["Show power percentage"],
|
name = L["Show power percentage"],
|
||||||
desc = L["Show power percentage on the power bar"],
|
desc = L["Show power percentage on the power bar"],
|
||||||
order = 33,
|
order = 6,
|
||||||
|
disabled = function() return Gladdy.db.powerCustomTagsEnabled end,
|
||||||
}),
|
}),
|
||||||
|
header = {
|
||||||
|
type = "header",
|
||||||
|
name = L["Custom Tags"],
|
||||||
|
order = 10,
|
||||||
|
},
|
||||||
|
powerCustomTagsEnabled = Gladdy:GetTagOption(L["Custom Tags Enabled"], 11, nil, option, true),
|
||||||
|
powerTextLeft = Gladdy:GetTagOption(L["Left Text"], 12, "powerCustomTagsEnabled", option),
|
||||||
|
powerTextRight = Gladdy:GetTagOption(L["Right Text"], 13, "powerCustomTagsEnabled", option),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
11
Util.lua
11
Util.lua
@ -43,9 +43,9 @@ local function getTagText(unit, tag, current, max, status)
|
|||||||
if str_find(tag, "percent") then
|
if str_find(tag, "percent") then
|
||||||
return current and max and floor(current * 100 / max) .. "%%" or ""
|
return current and max and floor(current * 100 / max) .. "%%" or ""
|
||||||
elseif str_find(tag, "current") then
|
elseif str_find(tag, "current") then
|
||||||
return current or ""
|
return current and max > 999 and ("%.1fk"):format(current / 1000) or current or ""
|
||||||
elseif str_find(tag, "max") then
|
elseif str_find(tag, "max") then
|
||||||
return max or ""
|
return max and max > 999 and ("%.1fk"):format(max / 1000) or max or ""
|
||||||
elseif str_find(tag, "status") then
|
elseif str_find(tag, "status") then
|
||||||
if str_find(tag, "%|") and status == nil then
|
if str_find(tag, "%|") and status == nil then
|
||||||
return nil
|
return nil
|
||||||
@ -55,11 +55,12 @@ local function getTagText(unit, tag, current, max, status)
|
|||||||
elseif str_find(tag, "name") then
|
elseif str_find(tag, "name") then
|
||||||
return button.name or ""
|
return button.name or ""
|
||||||
elseif str_find(tag, "class") then
|
elseif str_find(tag, "class") then
|
||||||
return button.classLoc or ""
|
return button.classLoc or ""
|
||||||
elseif str_find(tag, "race") then
|
elseif str_find(tag, "race") then
|
||||||
return button.raceLoc or ""
|
return button.raceLoc or ""
|
||||||
elseif str_find(tag, "arena") then
|
elseif str_find(tag, "arena") then
|
||||||
return str_gsub(unit, "arena", "")
|
local str,found = str_gsub(unit, "arena", "")
|
||||||
|
return found == 1 and str or ""
|
||||||
elseif str_find(tag, "spec") then
|
elseif str_find(tag, "spec") then
|
||||||
if str_find(tag, "%|") and button.spec == nil then
|
if str_find(tag, "%|") and button.spec == nil then
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user