from retail

This commit is contained in:
Bunny67
2020-07-26 14:30:59 +03:00
parent 0e3999b8fd
commit ad5e1ed4d1
8 changed files with 121 additions and 71 deletions
+48 -9
View File
@@ -3,6 +3,8 @@ if not WeakAuras.IsCorrectVersion() then return end
local SharedMedia = LibStub("LibSharedMedia-3.0");
local L = WeakAuras.L;
local screenWidth, screenHeight = math.ceil(GetScreenWidth() / 20) * 20, math.ceil(GetScreenHeight() / 20) * 20
local defaultFont = WeakAuras.defaultFont
local defaultFontSize = WeakAuras.defaultFontSize
@@ -80,7 +82,23 @@ local properties = {
softMax = 72,
step = 1,
default = 12
}
},
text_anchorXOffset = {
display = L["X-Offset"],
setter = "SetXOffset",
type = "number",
softMin = (-1 * screenWidth),
softMax = screenWidth,
bigStep = 10,
},
text_anchorYOffset = {
display = L["Y-Offset"],
setter = "SetYOffset",
type = "number",
softMin = (-1 * screenHeight),
softMax = screenHeight,
bigStep = 10,
},
}
@@ -258,7 +276,7 @@ local function modify(parent, region, parentData, data, first)
if text:GetFont() then
text:SetText(WeakAuras.ReplaceRaidMarkerSymbols(textStr))
end
region:UpdateAnchor()
region:UpdateAnchorOnTextChange()
end
end
@@ -342,7 +360,7 @@ local function modify(parent, region, parentData, data, first)
local fontPath = SharedMedia:Fetch("font", data.text_font);
region.text:SetFont(fontPath, size, data.text_fontType);
region.text:SetTextHeight(size)
region:UpdateAnchor();
region:UpdateAnchorOnTextChange();
end
function region:SetVisible(visible)
@@ -380,18 +398,39 @@ local function modify(parent, region, parentData, data, first)
end
end
region.text_anchorXOffset = data.text_anchorXOffset
region.text_anchorYOffset = data.text_anchorYOffset
local textDegrees = data.rotateText == "LEFT" and 90 or data.rotateText == "RIGHT" and -90 or 0;
local xo, yo = getRotateOffset(text, textDegrees, selfPoint)
parent:AnchorSubRegion(text, "point", selfPoint, data.text_anchorPoint, (data.text_anchorXOffset or 0) + xo, (data.text_anchorYOffset or 0) + yo)
region.UpdateAnchor = function(self)
local xo, yo = getRotateOffset(text, textDegrees, selfPoint)
parent:AnchorSubRegion(text, "point", selfPoint, data.text_anchorPoint, (self.text_anchorXOffset or 0) + xo, (self.text_anchorYOffset or 0) + yo)
end
region:UpdateAnchor()
animRotate(text, textDegrees, selfPoint)
if textDegrees == 0 then
region.UpdateAnchor = function() end
region.UpdateAnchorOnTextChange = function() end
else
region.UpdateAnchor = function(self)
local xo, yo = getRotateOffset(self.text, textDegrees, selfPoint)
parent:AnchorSubRegion(self.text, "point", selfPoint, data.text_anchorPoint, (data.text_anchorXOffset or 0) + xo, (data.text_anchorYOffset or 0) + yo)
region.UpdateAnchorOnTextChange = region.UpdateAnchor
end
region.SetXOffset = function(self, xOffset)
if self.text_anchorXOffset == xOffset then
return
end
self.text_anchorXOffset = xOffset
self:UpdateAnchor()
end
region.SetYOffset = function(self, yOffset)
if self.text_anchorYOffset == yOffset then
return
end
self.text_anchorYOffset = yOffset
self:UpdateAnchor()
end
end
+14 -38
View File
@@ -181,61 +181,37 @@ local funcs = {
local offset, offsetx, offsety = self.tick_placement, 0, 0
local width = self.parentMajorSize
local hide = false
if self.tick_placement_mode == "AtValue" then
local percent = self.trigger_total and self.trigger_total ~= 0 and self.tick_placement / self.trigger_total
local minValue, maxValue = self.parent:GetMinMax()
local valueRange = maxValue - minValue
if not self.trigger_total or percent and percent < 0 or percent > 1 then
hide = true
offset = 0
else
offset = percent * width
end
local tick_placement
if self.tick_placement_mode == "AtValue" then
tick_placement = self.tick_placement
elseif self.tick_placement_mode == "AtMissingValue" then
local percent = self.trigger_total and self.trigger_total ~= 0 and 1 - (self.tick_placement / self.trigger_total)
if not self.trigger_total or percent and percent < 0 or percent > 1 then
hide = true
offset = 0
else
offset = percent * width
end
tick_placement = self.trigger_total and self.trigger_total - self.tick_placement
elseif self.tick_placement_mode == "AtPercent" then
if self.tick_placement >= 0 and self.tick_placement <= 100 then
offset = (self.tick_placement / 100) * width
else
hide = true
offset = 0
if self.tick_placement >= 0 and self.tick_placement <= 100 and self.trigger_total then
tick_placement = self.tick_placement * self.trigger_total / 100
end
elseif self.tick_placement_mode == "ValueOffset" then
if self.trigger_total and self.trigger_total ~= 0 then
local atValue
if self.state.progressType == "timed" then
atValue = self.state.expirationTime - GetTime() + self.tick_placement
tick_placement = self.state.expirationTime - GetTime() + self.tick_placement
else
atValue = self.state.value + self.tick_placement
tick_placement = self.state.value + self.tick_placement
end
local percent = atValue / self.trigger_total
if not self.trigger_total or percent < 0 or percent > 1 then
hide = true
offset = 0
else
offset = percent * width
end
else
hide = true
offset = 0
end
end
if hide then
local percent = valueRange ~= 0 and tick_placement and (tick_placement - minValue) / valueRange
if not percent or (percent and percent < 0 or percent > 1) then
self.texture:Hide()
offset = 0
else
self.texture:Show()
offset = percent * width
end
local inverse = self.inverse
if self.trigger_inverse then
inverse = not inverse