- New Feature: import and export profiles.
- Major improvements on bar text scripts. - Improved import and export custom skins. - Fixed shaman's sundering spell not showing in crowd control. - Fixed sharing guild statistics. - More spells added to spell consolidation: Whirlwind, Fracture, Mutilate. - Monk Mistweaver Blackout Kick now has a indicator when it comes from passive 'Teachings of the Monastery'. - Added slash command '/details debugwindow' for cases when the window isn't shown or are anchored in the wrong place. - Exposed spell ignore table, you can now add spells to be ignored using Details.SpellsToIgnore [spellID] = true.
This commit is contained in:
@@ -277,8 +277,10 @@ function DF:CreateCoolTip()
|
||||
tinsert (UISpecialFrames, "GameCooltipFrame1")
|
||||
DF:CreateFlashAnimation (frame1)
|
||||
|
||||
--removing the border makes the cooltip much more clear
|
||||
if (DF.CreateBorder) then
|
||||
DF:CreateBorder (frame1, .3, .1, .03)
|
||||
frame1:SetBorderAlpha (0, 0, 0)
|
||||
end
|
||||
else
|
||||
frame1 = GameCooltipFrame1
|
||||
@@ -303,8 +305,10 @@ function DF:CreateCoolTip()
|
||||
DF:CreateFlashAnimation (frame2)
|
||||
frame2:SetClampedToScreen (true)
|
||||
|
||||
--removing the border makes the cooltip much more clear
|
||||
if (DF.CreateBorder) then
|
||||
DF:CreateBorder (frame2, .3, .1, .03)
|
||||
frame2:SetBorderAlpha (0, 0, 0)
|
||||
end
|
||||
else
|
||||
frame2 = GameCooltipFrame2
|
||||
@@ -2711,6 +2715,14 @@ function DF:CreateCoolTip()
|
||||
f:SetBackdropBorderColor (r, g, b, a)
|
||||
end
|
||||
|
||||
--[=[
|
||||
f:SetBackdrop (nil)
|
||||
|
||||
f.framebackgroundCenter:SetTexture (nil)
|
||||
f.framebackgroundLeft:SetTexture (nil)
|
||||
f.framebackgroundRight:SetTexture (nil)
|
||||
f.frameWallpaper:SetTexture (nil)
|
||||
--]=]
|
||||
end
|
||||
|
||||
function CoolTip:SetBannerImage (index, texturepath, width, height, anchor, texcoord, overlay)
|
||||
|
||||
+7
-1
@@ -1,5 +1,5 @@
|
||||
|
||||
local dversion = 117
|
||||
local dversion = 121
|
||||
local major, minor = "DetailsFramework-1.0", dversion
|
||||
local DF, oldminor = LibStub:NewLibrary (major, minor)
|
||||
|
||||
@@ -20,6 +20,11 @@ local string_match = string.match
|
||||
SMALL_NUMBER = 0.000001
|
||||
ALPHA_BLEND_AMOUNT = 0.8400251
|
||||
|
||||
DF.AuthorInfo = {
|
||||
Name = "Tercioo",
|
||||
Discord = "https://discord.gg/AGSzAZX",
|
||||
}
|
||||
|
||||
--> will always give a very random name for our widgets
|
||||
local init_counter = math.random (1, 1000000)
|
||||
|
||||
@@ -2688,5 +2693,6 @@ function DF:GetCLEncounterIDs()
|
||||
return DF.CLEncounterID
|
||||
end
|
||||
|
||||
|
||||
--doo elsee
|
||||
--was doing double loops due to not enought height
|
||||
|
||||
+65
-9
@@ -3808,13 +3808,19 @@ function DF:CreateTabContainer (parent, title, frame_name, frame_list, options_t
|
||||
DF.TabContainerFunctions.CreateUnderlineGlow (tabButton)
|
||||
|
||||
local right_click_to_back
|
||||
if (i == 1) then
|
||||
if (i == 1 or options_table.rightbutton_always_close) then
|
||||
right_click_to_back = DF:CreateLabel (f, "right click to close", 10, "gray")
|
||||
right_click_to_back:SetPoint ("bottomright", f, "bottomright", -1, options_table.right_click_y or 0)
|
||||
if (options_table.close_text_alpha) then
|
||||
right_click_to_back:SetAlpha (options_table.close_text_alpha)
|
||||
end
|
||||
f.IsFrontPage = true
|
||||
else
|
||||
right_click_to_back = DF:CreateLabel (f, "right click to go back to main menu", 10, "gray")
|
||||
right_click_to_back:SetPoint ("bottomright", f, "bottomright", -1, options_table.right_click_y or 0)
|
||||
if (options_table.close_text_alpha) then
|
||||
right_click_to_back:SetAlpha (options_table.close_text_alpha)
|
||||
end
|
||||
end
|
||||
|
||||
if (options_table.hide_click_label) then
|
||||
@@ -4948,9 +4954,13 @@ DF.IconRowFunctions = {
|
||||
local newIconFrame = CreateFrame ("frame", "$parentIcon" .. self.NextIcon, self)
|
||||
newIconFrame:SetSize (self.options.icon_width, self.options.icon_height)
|
||||
|
||||
newIconFrame.Texture = newIconFrame:CreateTexture (nil, "background")
|
||||
newIconFrame.Texture = newIconFrame:CreateTexture (nil, "artwork")
|
||||
newIconFrame.Texture:SetAllPoints()
|
||||
|
||||
newIconFrame.Border = newIconFrame:CreateTexture (nil, "background")
|
||||
newIconFrame.Border:SetAllPoints()
|
||||
newIconFrame.Border:SetColorTexture (0, 0, 0)
|
||||
|
||||
newIconFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1})
|
||||
newIconFrame:SetBackdropBorderColor (0, 0, 0, 0)
|
||||
newIconFrame:EnableMouse (false)
|
||||
@@ -6325,11 +6335,11 @@ DF.DataScrollFunctions = {
|
||||
local parent = line:GetParent()
|
||||
|
||||
if (parent.options.show_title) then
|
||||
line.Title.text = data [1] or ""
|
||||
line.Date.text = data [2] or ""
|
||||
line.Text.text = data [3] or ""
|
||||
line.Title.text = data [2] or ""
|
||||
line.Date.text = data [3] or ""
|
||||
line.Text.text = data [4] or ""
|
||||
else
|
||||
line.Text.text = data [1] or ""
|
||||
line.Text.text = data [2] or ""
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -6415,6 +6425,24 @@ DF.NewsFrameFunctions = {
|
||||
|
||||
}
|
||||
|
||||
--[=[
|
||||
Get the amount of news that the player didn't see yet
|
||||
@newsTable = an indexed table of tables
|
||||
@lastNewsTime = last time the player opened the news window
|
||||
--]=]
|
||||
function DF:GetNumNews (newsTable, lastNewsTime)
|
||||
local now = time()
|
||||
local nonReadNews = 0
|
||||
|
||||
for _, news in ipairs (newsTable) do
|
||||
if (news[1] > lastNewsTime) then
|
||||
nonReadNews = nonReadNews + 1
|
||||
end
|
||||
end
|
||||
|
||||
return nonReadNews
|
||||
end
|
||||
|
||||
--[=[
|
||||
Creates a panel with a scroll to show texts organized in separated lines
|
||||
@parent = the parent of the frame
|
||||
@@ -6424,7 +6452,7 @@ DF.NewsFrameFunctions = {
|
||||
@db = (optional) an empty table from the addon database to store the position of the frame between game sessions
|
||||
--]=]
|
||||
function DF:CreateNewsFrame (parent, name, options, newsTable, db)
|
||||
|
||||
|
||||
local f = DF:CreateSimplePanel (parent, 400, 700, options and options.title or default_newsframe_options.title, name, {UseScaleBar = db and true}, db)
|
||||
f:SetFrameStrata ("MEDIUM")
|
||||
DF:ApplyStandardBackdrop (f)
|
||||
@@ -6433,12 +6461,12 @@ function DF:CreateNewsFrame (parent, name, options, newsTable, db)
|
||||
DF:Mixin (f, DF.LayoutFrame)
|
||||
|
||||
f:BuildOptionsTable (default_newsframe_options, options)
|
||||
|
||||
|
||||
f:SetSize (f.options.width, f.options.height)
|
||||
f:SetBackdrop (f.options.backdrop)
|
||||
f:SetBackdropColor (unpack (f.options.backdrop_color))
|
||||
f:SetBackdropBorderColor (unpack (f.options.backdrop_border_color))
|
||||
|
||||
|
||||
local scrollOptions = {
|
||||
data = newsTable,
|
||||
width = f.options.width - 32, --frame distance from walls and scroll bar space
|
||||
@@ -6460,7 +6488,35 @@ end
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> statusbar info
|
||||
|
||||
function DF:BuildStatusbarAuthorInfo (f)
|
||||
|
||||
local authorName = DF:CreateLabel (f, "An addon by |cFFFFFFFFTercioo|r")
|
||||
authorName.textcolor = "silver"
|
||||
local discordLabel = DF:CreateLabel (f, "Discord: ")
|
||||
discordLabel.textcolor = "silver"
|
||||
|
||||
local options_dropdown_template = DF:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")
|
||||
local discordTextEntry = DF:CreateTextEntry (f, function()end, 200, 18, "DiscordTextBox", _, _, options_dropdown_template)
|
||||
discordTextEntry:SetText ("https://discord.gg/AGSzAZX")
|
||||
discordTextEntry:SetFrameLevel (5000)
|
||||
|
||||
authorName:SetPoint ("left", f, "left", 2, 0)
|
||||
discordLabel:SetPoint ("left", authorName, "right", 20, 0)
|
||||
discordTextEntry:SetPoint ("left", discordLabel, "right", 2, 0)
|
||||
|
||||
--format
|
||||
authorName:SetAlpha (.4)
|
||||
discordLabel:SetAlpha (.4)
|
||||
discordTextEntry:SetAlpha (.4)
|
||||
discordTextEntry:SetBackdropBorderColor (1, 1, 1, 0)
|
||||
|
||||
discordTextEntry:SetHook ("OnEditFocusGained", function()
|
||||
discordTextEntry:HighlightText()
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
+8
-11
@@ -127,18 +127,14 @@ local ImageMetaFunctions = _G [DF.GlobalWidgetControlNames ["image"]]
|
||||
end
|
||||
--> color
|
||||
local smember_color = function (_object, _value)
|
||||
if (type (_value) == "table") then
|
||||
local r, g, b, a = DF:ParseColors (_value)
|
||||
_object.image:SetTexture (r,g,b, a or 1)
|
||||
else
|
||||
if (DF:IsHtmlColor (_value)) then
|
||||
local r, g, b, a = DF:ParseColors (_value)
|
||||
_object.image:SetTexture (r, g, b, a or 1)
|
||||
else
|
||||
_object.image:SetTexture (_value)
|
||||
end
|
||||
end
|
||||
local r, g, b, a = DF:ParseColors (_value)
|
||||
_object.image:SetColorTexture (r, g, b, a or 1)
|
||||
end
|
||||
--> vertex color
|
||||
local smember_vertexcolor = function (_object, _value)
|
||||
local r, g, b, a = DF:ParseColors (_value)
|
||||
_object.image:SetVertexColor (r, g, b, a or 1)
|
||||
end
|
||||
--> desaturated
|
||||
local smember_desaturated = function (_object, _value)
|
||||
if (_value) then
|
||||
@@ -165,6 +161,7 @@ local ImageMetaFunctions = _G [DF.GlobalWidgetControlNames ["image"]]
|
||||
ImageMetaFunctions.SetMembers ["texture"] = smember_texture
|
||||
ImageMetaFunctions.SetMembers ["texcoord"] = smember_texcoord
|
||||
ImageMetaFunctions.SetMembers ["color"] = smember_color
|
||||
ImageMetaFunctions.SetMembers ["vertexcolor"] = smember_vertexcolor
|
||||
ImageMetaFunctions.SetMembers ["blackwhite"] = smember_desaturated
|
||||
|
||||
ImageMetaFunctions.__newindex = function (_table, _key, _value)
|
||||
|
||||
@@ -175,6 +175,7 @@
|
||||
lower_instance:InstanceAlert ("Update Available!", {[[Interface\GossipFrame\AvailableQuestIcon]], 16, 16, false}, _detalhes.update_warning_timeout, {_detalhes.OpenUpdateWindow})
|
||||
end
|
||||
end
|
||||
_detalhes:Msg (Loc ["STRING_VERSION_AVAILABLE"])
|
||||
_detalhes.lastUpdateWarning = time()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -171,6 +171,7 @@
|
||||
[233499] = 233490, --warlock Unstable Affliction
|
||||
|
||||
[261947] = 261977, --monk fist of the white tiger talent
|
||||
|
||||
}
|
||||
|
||||
local bitfield_debuffs_ids = _detalhes.BitfieldSwapDebuffsIDs
|
||||
@@ -184,6 +185,7 @@
|
||||
end
|
||||
end
|
||||
|
||||
--expose the override spells table to external scripts
|
||||
_detalhes.OverridedSpellIds = override_spellId
|
||||
|
||||
--> ignore soul link (damage from the warlock on his pet - current to demonology only)
|
||||
@@ -215,6 +217,9 @@
|
||||
[SPELLID_WARLOCK_SOULLINK] = true,
|
||||
}
|
||||
|
||||
--> expose the ignore spells table to external scripts
|
||||
_detalhes.SpellsToIgnore = damage_spells_to_ignore
|
||||
|
||||
--> is parser allowed to replace spellIDs?
|
||||
local is_using_spellId_override = false
|
||||
|
||||
|
||||
+13
-2
@@ -424,9 +424,7 @@
|
||||
f:SetBackdropColor (0, 0, 0, 0.3)
|
||||
|
||||
f:Hide()
|
||||
|
||||
|
||||
|
||||
--> members
|
||||
f.MenuX = CONST_PLUGINWINDOW_MENU_X
|
||||
f.MenuY = CONST_PLUGINWINDOW_MENU_Y
|
||||
@@ -452,6 +450,19 @@
|
||||
--> menu background
|
||||
local menuBackground = CreateFrame ("frame", "$parentMenuFrame", f)
|
||||
_detalhes:FormatBackground (menuBackground)
|
||||
|
||||
--> statusbar
|
||||
local statusBar = CreateFrame ("frame", nil, menuBackground)
|
||||
statusBar:SetPoint ("topleft", menuBackground, "bottomleft", 0, 1)
|
||||
statusBar:SetPoint ("topright", f, "bottomright", 0, 1)
|
||||
statusBar:SetHeight (20)
|
||||
_detalhes.gump:ApplyStandardBackdrop (statusBar)
|
||||
statusBar:SetAlpha (1)
|
||||
_detalhes.gump:BuildStatusbarAuthorInfo (statusBar)
|
||||
--
|
||||
local right_click_to_back = _detalhes.gump:CreateLabel (statusBar, "right click to close", 10, "gray")
|
||||
right_click_to_back:SetPoint ("bottomright", statusBar, "bottomright", -1, 5)
|
||||
right_click_to_back:SetAlpha (.4)
|
||||
|
||||
--> point
|
||||
menuBackground:SetPoint ("topright", f, "topleft", -2, 0)
|
||||
|
||||
@@ -162,6 +162,35 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
elseif (command == Loc ["STRING_SLASH_CHANGES"] or command == Loc ["STRING_SLASH_CHANGES_ALIAS1"] or command == Loc ["STRING_SLASH_CHANGES_ALIAS2"] or command == "news" or command == "updates") then
|
||||
_detalhes:OpenNewsWindow()
|
||||
|
||||
elseif (command == "debugwindow") then
|
||||
|
||||
local window1 = Details:GetWindow(1)
|
||||
if (window1) then
|
||||
local state = {
|
||||
ParentName = window1.baseframe:GetParent():GetName(),
|
||||
Alpha = window1.baseframe:GetAlpha(),
|
||||
IsShown = window1.baseframe:IsShown(),
|
||||
IsOpen = window1:IsEnabled() and true or false,
|
||||
NumPoints = window1.baseframe:GetNumPoints(),
|
||||
}
|
||||
|
||||
for i = 1, window1.baseframe:GetNumPoints() do
|
||||
state ["Point" .. i] = {window1.baseframe:GetPoint (i)}
|
||||
end
|
||||
|
||||
local parent = window1.baseframe:GetParent()
|
||||
|
||||
state ["ParentInfo"] = {
|
||||
Alpha = parent:GetAlpha(),
|
||||
IsShown = parent:IsShown(),
|
||||
NumPoints = parent:GetNumPoints(),
|
||||
}
|
||||
|
||||
Details:Dump (state)
|
||||
else
|
||||
Details:Msg ("Window 1 not found.")
|
||||
end
|
||||
|
||||
elseif (command == "spells") then
|
||||
Details.OpenForge()
|
||||
DetailsForgePanel.SelectModule (_, _, 2)
|
||||
|
||||
@@ -94,6 +94,8 @@ do
|
||||
[49184] = {name = GetSpellInfo (49184) .. " (Main Target)"}, --DK Howling Blast
|
||||
[237680] = {name = GetSpellInfo (237680) .. " (AoE)"}, --DK Howling Blast
|
||||
|
||||
[228649] = {name = GetSpellInfo (228649) .. " (Passive)"}, --Monk Mistweaver Blackout kick - Passive Teachings of the Monastery
|
||||
|
||||
--> bfa trinkets
|
||||
[278155] = {name = GetSpellInfo (278155) .. " (Trinket)"}, --[Twitching Tentacle of Xalzaix]
|
||||
[279664] = {name = GetSpellInfo (279664) .. " (Trinket)"}, --[Vanquished Tendril of G'huun]
|
||||
|
||||
Reference in New Issue
Block a user