diff --git a/Libs/DF/DFFrames.xml b/Libs/DF/DFFrames.xml
deleted file mode 100644
index 78ed57bd..00000000
--- a/Libs/DF/DFFrames.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Libs/DF/DFFramesInclude.lua b/Libs/DF/DFFramesInclude.lua
deleted file mode 100644
index 53113917..00000000
--- a/Libs/DF/DFFramesInclude.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-DFNamePlateBorderTemplateMixin = {};
-
-local PixelUtil = PixelUtil or DFPixelUtil
-
-function DFNamePlateBorderTemplateMixin:SetVertexColor(r, g, b, a)
- for i, texture in ipairs(self.Textures) do
- texture:SetVertexColor(r, g, b, a);
- end
-end
-
-function DFNamePlateBorderTemplateMixin:SetBorderSizes(borderSize, borderSizeMinPixels, upwardExtendHeightPixels, upwardExtendHeightMinPixels)
- self.borderSize = borderSize;
- self.borderSizeMinPixels = borderSizeMinPixels;
- self.upwardExtendHeightPixels = upwardExtendHeightPixels;
- self.upwardExtendHeightMinPixels = upwardExtendHeightMinPixels;
-end
-
-function DFNamePlateBorderTemplateMixin:UpdateSizes()
- local borderSize = self.borderSize or 1;
- local minPixels = self.borderSizeMinPixels or 2;
-
- local upwardExtendHeightPixels = self.upwardExtendHeightPixels or borderSize;
- local upwardExtendHeightMinPixels = self.upwardExtendHeightMinPixels or minPixels;
-
- PixelUtil.SetWidth(self.Left, borderSize, minPixels);
- PixelUtil.SetPoint(self.Left, "TOPRIGHT", self, "TOPLEFT", 0, upwardExtendHeightPixels, 0, upwardExtendHeightMinPixels);
- PixelUtil.SetPoint(self.Left, "BOTTOMRIGHT", self, "BOTTOMLEFT", 0, -borderSize, 0, minPixels);
-
- PixelUtil.SetWidth(self.Right, borderSize, minPixels);
- PixelUtil.SetPoint(self.Right, "TOPLEFT", self, "TOPRIGHT", 0, upwardExtendHeightPixels, 0, upwardExtendHeightMinPixels);
- PixelUtil.SetPoint(self.Right, "BOTTOMLEFT", self, "BOTTOMRIGHT", 0, -borderSize, 0, minPixels);
-
- PixelUtil.SetHeight(self.Bottom, borderSize, minPixels);
- PixelUtil.SetPoint(self.Bottom, "TOPLEFT", self, "BOTTOMLEFT", 0, 0);
- PixelUtil.SetPoint(self.Bottom, "TOPRIGHT", self, "BOTTOMRIGHT", 0, 0);
-
- if self.Top then
- PixelUtil.SetHeight(self.Top, borderSize, minPixels);
- PixelUtil.SetPoint(self.Top, "BOTTOMLEFT", self, "TOPLEFT", 0, 0);
- PixelUtil.SetPoint(self.Top, "BOTTOMRIGHT", self, "TOPRIGHT", 0, 0);
- end
-end
\ No newline at end of file
diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua
index 06eea3e2..8b3ccad4 100644
--- a/Libs/DF/fw.lua
+++ b/Libs/DF/fw.lua
@@ -1,6 +1,6 @@
-local dversion = 250
+local dversion = 256
local major, minor = "DetailsFramework-1.0", dversion
local DF, oldminor = LibStub:NewLibrary (major, minor)
@@ -3090,6 +3090,95 @@ function DF:CreateBorder (parent, alpha1, alpha2, alpha3)
end
+--DFNamePlateBorder as copy from "NameplateFullBorderTemplate" -> DF:CreateFullBorder (name, parent)
+local DFNamePlateBorderTemplateMixin = {};
+
+function DFNamePlateBorderTemplateMixin:SetVertexColor(r, g, b, a)
+ for i, texture in ipairs(self.Textures) do
+ texture:SetVertexColor(r, g, b, a);
+ end
+end
+
+function DFNamePlateBorderTemplateMixin:SetBorderSizes(borderSize, borderSizeMinPixels, upwardExtendHeightPixels, upwardExtendHeightMinPixels)
+ self.borderSize = borderSize;
+ self.borderSizeMinPixels = borderSizeMinPixels;
+ self.upwardExtendHeightPixels = upwardExtendHeightPixels;
+ self.upwardExtendHeightMinPixels = upwardExtendHeightMinPixels;
+end
+
+function DFNamePlateBorderTemplateMixin:UpdateSizes()
+ local borderSize = self.borderSize or 1;
+ local minPixels = self.borderSizeMinPixels or 2;
+
+ local upwardExtendHeightPixels = self.upwardExtendHeightPixels or borderSize;
+ local upwardExtendHeightMinPixels = self.upwardExtendHeightMinPixels or minPixels;
+
+ PixelUtil.SetWidth(self.Left, borderSize, minPixels);
+ PixelUtil.SetPoint(self.Left, "TOPRIGHT", self, "TOPLEFT", 0, upwardExtendHeightPixels, 0, upwardExtendHeightMinPixels);
+ PixelUtil.SetPoint(self.Left, "BOTTOMRIGHT", self, "BOTTOMLEFT", 0, -borderSize, 0, minPixels);
+
+ PixelUtil.SetWidth(self.Right, borderSize, minPixels);
+ PixelUtil.SetPoint(self.Right, "TOPLEFT", self, "TOPRIGHT", 0, upwardExtendHeightPixels, 0, upwardExtendHeightMinPixels);
+ PixelUtil.SetPoint(self.Right, "BOTTOMLEFT", self, "BOTTOMRIGHT", 0, -borderSize, 0, minPixels);
+
+ PixelUtil.SetHeight(self.Bottom, borderSize, minPixels);
+ PixelUtil.SetPoint(self.Bottom, "TOPLEFT", self, "BOTTOMLEFT", 0, 0);
+ PixelUtil.SetPoint(self.Bottom, "TOPRIGHT", self, "BOTTOMRIGHT", 0, 0);
+
+ if self.Top then
+ PixelUtil.SetHeight(self.Top, borderSize, minPixels);
+ PixelUtil.SetPoint(self.Top, "BOTTOMLEFT", self, "TOPLEFT", 0, 0);
+ PixelUtil.SetPoint(self.Top, "BOTTOMRIGHT", self, "TOPRIGHT", 0, 0);
+ end
+end
+
+function DF:CreateFullBorder (name, parent)
+ local border = CreateFrame("Frame", name, parent)
+ border:SetAllPoints()
+ border:SetIgnoreParentScale(true)
+ border:SetFrameLevel(border:GetParent():GetFrameLevel())
+ border.Textures = {}
+ Mixin(border, DFNamePlateBorderTemplateMixin)
+
+ local left = border:CreateTexture("$parentLeft", "BACKGROUND", nil, -8)
+ --left:SetDrawLayer("BACKGROUND", -8)
+ left:SetColorTexture(1, 1, 1, 1)
+ left:SetWidth(1.0)
+ left:SetPoint("TOPRIGHT", border, "TOPLEFT", 0, 1.0)
+ left:SetPoint("BOTTOMRIGHT", border, "BOTTOMLEFT", 0, -1.0)
+ border.Left = left
+ tinsert(border.Textures, left)
+
+ local right = border:CreateTexture("$parentRight", "BACKGROUND", nil, -8)
+ --right:SetDrawLayer("BACKGROUND", -8)
+ right:SetColorTexture(1, 1, 1, 1)
+ right:SetWidth(1.0)
+ right:SetPoint("TOPLEFT", border, "TOPRIGHT", 0, 1.0)
+ right:SetPoint("BOTTOMLEFT", border, "BOTTOMRIGHT", 0, -1.0)
+ border.Right = right
+ tinsert(border.Textures, right)
+
+ local bottom = border:CreateTexture("$parentBottom", "BACKGROUND", nil, -8)
+ --bottom:SetDrawLayer("BACKGROUND", -8)
+ bottom:SetColorTexture(1, 1, 1, 1)
+ bottom:SetHeight(1.0)
+ bottom:SetPoint("TOPLEFT", border, "BOTTOMLEFT", 0, 0)
+ bottom:SetPoint("TOPRIGHT", border, "BOTTOMRIGHT", 0, 0)
+ border.Bottom = bottom
+ tinsert(border.Textures, bottom)
+
+ local top = border:CreateTexture("$parentTop", "BACKGROUND", nil, -8)
+ --top:SetDrawLayer("BACKGROUND", -8)
+ top:SetColorTexture(1, 1, 1, 1)
+ top:SetHeight(1.0)
+ top:SetPoint("BOTTOMLEFT", border, "TOPLEFT", 0, 0)
+ top:SetPoint("BOTTOMRIGHT", border, "TOPRIGHT", 0, 0)
+ border.Top = top
+ tinsert(border.Textures, top)
+
+ return border
+end
+
function DF:CreateBorderSolid (parent, size)
end
@@ -3702,7 +3791,7 @@ DF.CLEncounterID = {
}
function DF:GetPlayerRole()
- local assignedRole = UnitGroupRolesAssigned ("player")
+ local assignedRole = DF.UnitGroupRolesAssigned ("player")
if (assignedRole == "NONE") then
local spec = DF.GetSpecialization()
return spec and DF.GetSpecializationRole (spec) or "NONE"
diff --git a/Libs/DF/load.xml b/Libs/DF/load.xml
index 07f4a36c..9f3ff11a 100644
--- a/Libs/DF/load.xml
+++ b/Libs/DF/load.xml
@@ -1,12 +1,11 @@
-
-
+
diff --git a/Libs/DF/schedules.lua b/Libs/DF/schedules.lua
new file mode 100644
index 00000000..a6522354
--- /dev/null
+++ b/Libs/DF/schedules.lua
@@ -0,0 +1,67 @@
+
+
+
+local DF = DetailsFramework
+local C_Timer = _G.C_Timer
+local unpack = _G.unpack
+
+--make a namespace for schedules
+DF.Schedules = {}
+
+--run a scheduled function with its payload
+local triggerScheduledTick = function(tickerObject)
+ local payload = tickerObject.payload
+ local callback = tickerObject.callback
+
+ local result, errortext = pcall(callback, unpack(payload))
+ if (not result) then
+ DF:Msg("error on scheduler: ", tickerObject.path, tickerObject.name, errortext)
+ end
+ return result
+end
+
+--schedule to repeat a task with an interval of @time
+function DF.Schedules.NewTicker(time, callback, ...)
+ local payload = {...}
+ local newTicker = C_Timer.NewTicker(time, triggerScheduledTick)
+ newTicker.payload = payload
+ newTicker.callback = callback
+ newTicker.expireAt = GetTime() + time
+
+ --debug
+ newTicker.path = debugstack()
+ --
+ return newTicker
+end
+
+--schedule a task with an interval of @time
+function DF.Schedules.NewTimer(time, callback, ...)
+ local payload = {...}
+ local newTimer = C_Timer.NewTimer(time, triggerScheduledTick)
+ newTimer.payload = payload
+ newTimer.callback = callback
+ newTimer.expireAt = GetTime() + time
+
+ --debug
+ newTimer.path = debugstack()
+ --
+
+ return newTimer
+end
+
+--cancel an ongoing ticker
+function DF.Schedules.Cancel(tickerObject)
+ --ignore if there's no ticker object
+ if (tickerObject) then
+ return tickerObject:Cancel()
+ end
+end
+
+--schedule a task with an interval of @time without payload
+function DF.Schedules.After(time, callback)
+ C_Timer.After(time, callback)
+end
+
+function DF.Schedules.SetName(object, name)
+ object.name = name
+end
\ No newline at end of file
diff --git a/Libs/DF/spells.lua b/Libs/DF/spells.lua
index 622995f4..2c622cf5 100644
--- a/Libs/DF/spells.lua
+++ b/Libs/DF/spells.lua
@@ -667,19 +667,11 @@ if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE) then
DF.CooldownsBySpec[267][30414] = 5 --shadowfury Rank 3
--DRUID - 102
- DF.CooldownsBySpec[102][1735] = 5 --demoralizing roar Rank 2
- DF.CooldownsBySpec[102][9490] = 5 --demoralizing roar Rank 3
- DF.CooldownsBySpec[102][9747] = 5 --demoralizing roar Rank 4
- DF.CooldownsBySpec[102][9898] = 5 --demoralizing roar Rank 5
- DF.CooldownsBySpec[102][26998] = 5 --demoralizing roar Rank 6
+ DF.CooldownsBySpec[102][99] = nil --demoralizing roar disabled, no CC in tbc
--DRUID - 103
--DRUID - 104
- DF.CooldownsBySpec[104][1735] = 5 --demoralizing roar Rank 2
- DF.CooldownsBySpec[104][9490] = 5 --demoralizing roar Rank 3
- DF.CooldownsBySpec[104][9747] = 5 --demoralizing roar Rank 4
- DF.CooldownsBySpec[104][9898] = 5 --demoralizing roar Rank 5
- DF.CooldownsBySpec[104][26998] = 5 --demoralizing roar Rank 6
+ DF.CooldownsBySpec[104][99] = nil --demoralizing roar disabled, no CC in tbc
--DRUID - 105
DF.CooldownsBySpec[105][8918] = 4 --tranquility Rank 2
@@ -1018,6 +1010,8 @@ DF.CrowdControlSpells = {
-- additionals for classic
if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE) then
+ DF.CrowdControlSpells[99] = nil --demoralizing roar disabled, no CC in tbc
+
--auto-generated
DF.CrowdControlSpells[18657] = "DRUID" --hibernate Rank 2
DF.CrowdControlSpells[18658] = "DRUID" --hibernate Rank 3
@@ -1035,11 +1029,6 @@ if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE) then
DF.CrowdControlSpells[19974] = "DRUID" --entangling roots Rank 2
DF.CrowdControlSpells[26989] = "DRUID" --entangling roots Rank 7
DF.CrowdControlSpells[27010] = "DRUID" --entangling roots Rank 7
- DF.CrowdControlSpells[1735] = "DRUID" --demoralizing roar Rank 2
- DF.CrowdControlSpells[9490] = "DRUID" --demoralizing roar Rank 3
- DF.CrowdControlSpells[9747] = "DRUID" --demoralizing roar Rank 4
- DF.CrowdControlSpells[9898] = "DRUID" --demoralizing roar Rank 5
- DF.CrowdControlSpells[26998] = "DRUID" --demoralizing roar Rank 6
DF.CrowdControlSpells[14310] = "HUNTER" --freezing trap Rank 2
DF.CrowdControlSpells[14311] = "HUNTER" --freezing trap Rank 3
diff --git a/frames/window_main.lua b/frames/window_main.lua
index 9ae5026b..988f98fb 100644
--- a/frames/window_main.lua
+++ b/frames/window_main.lua
@@ -4015,7 +4015,8 @@ function gump:CreateNewLine (instancia, index)
--border
local lineBorder
if (DetailsFramework.IsTBCWow()) then
- lineBorder = CreateFrame("frame", nil, new_row, "DFNamePlateFullBorderTemplate, BackdropTemplate")
+ lineBorder = DetailsFramework:CreateFullBorder(nil, new_row)
+ --lineBorder = CreateFrame("frame", nil, new_row, "DFNamePlateFullBorderTemplate, BackdropTemplate")
else
lineBorder = CreateFrame("frame", nil, new_row, "NamePlateFullBorderTemplate, BackdropTemplate")
end
diff --git a/frames/window_plater.lua b/frames/window_plater.lua
index a6f92059..4870bdb4 100644
--- a/frames/window_plater.lua
+++ b/frames/window_plater.lua
@@ -441,7 +441,7 @@ function Details.OpenPlaterIntegrationWindow()
end
end
- local PlaterDisabled1 = DF:CreateLabel (f, "Plater isn't installed! you may download it from the Twitch app.", 16, "red")
+ local PlaterDisabled1 = DF:CreateLabel (f, "Plater isn't installed! you may download it from the Curseforge app.", 16, "red")
PlaterDisabled1:SetPoint (10, -330)
end
diff --git a/functions/deathmenu.lua b/functions/deathmenu.lua
index 78968cb5..45e2787b 100644
--- a/functions/deathmenu.lua
+++ b/functions/deathmenu.lua
@@ -167,7 +167,7 @@ detailsOnDeathMenu.enduranceButton.CoolTip = {
--GameCooltip2:AddLine (" ")
if (not Details:GetPlugin ("DETAILS_PLUGIN_DEATH_GRAPHICS")) then
- GameCooltip2:AddLine ("Advanced Death Logs plugin is disabled or not installed, check the Addon Control Panel or download it from the Twitch APP.", "", 1, "red")
+ GameCooltip2:AddLine ("Advanced Death Logs plugin is disabled or not installed, check the Addon Control Panel or download it from the Curseforge APP.", "", 1, "red")
end
end, --> called when user mouse over the frame
diff --git a/startup.lua b/startup.lua
index 77ec15f5..b4fdc263 100644
--- a/startup.lua
+++ b/startup.lua
@@ -486,7 +486,7 @@ function Details:StartMeUp() --I'll never stop!
--show warning message about classic beta
if (not DetailsFramework.IsClassicWow()) then
- --print ("|CFFFFFF00[Details!]: Details! now has a separated version for Classic, Twitch app should give the right version, any issues report at Discord (/details discord).")
+
else
print ("|CFFFFFF00[Details!]: you're using Details! for RETAIL on Classic WOW, please get the classic version (Details! Damage Meter Classic WoW), if you need help see our Discord (/details discord).")
end