|
|
|
@@ -1,4 +1,5 @@
|
|
|
|
|
if not WeakAuras.IsCorrectVersion() then return end
|
|
|
|
|
local AddonName, Private = ...
|
|
|
|
|
|
|
|
|
|
local SharedMedia = LibStub("LibSharedMedia-3.0");
|
|
|
|
|
local L = WeakAuras.L;
|
|
|
|
@@ -12,6 +13,14 @@ local default = function(parentType)
|
|
|
|
|
automatic_length = true,
|
|
|
|
|
tick_thickness = 2,
|
|
|
|
|
tick_length = 30,
|
|
|
|
|
use_texture = false,
|
|
|
|
|
tick_texture = [[Interface\CastingBar\UI-CastingBar-Spark]],
|
|
|
|
|
tick_blend_mode = "ADD",
|
|
|
|
|
tick_desaturate = false,
|
|
|
|
|
tick_rotation = 0,
|
|
|
|
|
tick_xOffset = 0,
|
|
|
|
|
tick_yOffset = 0,
|
|
|
|
|
tick_mirror = false,
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@@ -61,6 +70,26 @@ local properties = {
|
|
|
|
|
bigStep = 1,
|
|
|
|
|
default = 30,
|
|
|
|
|
},
|
|
|
|
|
tick_desaturate = {
|
|
|
|
|
display = L["Desaturate"],
|
|
|
|
|
setter = "SetTickDesaturated",
|
|
|
|
|
type = "bool",
|
|
|
|
|
default = true,
|
|
|
|
|
},
|
|
|
|
|
tick_rotation = {
|
|
|
|
|
display = L["Rotation"],
|
|
|
|
|
setter = "SetTickRotation",
|
|
|
|
|
type = "number",
|
|
|
|
|
min = 0,
|
|
|
|
|
max = 360,
|
|
|
|
|
default = 0,
|
|
|
|
|
},
|
|
|
|
|
tick_mirror = {
|
|
|
|
|
display = L["Mirror"],
|
|
|
|
|
setter = "SetTickMirror",
|
|
|
|
|
type = "bool",
|
|
|
|
|
default = true,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local auraBarAnchor = {
|
|
|
|
@@ -145,7 +174,12 @@ local funcs = {
|
|
|
|
|
end,
|
|
|
|
|
SetTickColor = function(self, r, g, b, a)
|
|
|
|
|
self.tick_color[1], self.tick_color[2], self.tick_color[3], self.tick_color[4] = r, g, b, a or 1
|
|
|
|
|
self.texture:SetTexture(r, g, b, a or 1)
|
|
|
|
|
if self.use_texture then
|
|
|
|
|
self.texture:SetVertexColor(r, g, b, a or 1)
|
|
|
|
|
self:UpdateTickDesaturated()
|
|
|
|
|
else
|
|
|
|
|
self.texture:SetTexture(r, g, b, a or 1)
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
SetTickPlacementMode = function(self, placement_mode)
|
|
|
|
|
if self.tick_placement_mode ~= placement_mode then
|
|
|
|
@@ -232,7 +266,7 @@ local funcs = {
|
|
|
|
|
end
|
|
|
|
|
local side = inverse and auraBarAnchorInverse or auraBarAnchor
|
|
|
|
|
self:ClearAllPoints()
|
|
|
|
|
self:SetPoint("CENTER", self.parent.bar, side[self.orientation], offsetx, offsety)
|
|
|
|
|
self:SetPoint("CENTER", self.parent.bar, side[self.orientation], offsetx + self.tick_xOffset, offsety + self.tick_yOffset)
|
|
|
|
|
end,
|
|
|
|
|
SetAutomaticLength = function(self, automatic_length)
|
|
|
|
|
if self.automatic_length ~= automatic_length then
|
|
|
|
@@ -265,7 +299,52 @@ local funcs = {
|
|
|
|
|
else
|
|
|
|
|
self:SetHeight(length)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
SetTickDesaturated = function(self, desaturate)
|
|
|
|
|
if self.use_texture and self.tick_desaturate ~= desaturate then
|
|
|
|
|
self.tick_desaturate = desaturate
|
|
|
|
|
self:UpdateTickDesaturated()
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
UpdateTickDesaturated = function(self)
|
|
|
|
|
self.texture:SetDesaturated(self.tick_desaturate)
|
|
|
|
|
end,
|
|
|
|
|
SetTickRotation = function(self, degrees)
|
|
|
|
|
if self.tick_rotation ~= degrees then
|
|
|
|
|
self.tick_rotation = degrees
|
|
|
|
|
self:UpdateTickRotation()
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
UpdateTickRotation = function(self)
|
|
|
|
|
local rad = math.rad(self.tick_rotation)
|
|
|
|
|
self.texture:SetRotation(rad)
|
|
|
|
|
end,
|
|
|
|
|
SetTickMirror = function(self, mirror)
|
|
|
|
|
if self.mirror ~= mirror then
|
|
|
|
|
self.mirror = mirror
|
|
|
|
|
self:UpdateTickMirror()
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
UpdateTickMirror = function(self)
|
|
|
|
|
if self.mirror then
|
|
|
|
|
self.texture:SetTexCoord(0, 1, 1, 1, 0, 0, 1, 0)
|
|
|
|
|
else
|
|
|
|
|
self.texture:SetTexCoord(0, 0, 1, 0, 0, 1, 1, 1)
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
SetTickBlendMode = function(self, mode)
|
|
|
|
|
if self.tick_blend_mode ~= mode then
|
|
|
|
|
self.tick_blend_mode = mode
|
|
|
|
|
self:UpdateTickBlendMode()
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
UpdateTickBlendMode = function(self)
|
|
|
|
|
if self.use_texture then
|
|
|
|
|
self.texture:SetBlendMode(self.tick_blend_mode)
|
|
|
|
|
else
|
|
|
|
|
self.texture:SetBlendMode("BLEND")
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local function modify(parent, region, parentData, data, first)
|
|
|
|
@@ -290,13 +369,26 @@ local function modify(parent, region, parentData, data, first)
|
|
|
|
|
region.automatic_length = data.automatic_length
|
|
|
|
|
region.tick_thickness = data.tick_thickness
|
|
|
|
|
region.tick_length = data.tick_length
|
|
|
|
|
region.use_texture = data.use_texture
|
|
|
|
|
region.tick_texture = data.tick_texture
|
|
|
|
|
|
|
|
|
|
region.tick_xOffset = data.tick_xOffset
|
|
|
|
|
region.tick_yOffset = data.tick_yOffset
|
|
|
|
|
|
|
|
|
|
for k, v in pairs(funcs) do
|
|
|
|
|
region[k] = v
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if data.use_texture then
|
|
|
|
|
region.texture:SetTexture(data.tick_texture)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
region:SetVisible(data.tick_visible)
|
|
|
|
|
region:SetTickColor(unpack(data.tick_color))
|
|
|
|
|
region:SetTickDesaturated(data.tick_desaturate)
|
|
|
|
|
region:SetTickBlendMode(data.tick_blend_mode)
|
|
|
|
|
region:SetTickRotation(data.tick_rotation)
|
|
|
|
|
region:SetTickMirror(data.tick_mirror)
|
|
|
|
|
|
|
|
|
|
region:UpdateTickSize()
|
|
|
|
|
|
|
|
|
|