Compare with Previous | Blame | View Log
-- ZAM_UnitFrames © ZAM Network LLC
-- All Rights Reserved
--add "you have died" text to inside player frame?
--recreate the reticleover frame
local versionNo = "1.3"
local wm = GetWindowManager()
local strformat = string.format
local LAM = LibStub("LibAddonMenu-2.0")
local LMP = LibStub("LibMediaProvider-1.0")
local targetFrame, inCombat, db
--create these in the main chunk
local playerFrame = wm:CreateTopLevelWindow("ZAMUnitFrames_Player")
do
playerFrame.health = wm:CreateControl("ZAMUnitFrames_PlayerHealth", playerFrame, CT_STATUSBAR)
playerFrame.magicka = wm:CreateControl("ZAMUnitFrames_PlayerMagicka", playerFrame, CT_STATUSBAR)
playerFrame.stamina = wm:CreateControl("ZAMUnitFrames_PlayerStamina", playerFrame, CT_STATUSBAR)
playerFrame.health.text = wm:CreateControl("ZAMUnitFrames_PlayerHealthText", playerFrame, CT_LABEL)
playerFrame.magicka.text = wm:CreateControl("ZAMUnitFrames_PlayerMagickaText", playerFrame, CT_LABEL)
playerFrame.stamina.text = wm:CreateControl("ZAMUnitFrames_PlayerStaminaText", playerFrame, CT_LABEL)
end
local defaults = {
locked = true,
barTexture = "ESO Basic",
font = "Arial Narrow",
fontStyle = "soft-shadow-thin", --add an option for this
border = "ESO Gold",
borderSpacing = 4,
borderSize = 32,
targetReaction = false,
combatFade = false,
}
local function SetFonts(frame)
local fontConfig = "%s|%d|%s"
local path = LMP:Fetch("font", db.font)
local fstyle = db.fontStyle
frame.health.text:SetFont(strformat(fontConfig, path, frame == playerFrame and 36 or 22, fstyle))
if frame == playerFrame then
frame.magicka.text:SetFont(strformat(fontConfig, path, 22, fstyle))
frame.stamina.text:SetFont(strformat(fontConfig, path, 22, fstyle))
else --target frame
frame.name:SetFont(strformat(fontConfig, path, 18, fstyle))
frame.level:SetFont(strformat(fontConfig, path, 18, fstyle))
frame.caption:SetFont(strformat(fontConfig, path, 18, fstyle))
end
end
local function SetBarTextures(frame)
local tex = LMP:Fetch("statusbar", db.barTexture)
--local tex = [[LMP_MediaStash\statusbar\Glamour7]]
if frame == playerFrame then
frame.health:SetTexture(tex)
frame.magicka:SetTexture(tex)
frame.stamina:SetTexture(tex)
frame.siege:SetTexture(tex)
frame.werewolf:SetTexture(tex)
frame.mount:SetTexture(tex)
else --target frame
frame.health.barLeft:SetTexture(tex)
frame.health.barRight:SetTexture(tex)
end
end
local function BorderConfig(frame)
local spacing = db.borderSpacing
frame.bg:ClearAnchors()
frame.bg:SetAnchor(TOPLEFT, frame, TOPLEFT, -(spacing), -(spacing))
frame.bg:SetAnchor(BOTTOMRIGHT, frame, BOTTOMRIGHT, spacing, spacing)
frame.bg:SetInsets(spacing, spacing, -(spacing), -(spacing))
frame.bg:SetEdgeTexture(LMP:Fetch("border", db.border), 256, 32, db.borderSize)
end
local function UnregisterAttributeBars()
ZO_PlayerAttributeMagicka:UnregisterForEvent(EVENT_POWER_UPDATE)
ZO_PlayerAttributeMagicka:UnregisterForEvent(EVENT_INTERFACE_SETTING_CHANGED)
ZO_PlayerAttributeMagicka:UnregisterForEvent(EVENT_PLAYER_ACTIVATED)
EVENT_MANAGER:UnregisterForUpdate("ZO_PlayerAttributeMagickaFadeUpdate")
ZO_PlayerAttributeMagicka:SetHidden(true)
ZO_PlayerAttributeStamina:UnregisterForEvent(EVENT_POWER_UPDATE)
ZO_PlayerAttributeStamina:UnregisterForEvent(EVENT_INTERFACE_SETTING_CHANGED)
ZO_PlayerAttributeStamina:UnregisterForEvent(EVENT_PLAYER_ACTIVATED)
EVENT_MANAGER:UnregisterForUpdate("ZO_PlayerAttributeStaminaFadeUpdate")
ZO_PlayerAttributeStamina:SetHidden(true)
ZO_PlayerAttributeHealth:UnregisterForEvent(EVENT_POWER_UPDATE)
ZO_PlayerAttributeHealth:UnregisterForEvent(EVENT_INTERFACE_SETTING_CHANGED)
ZO_PlayerAttributeHealth:UnregisterForEvent(EVENT_PLAYER_ACTIVATED)
EVENT_MANAGER:UnregisterForUpdate("ZO_PlayerAttributeHealthFadeUpdate")
ZO_PlayerAttributeHealth:SetHidden(true)
end
local function CreatePlayerFrame()
--main frame
playerFrame:SetDimensions(300, 54)
playerFrame:SetDrawLayer(DL_BACKGROUND)
if not db.playerFrame then
db.playerFrame = {}
db.playerFrame.point = {["a"]=BOTTOM, ["b"]=BOTTOM, ["x"]=0, ["y"]=-100}
end
local anchor = db.playerFrame.point
playerFrame:SetAnchor(anchor.a, GuiRoot, anchor.b or anchor.a, anchor.x, anchor.y)
playerFrame:SetMouseEnabled(true)
playerFrame:SetMovable(not db.locked)
playerFrame:SetClampedToScreen(true)
if db.combatFade then playerFrame:SetAlpha(0) end
playerFrame:SetHandler("OnMouseUp", function(self)
self:StopMovingOrResizing()
local _,a,_,b,x,y = self:GetAnchor()
db.playerFrame.point = {["a"]=a, ["b"]=b, ["x"]=x, ["y"]=y}
end)
--border & background
playerFrame.bg = wm:CreateControl("ZAMUnitFrames_PlayerBG", playerFrame, CT_BACKDROP)
playerFrame.bg:SetCenterColor(0, 0, 0, .5)
playerFrame.bg:SetEdgeColor(1, 1, 1, 1)
BorderConfig(playerFrame)
--health bar
playerFrame.health:SetAnchor(TOPLEFT, playerFrame, TOPLEFT, 1, 1)
playerFrame.health:SetAnchor(TOPRIGHT, playerFrame, TOPRIGHT, -1, 1)
playerFrame.health:SetHeight(20)
playerFrame.health:SetMinMax(0, 100)
--playerFrame.health:SetValue(100)
playerFrame.health.text:SetAnchor(LEFT, playerFrame, RIGHT, 8, 0)
playerFrame.health.text:SetText("100%")
--siege health mini-bar
playerFrame.siege = wm:CreateControl("ZAMUnitFrames_PlayerSiegeHealth", playerFrame.health, CT_STATUSBAR)
playerFrame.siege:SetAnchor(BOTTOMLEFT, playerFrame.health, BOTTOMLEFT)
playerFrame.siege:SetAnchor(BOTTOMRIGHT, playerFrame.health, BOTTOMRIGHT)
playerFrame.siege:SetHeight(8)
playerFrame.siege:SetMinMax(0,100)
playerFrame.siege:SetHidden(true)
--playerFrame.siege:SetValue(90)
do
local r1,g1,b1 = ZO_POWER_BAR_GRADIENT_COLORS[POWERTYPE_HEALTH][1]:UnpackRGBA()
local r2,g2,b2 = ZO_POWER_BAR_GRADIENT_COLORS[POWERTYPE_HEALTH][2]:UnpackRGBA()
playerFrame.health:SetGradientColors(r1, g1, b1, 1, r2, g2, b2, 1)
playerFrame.health.text:SetColor(r2, g2, b2)
--playerFrame.siege:SetColor(r1-.1, g1-.1, b1-.1)
playerFrame.siege:SetGradientColors(r1-.2, g1-.2, b1-.2, 1, r2-.2, g2-.2, b2-.2, 1)
end
--magicka bar
playerFrame.magicka:SetAnchor(TOPLEFT, playerFrame.health, BOTTOMLEFT, 0, 1)
playerFrame.magicka:SetAnchor(TOPRIGHT, playerFrame.health, BOTTOMRIGHT, 0, 1)
playerFrame.magicka:SetHeight(15)
playerFrame.magicka:SetMinMax(0,100)
--playerFrame.magicka:SetValue(50)
playerFrame.magicka.text:SetAnchor(TOPRIGHT, playerFrame, TOPLEFT, -8, 0)
playerFrame.magicka.text:SetText("100%")
--werewolf mini-bar
playerFrame.werewolf = wm:CreateControl("ZAMUnitFrames_PlayerWerewolf", playerFrame.magicka, CT_STATUSBAR)
playerFrame.werewolf:SetAnchor(BOTTOMLEFT, playerFrame.magicka, BOTTOMLEFT)
playerFrame.werewolf:SetAnchor(BOTTOMRIGHT, playerFrame.magicka, BOTTOMRIGHT)
playerFrame.werewolf:SetHeight(5)
--playerFrame.mount:SetMinMax(0,100)
playerFrame.werewolf:SetHidden(true)
--playerFrame.werewolf:SetValue(70)
do
local r1,g1,b1 = ZO_POWER_BAR_GRADIENT_COLORS[POWERTYPE_MAGICKA][1]:UnpackRGBA()
local r2,g2,b2 = ZO_POWER_BAR_GRADIENT_COLORS[POWERTYPE_MAGICKA][2]:UnpackRGBA()
playerFrame.magicka:SetGradientColors(r1, g1, b1, 1, r2, g2, b2, 1)
playerFrame.magicka.text:SetColor(r2, g2, b2)
--playerFrame.werewolf:SetColor(r1-.1, g1-.1, b1-.1)
playerFrame.werewolf:SetGradientColors(r1-.2, g1-.2, b1-.2, 1, r2-.2, g2-.2, b2-.2, 1)
end
--stamina bar
playerFrame.stamina:SetAnchor(TOPLEFT, playerFrame.magicka, BOTTOMLEFT, 0, 1)
playerFrame.stamina:SetAnchor(TOPRIGHT, playerFrame.magicka, BOTTOMRIGHT, 0, 1)
playerFrame.stamina:SetHeight(15)
playerFrame.stamina:SetMinMax(0,100)
--playerFrame.stamina:SetValue(75)
playerFrame.stamina.text:SetAnchor(BOTTOMRIGHT, playerFrame, BOTTOMLEFT, -8, 0)
playerFrame.stamina.text:SetText("100%")
--mount stamina mini-bar
playerFrame.mount = wm:CreateControl("ZAMUnitFrames_PlayerMountStamina", playerFrame.stamina, CT_STATUSBAR)
playerFrame.mount:SetAnchor(BOTTOMLEFT, playerFrame.stamina, BOTTOMLEFT)
playerFrame.mount:SetAnchor(BOTTOMRIGHT, playerFrame.stamina, BOTTOMRIGHT)
playerFrame.mount:SetHeight(5)
--playerFrame.mount:SetMinMax(0,100)
playerFrame.mount:SetHidden(true)
--playerFrame.mount:SetValue(70)
do
local r1,g1,b1 = ZO_POWER_BAR_GRADIENT_COLORS[POWERTYPE_STAMINA][1]:UnpackRGBA()
local r2,g2,b2 = ZO_POWER_BAR_GRADIENT_COLORS[POWERTYPE_STAMINA][2]:UnpackRGBA()
playerFrame.stamina:SetGradientColors(r1, g1, b1, 1, r2, g2, b2, 1)
playerFrame.stamina.text:SetColor(r2 +.05, g2 +.05, b2 +.05)
--playerFrame.mount:SetColor(r1-.1, g1-.1, b1-.1)
playerFrame.mount:SetGradientColors(r1-.2, g1-.2, b1-.2, 1, r2-.2, g2-.2, b2-.2, 1)
end
--set the fonts & bar textures
SetFonts(playerFrame)
SetBarTextures(playerFrame)
--reparent & reuse warner frame/animations
local healthwarner = ZO_PlayerAttributeHealthWarner
playerFrame.health.warner = healthwarner
healthwarner:SetParent(playerFrame.health)
healthwarner:ClearAnchors()
healthwarner:SetAnchor(TOPLEFT, playerFrame.health, TOPLEFT, -18, 0)
healthwarner:SetAnchor(BOTTOMRIGHT, playerFrame.health, BOTTOMRIGHT, 18, 0)
GetControl(healthwarner, "Left"):SetTextureCoords(.7578125, .5234375, 0, 1)
GetControl(healthwarner, "Right"):SetTextureCoords(.5234375, .7578125, 0, 1)
GetControl(healthwarner, "Left"):SetWidth(30)
GetControl(healthwarner, "Right"):SetWidth(30)
local magickawarner = ZO_PlayerAttributeMagickaWarner
playerFrame.magicka.warner = magickawarner
magickawarner:SetParent(playerFrame.magicka)
magickawarner:ClearAnchors()
magickawarner:SetAnchor(TOPLEFT, playerFrame.magicka, TOPLEFT, -18, 0)
magickawarner:SetAnchor(BOTTOMRIGHT, playerFrame.magicka, BOTTOMRIGHT, 18, 0)
GetControl(magickawarner, "Left"):SetTextureCoords(.7578125, .5234375, 0, 1)
GetControl(magickawarner, "Right"):SetTextureCoords(.5234375, .7578125, 0, 1)
GetControl(magickawarner, "Left"):SetWidth(30)
GetControl(magickawarner, "Right"):SetWidth(30)
local staminawarner = ZO_PlayerAttributeStaminaWarner
playerFrame.stamina.warner = staminawarner
staminawarner:SetParent(playerFrame.stamina)
staminawarner:ClearAnchors()
staminawarner:SetAnchor(TOPLEFT, playerFrame.stamina, TOPLEFT, -18, 0)
staminawarner:SetAnchor(BOTTOMRIGHT, playerFrame.stamina, BOTTOMRIGHT, 18, 0)
GetControl(staminawarner, "Left"):SetTextureCoords(.7578125, .5234375, 0, 1)
GetControl(staminawarner, "Right"):SetTextureCoords(.5234375, .7578125, 0, 1)
GetControl(staminawarner, "Left"):SetWidth(30)
GetControl(staminawarner, "Right"):SetWidth(30)
UnregisterAttributeBars()
end
local function TargetFrameTweaks()
targetFrame = ZO_TargetUnitFramereticleover
targetFrame.health = {}
targetFrame.health.barLeft = ZO_TargetUnitFramereticleoverBarLeft
targetFrame.health.barRight = ZO_TargetUnitFramereticleoverBarRight
targetFrame.health.barRight.gloss:SetHidden(true)
targetFrame.health.barLeft.gloss:SetHidden(true)
targetFrame.health.text = wm:CreateControl("ZAMUnitFrames_TargetHealthText", targetFrame, CT_LABEL)
targetFrame.health.text:SetAnchor(RIGHT, targetFrame, LEFT, -5, 0)
targetFrame.health.text:SetText("100%")
targetFrame.name = ZO_TargetUnitFramereticleoverName
targetFrame.level = ZO_TargetUnitFramereticleoverLevel
targetFrame.caption = ZO_TargetUnitFramereticleoverCaption
if not db.targetFrame then
db.targetFrame = {}
db.targetFrame.point = {["a"] = TOP, ["b"] = TOP, ["x"] = 0, ["y"] = 88}
end
targetFrame:ClearAnchors()
local anchor = db.targetFrame.point
targetFrame:SetAnchor(anchor.a, GuiRoot, anchor.b, anchor.x, anchor.y)
targetFrame.moverFrame = wm:CreateTopLevelWindow("ZAMUnitFrames_TargetMoverFrame")
local moverFrame = targetFrame.moverFrame
moverFrame:SetDrawLayer(DL_BACKGROUND)
moverFrame:SetAnchor(anchor.a, GuiRoot, anchor.b, anchor.x, anchor.y)
moverFrame:SetDimensions(280, 75)
moverFrame.bg = wm:CreateControl("ZAMUnitFrames_TargetMoverFrameBG", moverFrame, CT_TEXTURE)
moverFrame.bg:SetColor(1, 1, 1, .5)
moverFrame.bg:SetAnchorFill(moverFrame)
moverFrame:SetHidden(db.locked)
moverFrame:SetMouseEnabled(true)
moverFrame:SetMovable(not db.locked)
moverFrame:SetClampedToScreen(true)
moverFrame:SetHandler("OnMouseUp", function(self)
self:StopMovingOrResizing()
local _,a,_,b,x,y = self:GetAnchor()
db.targetFrame.point = {["a"] = a, ["b"] = b, ["x"] = x, ["y"] = y}
targetFrame:ClearAnchors()
targetFrame:SetAnchor(a, GuiRoot, b, x, y)
end)
SetFonts(targetFrame)
local function UpdateColor()
if DoesUnitExist("reticleover") then
local curHealthT, maxHealthT, effMaxHealthT = GetUnitPower("reticleover", POWERTYPE_HEALTH)
targetFrame.health.text:SetText(strformat("%d%%", curHealthT/effMaxHealthT*100))
if db.targetReaction then
local r, g, b = GetUnitReactionColor("reticleover")
targetFrame.health.barLeft:SetGradientColors(r*.52, g*.73, b*.73, 1, r, g, b, 1)
targetFrame.health.barRight:SetGradientColors(r*.52, g*.73, b*.73, 1, r, g, b, 1)
end
end
end
targetFrame.health.text:RegisterForEvent(EVENT_RETICLE_TARGET_CHANGED, UpdateColor)
targetFrame.health.text:RegisterForEvent(EVENT_DISPOSITION_UPDATE, UpdateColor)
end
local function InitializeBars()
local curHealth, maxHealth, effMaxHealth = GetUnitPower("player", POWERTYPE_HEALTH)
playerFrame.health:SetMinMax(0, effMaxHealth)
playerFrame.health:SetValue(curHealth)
local curMagicka, maxMagicka, effMaxMagicka = GetUnitPower("player", POWERTYPE_MAGICKA)
playerFrame.magicka:SetMinMax(0, effMaxMagicka)
playerFrame.magicka:SetValue(curMagicka)
local curStamina, maxStamina, effMaxStamina = GetUnitPower("player", POWERTYPE_STAMINA)
playerFrame.stamina:SetMinMax(0, effMaxStamina)
playerFrame.stamina:SetValue(curStamina)
local curWerewolf, maxWerewolf, effMaxWerewolf = GetUnitPower("player", POWERTYPE_WEREWOLF)
playerFrame.werewolf:SetMinMax(0, effMaxWerewolf)
playerFrame.werewolf:SetValue(curWerewolf)
local curMountSta, maxMountSta, effMaxMountSta = GetUnitPower("player", POWERTYPE_MOUNT_STAMINA)
playerFrame.mount:SetMinMax(0, effMaxMountSta)
playerFrame.mount:SetValue(curMountSta)
end
local function CombatFade(event, inCombatBool) --make this fade in/out instead?
if db.combatFade then
inCombat = inCombatBool or inCombat
local curHealth, maxHealth, effMaxHealth = GetUnitPower("player", POWERTYPE_HEALTH)
local curMagicka, maxMagicka, effMaxMagicka = GetUnitPower("player", POWERTYPE_MAGICKA)
if not inCombat and curHealth == effMaxHealth and curMagicka == effMaxMagicka then
playerFrame:SetAlpha(0)
else
playerFrame:SetAlpha(1)
end
end
end
local function UpdateSiegeHealthBar(event, unit)
unit = unit or (IsGameCameraSiegeControlled() and "controlledsiege") or (IsPlayerEscortingRam() and "escortedram")
if not DoesUnitExist("player") and (unit == "controlledsiege" or unit == "escortedram") then
playerFrame.siege:SetHidden(false)
local curHealth, maxHealth, effMaxHealth = GetUnitPower(unit, POWERTYPE_HEALTH)
ZO_StatusBar_SmoothTransition(playerFrame.siege, curHealth, effMaxHealth)
else
playerFrame.siege:SetHidden(true)
end
end
local function PowerUpdate(event, unitTag, powerIndex, powerType, powerValue, powerMax, powerEffectiveMax)
if unitTag == "player" then
if powerType == POWERTYPE_MAGICKA then
ZO_StatusBar_SmoothTransition(playerFrame.magicka, powerValue, powerEffectiveMax)
playerFrame.magicka.text:SetText(strformat("%d%%", powerValue/powerEffectiveMax*100))
elseif powerType == POWERTYPE_STAMINA then
ZO_StatusBar_SmoothTransition(playerFrame.stamina, powerValue, powerEffectiveMax)
playerFrame.stamina.text:SetText(strformat("%d%%", powerValue/powerEffectiveMax*100))
elseif powerType == POWERTYPE_HEALTH then
ZO_StatusBar_SmoothTransition(playerFrame.health, powerValue, powerEffectiveMax)
playerFrame.health.text:SetText(strformat("%d%%", powerValue/powerEffectiveMax*100))
elseif powerType == POWERTYPE_WEREWOLF then
ZO_StatusBar_SmoothTransition(playerFrame.werewolf, powerValue, powerEffectiveMax)
elseif powerType == POWERTYPE_MOUNT_STAMINA then
ZO_StatusBar_SmoothTransition(playerFrame.mount, powerValue, powerEffectiveMax)
end
CombatFade()
elseif unitTag == "reticleover" and powerType == POWERTYPE_HEALTH then
targetFrame.health.text:SetText(strformat("%d%%", powerValue/powerEffectiveMax*100))
elseif (unitTag == "controlledsiege" or unitTag == "escortedram") and powerType == POWERTYPE_HEALTH then --does this event fire for these units?
ZO_StatusBar_SmoothTransition(playerFrame.siege, powerValue, powerEffectiveMax)
end
end
local function SetUpDB()
ZAM_UnitFramesDB = ZAM_UnitFramesDB or {}
for k,v in pairs(defaults) do
if type(ZAM_UnitFramesDB[k]) == "nil" then
ZAM_UnitFramesDB[k] = v
end
end
db = ZAM_UnitFramesDB
end
local panelData = {
type = "panel",
name = "ZAM UnitFrames",
displayName = "|t72:36:ZAM_Stats\\ZAM_Logo.dds|t UnitFrames",
slashCommand = "/zamuf",
registerForDefaults = true,
author = "Seerah",
version = versionNo,
}
local optionsData = {
[1] = {
type = "checkbox",
name = "Lock Frames",
tooltip = "Lock the unit frames in place.",
getFunc = function() return db.locked end,
setFunc = function(value)
db.locked = value
playerFrame:SetMovable(not db.locked)
targetFrame.moverFrame:SetHidden(db.locked)
targetFrame.moverFrame:SetMovable(not db.locked)
end,
default = defaults.locked
},
[2] = {
type = "checkbox",
name = "Target Reaction",
tooltip = "Color the reticle target's healthbar by reaction.",
getFunc = function() return db.targetReaction end,
setFunc = function(value)
db.targetReaction = value
if not db.targetReaction then
targetFrame.health.barRight:SetGradientColors(114/255, 35/255, 35/255, 1, 218/255, 48/255, 48/255, 1)
targetFrame.health.barLeft:SetGradientColors(114/255, 35/255, 35/255, 1, 218/255, 48/255, 48/255, 1)
end
end,
default = defaults.targetReaction
},
[3] = {
type = "checkbox",
name = "Show Only In Combat",
tooltip = "Show the player frame only when in combat or when health or magicka aren't full.",
getFunc = function() return db.combatFade end,
setFunc = function(value)
db.combatFade = value
playerFrame:SetAlpha(db.combatFade and 0 or 1)
end,
default = defaults.combatFade
},
[4] = {
type = "header",
name = "Skinning Options",
},
[5] = {
type = "dropdown",
name = "Bar Texture",
tooltip = "The texture to use for the status bars.",
choices = LMP:List("statusbar"),
getFunc = function() return db.barTexture end,
setFunc = function(barTexture)
db.barTexture = barTexture
SetBarTextures(playerFrame)
end,
default = defaults.barTexture
},
[6] = {
type = "dropdown",
name = "Font",
tooltip = "The font to use for the text.",
choices = LMP:List("font"),
getFunc = function() return db.font end,
setFunc = function(font)
db.font = font
SetFonts(ZAMUnitFrames_Player)
end,
default = defaults.font
},
[7] = {
type = "dropdown",
name = "Border",
tooltip = "The texture to use for the border.",
choices = LMP:List("border"),
getFunc = function() return db.border end,
setFunc = function(border)
db.border = border
playerFrame.bg:SetEdgeTexture(LMP:Fetch("border", border), 256, 32, 40)
end,
default = defaults.border
},
[8] = {
type = "slider",
name = "Border Spacing",
tooltip = "The distance between the outside edge of the border and the background of the frame.",
min = 0,
max = 20,
step = 1,
getFunc = function() return db.borderSpacing end,
setFunc = function(val)
db.borderSpacing = val
BorderConfig(playerFrame)
end,
warning = "Each border is different in regards to what combination of spacing and size works best with it. Play with the two sliders until you reach your desired result.",
width = "half",
default = defaults.borderSpacing,
},
[9] = {
type = "slider",
name = "Border Size",
tooltip = "The width of the border.",
min = 2,
max = 64,
step = 2,
getFunc = function() return db.borderSize end,
setFunc = function(val)
db.borderSize = val
BorderConfig(playerFrame)
end,
warning = "Each border is different in regards to what combination of spacing and size works best with it. Play with the two sliders until you reach your desired result.",
width = "half",
default = defaults.borderSize,
},
}
local function CreateOptions()
LAM:RegisterAddonPanel("ZAMUnitFramesOptions", panelData)
LAM:RegisterOptionControls("ZAMUnitFramesOptions", optionsData)
end
playerFrame:RegisterForEvent(EVENT_ADD_ON_LOADED, function(event, addon)
--playerFrame:RegisterForEvent(EVENT_PLAYER_ACTIVATED, function(event, addon)
if addon == "ZAM_UnitFrames" then
SetUpDB()
CreatePlayerFrame()
TargetFrameTweaks()
InitializeBars()
CreateOptions()
playerFrame:RegisterForEvent(EVENT_POWER_UPDATE, PowerUpdate)
playerFrame:RegisterForEvent(EVENT_PLAYER_COMBAT_STATE, CombatFade)
playerFrame:RegisterForEvent(EVENT_UNIT_CREATED, UpdateSiegeHealthBar)
playerFrame:RegisterForEvent(EVENT_BEGIN_SIEGE_CONTROL, UpdateSiegeHealthBar)
playerFrame:RegisterForEvent(EVENT_END_SIEGE_CONTROL, UpdateSiegeHealthBar)
playerFrame:RegisterForEvent(EVENT_LEAVE_RAM_ESCORT, UpdateSiegeHealthBar)
playerFrame:RegisterForEvent(EVENT_WEREWOLF_STATE_CHANGED, function(event, isWerewolf)
playerFrame.werewolf:SetHidden(not isWerewolf)
end)
playerFrame:RegisterForEvent(EVENT_MOUNTED_STATE_CHANGED, function(event, isMounted)
playerFrame.mount:SetHidden(not isMounted)
end)
playerFrame:UnregisterForEvent(EVENT_ADD_ON_LOADED)
--playerFrame:UnregisterForEvent(EVENT_PLAYER_ACTIVATED)
end
end)