Coded more implementations
This commit is contained in:
+9
-2
@@ -237,7 +237,7 @@
|
||||
---@class texture : region
|
||||
---@field SetDrawLayer fun(self: texture, layer: "background"|"border"|"artwork"|"overlay"|"highlight", subLayer: number|nil)
|
||||
---@field SetTexture fun(self: texture, path: string)
|
||||
---@field SetColorTexture fun(self: texture, r: red|number, g: green|number, b: blue|number, a: alpha|number)
|
||||
---@field SetColorTexture fun(self: texture, r: red|number, g: green|number, b: blue|number, a: alpha|number|nil)
|
||||
---@field SetDesaturated fun(self: texture, desaturate: boolean)
|
||||
---@field SetBlendMode fun(self: texture, mode: "ADD"|"BLEND"|"DISABLE"|"MOD"|"MOD2X"|"OVERLAY"|"REPLACE"|"SUBTRACT")
|
||||
---@field SetVertexColor fun(self: texture, r: red|number, g: green|number, b: blue|number, a: alpha|number)
|
||||
@@ -445,7 +445,7 @@
|
||||
---@field cursorPosY number mouse position when the spellbar got OnMouseDown event
|
||||
---@field spellTable spelltable
|
||||
---@field bkSpellData spelltableadv
|
||||
---@field statusBar statusbar
|
||||
---@field statusBar breakdownspellbarstatusbar
|
||||
---@field expandButton breakdownexpandbutton
|
||||
---@field spellIconFrame frame
|
||||
---@field spellIcon texture
|
||||
@@ -458,6 +458,11 @@
|
||||
---@field AddFrameToHeaderAlignment fun(self: breakdownspellbar, frame: uiobject)
|
||||
---@field AlignWithHeader fun(self: breakdownspellbar, header: table, align: string|"left")
|
||||
|
||||
---@class breakdownspellbarstatusbar : statusbar
|
||||
---@field backgroundTexture texture
|
||||
---@field overlayTexture texture
|
||||
---@field highlightTexture texture
|
||||
|
||||
---spelltableadv is similar to spelltable but allow custom members, methods and any modification isn't save to saved variables
|
||||
---@class spelltableadv : spelltable, spelltablemixin
|
||||
---@field expanded boolean if is true the show the nested spells
|
||||
@@ -491,8 +496,10 @@
|
||||
---@field Lines breakdownspellblockline[]
|
||||
---@field reportButton button
|
||||
---@field overlay texture
|
||||
---@field statusBarTexture texture
|
||||
---@field sparkTexture texture
|
||||
---@field gradientTexture texture
|
||||
---@field backgroundTexture texture
|
||||
---@field GetLine fun(self: breakdownspellblock, index: number) : breakdownspellblockline
|
||||
---@field GetLines fun(self: breakdownspellblock) : breakdownspellblockline, breakdownspellblockline, breakdownspellblockline
|
||||
|
||||
|
||||
@@ -346,7 +346,6 @@ function spellsTab.OnCreateTabCallback(tabButton, tabFrame)
|
||||
---@type breakdownspellblockcontainer
|
||||
local spellBlockContainer = spellsTab.CreateSpellBlockContainer(tabFrame)
|
||||
spellsTab.SpellBlockContainer = spellBlockContainer
|
||||
spellBlockContainer:SetPoint("topleft", spellScrollContainer, "topright", 26, 0)
|
||||
|
||||
--create the targets container
|
||||
spellsTab.CreateTargetContainer(tabFrame)
|
||||
@@ -441,20 +440,23 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
GameTooltip:Show()
|
||||
end
|
||||
|
||||
---@type number
|
||||
local blockIndex = 1
|
||||
|
||||
--get the first spell block to use as summary
|
||||
---@type breakdownspellblock
|
||||
local summaryBlock = spellBlockContainer:GetBlock(blockIndex)
|
||||
summaryBlock:Show()
|
||||
summaryBlock:SetValue(50)
|
||||
summaryBlock:SetValue(100)
|
||||
|
||||
if (mainAttribute == DETAILS_ATTRIBUTE_DAMAGE) then --this should run within the damage class
|
||||
local bShowDamageDone = subAttribute == DETAILS_SUBATTRIBUTE_DAMAGEDONE or subAttribute == DETAILS_SUBATTRIBUTE_DPS
|
||||
|
||||
---@type number
|
||||
local blockIndex = 1
|
||||
|
||||
---@type number
|
||||
local totalHits = spellTable.counter
|
||||
|
||||
--damage section showing damage done sub section
|
||||
--get the first spell block to use as summary
|
||||
---@type breakdownspellblock
|
||||
local summaryBlock = spellBlockContainer:GetBlock(blockIndex)
|
||||
summaryBlock:Show()
|
||||
blockIndex = blockIndex + 1
|
||||
|
||||
do --update the texts in the summary block
|
||||
@@ -483,7 +485,6 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
local percent = normalHitsAmt / math.max(totalHits, 0.0001) * 100
|
||||
normalHitsBlock:SetValue(percent)
|
||||
normalHitsBlock.sparkTexture:SetPoint("left", normalHitsBlock, "left", percent / 100 * normalHitsBlock:GetWidth() + spellBreakdownSettings.blockspell_spark_offset, 0)
|
||||
normalHitsBlock:SetStatusBarColor(1, 1, 1, .5)
|
||||
|
||||
local blockLine1, blockLine2, blockLine3 = normalHitsBlock:GetLines()
|
||||
blockLine1.leftText:SetText(Loc ["STRING_NORMAL_HITS"])
|
||||
@@ -512,7 +513,6 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
local percent = Details.SpellTableMixin.GetCritPercent(spellTable)
|
||||
critHitsBlock:SetValue(percent)
|
||||
critHitsBlock.sparkTexture:SetPoint("left", critHitsBlock, "left", percent / 100 * critHitsBlock:GetWidth() + spellBreakdownSettings.blockspell_spark_offset, 0)
|
||||
critHitsBlock:SetStatusBarColor(1, 1, 1, .5)
|
||||
|
||||
local blockLine1, blockLine2, blockLine3 = critHitsBlock:GetLines()
|
||||
blockLine1.leftText:SetText(Loc ["STRING_CRITICAL_HITS"])
|
||||
@@ -531,17 +531,10 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
end
|
||||
|
||||
elseif (mainAttribute == DETAILS_ATTRIBUTE_HEAL) then --this should run within the heal class
|
||||
---@type number
|
||||
local blockIndex = 1
|
||||
|
||||
---@type number
|
||||
local totalHits = spellTable.counter
|
||||
|
||||
--damage section showing damage done sub section
|
||||
--get the first spell block to use as summary
|
||||
---@type breakdownspellblock
|
||||
local summaryBlock = spellBlockContainer:GetBlock(blockIndex)
|
||||
summaryBlock:Show()
|
||||
--healing section showing healing done sub section
|
||||
blockIndex = blockIndex + 1
|
||||
|
||||
do --update the texts in the summary block
|
||||
@@ -570,7 +563,6 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
local percent = normalHitsAmt / math.max(totalHits, 0.0001) * 100
|
||||
normalHitsBlock:SetValue(percent)
|
||||
normalHitsBlock.sparkTexture:SetPoint("left", normalHitsBlock, "left", percent / 100 * normalHitsBlock:GetWidth() + spellBreakdownSettings.blockspell_spark_offset, 0)
|
||||
normalHitsBlock:SetStatusBarColor(1, 1, 1, .5)
|
||||
|
||||
local blockLine1, blockLine2, blockLine3 = normalHitsBlock:GetLines()
|
||||
blockLine1.leftText:SetText(Loc ["STRING_NORMAL_HITS"])
|
||||
@@ -599,7 +591,6 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
local percent = criticalHitsAmt / math.max(totalHits, 0.0001) * 100
|
||||
critHitsBlock:SetValue(percent)
|
||||
critHitsBlock.sparkTexture:SetPoint("left", critHitsBlock, "left", percent / 100 * critHitsBlock:GetWidth() + spellBreakdownSettings.blockspell_spark_offset, 0)
|
||||
critHitsBlock:SetStatusBarColor(1, 1, 1, .5)
|
||||
|
||||
local blockLine1, blockLine2, blockLine3 = critHitsBlock:GetLines()
|
||||
blockLine1.leftText:SetText(Loc ["STRING_CRITICAL_HITS"])
|
||||
@@ -636,7 +627,6 @@ local onEnterBreakdownSpellBar = function(spellBar) --parei aqui: precisa por no
|
||||
local percent = overheal / (overheal + spellTable.total) * 100
|
||||
critHitsBlock:SetValue(percent)
|
||||
critHitsBlock.sparkTexture:SetPoint("left", critHitsBlock, "left", percent / 100 * critHitsBlock:GetWidth() + spellBreakdownSettings.blockspell_spark_offset, 0)
|
||||
critHitsBlock:SetStatusBarColor(1, 1, 1, .5)
|
||||
|
||||
local blockLine1, blockLine2, blockLine3 = critHitsBlock:GetLines()
|
||||
blockLine1.leftText:SetText(blockName)
|
||||
@@ -743,22 +733,35 @@ function spellsTab.CreateSpellBlock(spellBlockContainer, index) --~breakdownspel
|
||||
---@type breakdownspellblock
|
||||
local spellBlock = CreateFrame("statusbar", "$parentBlock" .. index, spellBlockContainer, "BackdropTemplate")
|
||||
DetailsFramework:Mixin(spellBlock, spellBlockMixin)
|
||||
local t = spellBlock:CreateTexture(nil, "artwork")
|
||||
t:SetColorTexture(1, 1, 1, 1)
|
||||
spellBlock:SetStatusBarTexture(t) --debug
|
||||
--spellBlock:SetStatusBarTexture("Interface\\AddOns\\Details\\images\\bar_background")
|
||||
spellBlock:SetStatusBarColor(1, 1, 1, .84)
|
||||
spellBlock:SetMinMaxValues(0, 100)
|
||||
spellBlock:SetValue(100)
|
||||
|
||||
local statusBarTexture = spellBlock:CreateTexture("$parentTexture", "artwork")
|
||||
statusBarTexture:SetColorTexture(.4, .4, .4, 1)
|
||||
statusBarTexture:SetPoint("topleft", spellBlock, "topleft", 1, -1)
|
||||
statusBarTexture:SetPoint("bottomleft", spellBlock, "bottomleft", 1, 1)
|
||||
spellBlock.statusBarTexture = statusBarTexture
|
||||
|
||||
spellBlock:SetScript("OnEnter", onEnterSpellBlock)
|
||||
spellBlock:SetScript("OnLeave", onLeaveSpellBlock)
|
||||
spellBlock:SetScript("OnValueChanged", function()
|
||||
statusBarTexture:SetWidth(spellBlock:GetValue() / 100 * spellBlock:GetWidth())
|
||||
end)
|
||||
|
||||
spellBlock:SetMinMaxValues(0, 100)
|
||||
spellBlock:SetValue(100)
|
||||
|
||||
--set the backdrop to have a 8x8 edge file
|
||||
spellBlock:SetBackdrop({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1})
|
||||
|
||||
local backgroundTexture = spellBlock:CreateTexture("$parentBackground", "artwork")
|
||||
backgroundTexture:SetColorTexture(1, 1, 1, 1)
|
||||
backgroundTexture:SetAllPoints()
|
||||
spellBlock.backgroundTexture = backgroundTexture
|
||||
|
||||
--create the lines which will host the texts
|
||||
spellBlock.Lines = {}
|
||||
for i = 1, spellBlockContainerSettings.lineAmount do
|
||||
---@type breakdownspellblockline
|
||||
local line = CreateFrame("frame", "$parentLine" .. i, spellBlock)
|
||||
--DetailsFramework:ApplyStandardBackdrop(line)
|
||||
spellBlock.Lines[i] = line
|
||||
|
||||
line.leftText = line:CreateFontString("$parentLeftText", "overlay", "GameFontHighlightSmall")
|
||||
@@ -777,8 +780,8 @@ function spellsTab.CreateSpellBlock(spellBlockContainer, index) --~breakdownspel
|
||||
--is only possible to hover over a spell block when the spellbar is selected
|
||||
spellBlock.overlay = spellBlock:CreateTexture("$parentOverlay", "artwork")
|
||||
spellBlock.overlay:SetTexture("Interface\\AddOns\\Details\\images\\overlay_detalhes")
|
||||
spellBlock.overlay:SetColorTexture(1, 0, 0, 1)
|
||||
spellBlock.overlay:SetAllPoints()
|
||||
spellBlock.overlay:SetPoint("topleft", spellBlock, "topleft", -8, 8)
|
||||
spellBlock.overlay:SetPoint("bottomright", spellBlock, "bottomright", 26, -14)
|
||||
Details.FadeHandler.Fader(spellBlock.overlay, 1) --hide
|
||||
|
||||
--report button, also only shown when the spell block is hovered over
|
||||
@@ -793,7 +796,7 @@ function spellsTab.CreateSpellBlock(spellBlockContainer, index) --~breakdownspel
|
||||
spellBlock.sparkTexture:SetTexture("Interface\\AddOns\\Details\\images\\bar_detalhes2_end")
|
||||
spellBlock.sparkTexture:SetBlendMode("ADD")
|
||||
|
||||
local gradientDown = DetailsFramework:CreateTexture(spellBlock, {gradient = "vertical", fromColor = {0, 0, 0, 0.1}, toColor = "transparent"}, 1, 43, "background", {0, 1, 0, 1})
|
||||
local gradientDown = DetailsFramework:CreateTexture(spellBlock, {gradient = "vertical", fromColor = {0, 0, 0, 0.1}, toColor = "transparent"}, 1, spellBlock:GetHeight(), "background", {0, 1, 0, 1})
|
||||
gradientDown:SetPoint("bottoms")
|
||||
spellBlock.gradientTexture = gradientDown
|
||||
|
||||
@@ -806,22 +809,35 @@ local spellBlockContainerMixin = {
|
||||
---@param self breakdownspellblockcontainer
|
||||
UpdateBlocks = function(self) --~update
|
||||
---@type number, number
|
||||
local width, height = spellBreakdownSettings.blockcontainer_width, spellBreakdownSettings.blockcontainer_height
|
||||
local blockHeight = spellBreakdownSettings.blockspell_height
|
||||
local width, height = Details.breakdown_spell_tab.blockcontainer_width, Details.breakdown_spell_tab.blockcontainer_height
|
||||
local blockHeight = Details.breakdown_spell_tab.blockspell_height
|
||||
local backgroundColor = Details.breakdown_spell_tab.blockspell_backgroundcolor
|
||||
local borderColor = Details.breakdown_spell_tab.blockspell_bordercolor
|
||||
local padding = Details.breakdown_spell_tab.blockspell_padding * -1
|
||||
local color = Details.breakdown_spell_tab.blockspell_color
|
||||
|
||||
self:SetSize(width, height)
|
||||
|
||||
backgroundColor[1], backgroundColor[2], backgroundColor[3], backgroundColor[4] = 0.05, 0.05, 0.05, 0.2
|
||||
color[1], color[2], color[3], color[4] = 0.6, 0.6, 0.6, 0.55
|
||||
|
||||
for i = 1, #self.SpellBlocks do
|
||||
---@type breakdownspellblock
|
||||
local spellBlock = self.SpellBlocks[i]
|
||||
|
||||
spellBlock:SetSize(width - 2, blockHeight)
|
||||
spellBlock:SetPoint("topleft", self, "topleft", 1, (blockHeight * (i - 1) - i) * -1 - (i*2))
|
||||
spellBlock:SetPoint("topleft", self, "topleft", 1, (blockHeight * (i - 1) - i) * -1 - (i*2) + ((i-1) * padding))
|
||||
spellBlock.sparkTexture:SetSize(spellBreakdownSettings.blockspell_spark_width, blockHeight)
|
||||
spellBlock.sparkTexture:SetShown(spellBreakdownSettings.blockspell_spark_show)
|
||||
spellBlock.sparkTexture:SetVertexColor(unpack(spellBreakdownSettings.blockspell_spark_color))
|
||||
spellBlock.reportButton:SetPoint("bottomright", spellBlock.overlay, "bottomright", -2, 2)
|
||||
spellBlock.gradientTexture:SetHeight(blockHeight)
|
||||
|
||||
spellBlock:SetBackdropBorderColor(unpack(borderColor)) --border color
|
||||
spellBlock.backgroundTexture:SetVertexColor(unpack(backgroundColor)) --background color
|
||||
|
||||
spellBlock.statusBarTexture:SetVertexColor(unpack(Details.breakdown_spell_tab.blockspell_color)) --bar color
|
||||
|
||||
--update the lines
|
||||
local previousLine
|
||||
for o = 1, spellBlockContainerSettings.lineAmount do
|
||||
@@ -867,16 +883,59 @@ local spellBlockContainerMixin = {
|
||||
---@param tabFrame tabframe
|
||||
---@return breakdownspellblockcontainer
|
||||
function spellsTab.CreateSpellBlockContainer(tabFrame)
|
||||
---@type width
|
||||
local width = Details.breakdown_spell_tab.breakdown_spell_tab
|
||||
---@type height
|
||||
local height = Details.breakdown_spell_tab.blockcontainer_height
|
||||
|
||||
--create a container for the scrollframe
|
||||
local options = {
|
||||
width = Details.breakdown_spell_tab.blockcontainer_width,
|
||||
height = Details.breakdown_spell_tab.blockcontainer_height,
|
||||
is_locked = Details.breakdown_spell_tab.blockcontainer_islocked,
|
||||
can_move = false,
|
||||
can_move_children = false,
|
||||
use_bottom_resizer = true,
|
||||
use_right_resizer = true,
|
||||
}
|
||||
|
||||
---@type df_framecontainer
|
||||
local container = DF:CreateFrameContainer(tabFrame, options, tabFrame:GetName() .. "SpellScrollContainer")
|
||||
container:SetPoint("topleft", spellsTab.SpellContainerFrame, "topright", 26, 0)
|
||||
container:SetFrameLevel(tabFrame:GetFrameLevel() + 10)
|
||||
spellsTab.BlocksContainerFrame = container
|
||||
|
||||
local settingChangedCallbackFunction = function(frameContainer, settingName, settingValue) --doing here the callback for thge settings changed in the container
|
||||
if (frameContainer:IsShown()) then
|
||||
if (settingName == "height") then
|
||||
---@type height
|
||||
local currentHeight = spellsTab.SpellScrollFrame:GetHeight()
|
||||
Details.breakdown_spell_tab.blockcontainer_height = settingValue
|
||||
spellsTab.SpellScrollFrame:SetNumFramesShown(math.floor(currentHeight / CONST_SPELLSCROLL_LINEHEIGHT) - 1)
|
||||
|
||||
elseif (settingName == "width") then
|
||||
Details.breakdown_spell_tab.blockcontainer_width = settingValue
|
||||
|
||||
elseif (settingName == "is_locked") then
|
||||
Details.breakdown_spell_tab.blockcontainer_islocked = settingValue
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
container:SetSettingChangedCallback(settingChangedCallbackFunction)
|
||||
|
||||
--create the container which will hold the spell blocks
|
||||
---@type breakdownspellblockcontainer
|
||||
local spellBlockContainer = CreateFrame("Frame", "$parentSpellBlockContainer", tabFrame, "BackdropTemplate")
|
||||
spellBlockContainer:EnableMouse(true)
|
||||
local spellBlockContainer = CreateFrame("Frame", "$parentSpellBlockContainer", container, "BackdropTemplate")
|
||||
spellBlockContainer:EnableMouse(false)
|
||||
spellBlockContainer:SetResizable(false)
|
||||
spellBlockContainer:SetMovable(true)
|
||||
spellBlockContainer:SetMovable(false)
|
||||
spellBlockContainer:SetAllPoints()
|
||||
DetailsFramework:Mixin(spellBlockContainer, spellBlockContainerMixin)
|
||||
DetailsFramework:ApplyStandardBackdrop(spellBlockContainer)
|
||||
tabFrame.SpellBlockContainer = spellBlockContainer
|
||||
|
||||
container:RegisterChildForDrag(spellBlockContainer)
|
||||
|
||||
spellBlockContainer.SpellBlocks = {}
|
||||
|
||||
for i = 1, spellBlockContainerSettings.amount do
|
||||
@@ -1023,13 +1082,16 @@ local updateSpellBar = function(spellBar, index, actorName, combatObject, scroll
|
||||
spellBar.spellId = spellId
|
||||
spellBar.spellIconFrame.spellId = spellId
|
||||
|
||||
--statusbar size by percent, statusbar color by school
|
||||
spellBar.statusBar.backgroundTexture:SetAlpha(Details.breakdown_spell_tab.spellbar_background_alpha)
|
||||
|
||||
--statusbar size by percent
|
||||
if (maxValue > 0) then
|
||||
spellBar.statusBar:SetValue(value / maxValue * 100)
|
||||
else
|
||||
spellBar.statusBar:SetValue(0)
|
||||
end
|
||||
|
||||
--statusbar color by school
|
||||
local r, g, b = Details:GetSpellSchoolColor(spellTable.spellschool or 1)
|
||||
spellBar.statusBar:SetStatusBarColor(r, g, b, 1)
|
||||
|
||||
@@ -1188,6 +1250,7 @@ end
|
||||
local refreshFunc = function(scrollFrame, scrollData, offset, totalLines) --~refreshspells ~refresh
|
||||
---@type number
|
||||
local maxValue = scrollData[1] and scrollData[1].total
|
||||
local maxValue = scrollFrame.maxValue
|
||||
---@type number
|
||||
local totalValue = scrollData.totalValue
|
||||
---@type actor
|
||||
@@ -1358,7 +1421,7 @@ function spellsTab.CreateSpellScrollContainer(tabFrame) --~scroll ~create
|
||||
---set the data and refresh the scrollframe
|
||||
---@param self any
|
||||
---@param data breakdownspelldatalist
|
||||
function scrollFrame:RefreshMe(data)
|
||||
function scrollFrame:RefreshMe(data) --~refreshme
|
||||
--get which column is currently selected and the sort order
|
||||
local columnIndex, order, key = scrollFrame.Header:GetSelectedColumn()
|
||||
|
||||
@@ -1400,6 +1463,7 @@ function spellsTab.CreateSpellScrollContainer(tabFrame) --~scroll ~create
|
||||
function(t1, t2)
|
||||
return t1[keyToSort] > t2[keyToSort]
|
||||
end)
|
||||
self.maxValue = data[1] and data[1][keyToSort]
|
||||
else
|
||||
table.sort(data,
|
||||
---@param t1 spelltableadv
|
||||
@@ -1407,6 +1471,7 @@ function spellsTab.CreateSpellScrollContainer(tabFrame) --~scroll ~create
|
||||
function(t1, t2)
|
||||
return t1[keyToSort] < t2[keyToSort]
|
||||
end)
|
||||
self.maxValue = data[#data] and data[#data][keyToSort]
|
||||
end
|
||||
|
||||
self:SetData(data)
|
||||
@@ -1597,9 +1662,9 @@ end
|
||||
---@param self breakdownspellscrollframe
|
||||
---@param index number
|
||||
---@return breakdownspellbar
|
||||
function spellsTab.CreateSpellBar(self, index) --~spellbar ~spellline ~spell ~create ~createline
|
||||
function spellsTab.CreateSpellBar(self, index) --~spellbar ~spellline ~spell ~create ~createline ~createspell
|
||||
---@type breakdownspellbar
|
||||
local spellBar = CreateFrame("button", self:GetName() .. "SpellBarButton" .. index, self, "BackdropTemplate")
|
||||
local spellBar = CreateFrame("button", self:GetName() .. "SpellBarButton" .. index, self)
|
||||
spellBar.index = index
|
||||
|
||||
--size and positioning
|
||||
@@ -1621,24 +1686,23 @@ function spellsTab.CreateSpellBar(self, index) --~spellbar ~spellline ~spell ~cr
|
||||
|
||||
DF:Mixin(spellBar, DF.HeaderFunctions)
|
||||
|
||||
---@type statusbar
|
||||
local statusBar = CreateFrame("StatusBar", "$parentStatusBar", spellBar, "BackdropTemplate")
|
||||
statusBar:EnableMouse(false)
|
||||
statusBar:SetFrameLevel(spellBar:GetFrameLevel()-1)
|
||||
---@type breakdownspellbarstatusbar
|
||||
local statusBar = CreateFrame("StatusBar", "$parentStatusBar", spellBar)
|
||||
statusBar:SetAllPoints()
|
||||
statusBar:SetAlpha(0.5)
|
||||
statusBar:SetMinMaxValues(0, 100)
|
||||
statusBar:SetValue(50)
|
||||
statusBar:EnableMouse(false)
|
||||
statusBar:SetFrameLevel(spellBar:GetFrameLevel() - 1)
|
||||
spellBar.statusBar = statusBar
|
||||
|
||||
---@type texture
|
||||
---@type texture this is the statusbar texture
|
||||
local statusBarTexture = statusBar:CreateTexture("$parentTexture", "artwork")
|
||||
statusBarTexture:SetTexture(SharedMedia:Fetch("statusbar", "Details Hyanda"))
|
||||
statusBar:SetStatusBarTexture(statusBarTexture)
|
||||
statusBar:SetStatusBarColor(1, 1, 1, 1)
|
||||
|
||||
---create the overlay texture to use when the spellbar is selected
|
||||
---@type texture
|
||||
---@type texture overlay texture to use when the spellbar is selected
|
||||
local statusBarOverlayTexture = statusBar:CreateTexture("$parentTextureOverlay", "overlay", nil, 7)
|
||||
statusBarOverlayTexture:SetTexture([[Interface/AddOns/Details/images/overlay_indicator_1]])
|
||||
statusBarOverlayTexture:SetVertexColor(1, 1, 1, 0.2)
|
||||
@@ -1647,16 +1711,17 @@ function spellsTab.CreateSpellBar(self, index) --~spellbar ~spellline ~spell ~cr
|
||||
spellBar.overlayTexture = statusBarOverlayTexture
|
||||
statusBar.overlayTexture = statusBarOverlayTexture
|
||||
|
||||
---@type texture
|
||||
---@type texture shown when the mouse hoverover this spellbar
|
||||
local hightlightTexture = statusBar:CreateTexture("$parentTextureHighlight", "highlight")
|
||||
hightlightTexture:SetColorTexture(1, 1, 1, 0.2)
|
||||
hightlightTexture:SetAllPoints()
|
||||
statusBar.highlightTexture = hightlightTexture
|
||||
|
||||
---@type texture
|
||||
local backgroundTexture = statusBar:CreateTexture("$parentTextureBackground", "background")
|
||||
---@type texture background texture
|
||||
local backgroundTexture = statusBar:CreateTexture("$parentTextureBackground", "border")
|
||||
backgroundTexture:SetAllPoints()
|
||||
backgroundTexture:SetColorTexture(.1, .1, .1, 0.38)
|
||||
backgroundTexture:SetColorTexture(.05, .05, .05)
|
||||
backgroundTexture:SetAlpha(1)
|
||||
statusBar.backgroundTexture = backgroundTexture
|
||||
|
||||
--button to expand the bar when there's spells merged
|
||||
|
||||
+10
-2
@@ -1410,17 +1410,25 @@ local default_global_data = {
|
||||
breakdown_spell_tab = {
|
||||
blockcontainer_width = 430,
|
||||
blockcontainer_height = 270,
|
||||
blockcontainer_islocked = true,
|
||||
|
||||
blockspell_height = 50,
|
||||
blockspellline_height = 13,
|
||||
blockspell_padding = 5,
|
||||
blockspell_color = {0, 0, 0, 0.7},
|
||||
blockspell_bordercolor = {0, 0, 0, 0.7},
|
||||
blockspell_backgroundcolor = {0.1, 0.1, 0.1, 0.4},
|
||||
blockspell_spark_offset = -2,
|
||||
blockspell_spark_width = 2,
|
||||
blockspell_spark_show = true,
|
||||
blockspell_spark_color = {1, 1, 1, 0.7},
|
||||
|
||||
blockspellline_height = 13,
|
||||
|
||||
spellcontainer_width = 535,
|
||||
spellcontainer_height = 311,
|
||||
spellcontainer_islocked = true,
|
||||
--spellline_height = 20,
|
||||
|
||||
spellbar_background_alpha = 0.92,
|
||||
|
||||
spellcontainer_headers = {}, --store information about active headers and their sizes
|
||||
spellcontainer_header_height = 20,
|
||||
|
||||
Reference in New Issue
Block a user