Some work on the DR timers, added in the settings for them.

This commit is contained in:
Relintai 2016-05-06 15:45:39 +02:00
parent 0cc26befa9
commit 44f8a819df
2 changed files with 272 additions and 8 deletions

136
Vect.lua
View File

@ -4,10 +4,11 @@
--Way to show pet cds on the master -> currently looks impossible --Way to show pet cds on the master -> currently looks impossible
--"Globals" --"Globals"
local aceDB = LibStub("AceDB-3.0") local aceDB = LibStub("AceDB-3.0");
local aceCDialog = LibStub("AceConfigDialog-3.0") local aceCDialog = LibStub("AceConfigDialog-3.0");
local aceConfig = LibStub("AceConfig-3.0") local aceConfig = LibStub("AceConfig-3.0");
local libSharedMedia = LibStub("LibSharedMedia-3.0") local libSharedMedia = LibStub("LibSharedMedia-3.0");
local libDRData = LibStub('DRData-1.0');
Vect.MovableFrames = nil Vect.MovableFrames = nil
@ -17,10 +18,14 @@ Vect.targets = {
} }
Vect.cds = {} Vect.cds = {}
Vect.drs = {}
Vect.frames = { Vect.frames = {
["target"] = {}, ["target"] = {},
["focus"] = {} ["focus"] = {},
["targetdr"] = {},
["focusdr"] = {},
["selfdr"] = {}
} }
Vect.defaults = { Vect.defaults = {
@ -47,12 +52,37 @@ Vect.defaults = {
yPos = 380, yPos = 380,
growOrder = 2, growOrder = 2,
sortOrder = 5 sortOrder = 5
},
targetdr = {
enabled = true,
size = 27,
xPos = 380,
yPos = 380,
growOrder = 2,
sortOrder = 5
},
focusdr = {
enabled = true,
size = 27,
xPos = 380,
yPos = 380,
growOrder = 2,
sortOrder = 5
},
selfdr = {
enabled = true,
size = 27,
xPos = 380,
yPos = 380,
growOrder = 2,
sortOrder = 5
} }
} }
} }
function Vect:Reset() function Vect:Reset()
Vect.cds = {} Vect.cds = {}
Vect.drs = {}
Vect.target = {unitGUID = -1, timers = {}} Vect.target = {unitGUID = -1, timers = {}}
Vect.focus = {unitGUID = -1, timers = {}} Vect.focus = {unitGUID = -1, timers = {}}
end end
@ -76,6 +106,9 @@ function Vect:OnEnable()
self:RegisterEvent("PLAYER_FOCUS_CHANGED") self:RegisterEvent("PLAYER_FOCUS_CHANGED")
self:CreateFrames("target"); self:CreateFrames("target");
self:CreateFrames("focus"); self:CreateFrames("focus");
self:CreateDRFrames("targetdr");
self:CreateDRFrames("focusdr");
self:CreateDRFrames("selfdr");
self:ApplySettings(); self:ApplySettings();
end end
@ -304,6 +337,35 @@ function Vect:CreateFrames(which)
end end
end end
function Vect:CreateDRFrames(which)
for i = 1, 18 do
local frame = CreateFrame("Frame", nil, UIParent, nil);
frame:SetFrameStrata("MEDIUM");
frame:SetWidth(150);
frame:SetHeight(150);
if i == 1 then
frame:SetScript("OnUpdate", function() self:VOnDRTimerUpdate(which) end)
end
local text = frame:CreateTexture();
text:SetTexture("Interface\\Icons\\Spell_Arcane_Blink")
text:SetAllPoints(frame);
frame.texture = text;
local CoolDown = CreateFrame("Cooldown", "VectCoolDown" .. i, frame);
CoolDown:SetAllPoints()
CoolDown:SetCooldown(GetTime(), 50);
local t = frame:CreateFontString(nil, "OVERLAY");
t:SetNonSpaceWrap(false);
t:SetPoint("CENTER", frame, "CENTER", 0, 0);
t:SetFont("Fonts\\FRIZQT__.TTF", 11, "OUTLINE, MONOCHROME")
--frame:Hide();
Vect.frames[which][i] = {}
Vect.frames[which][i]["frame"] = frame;
Vect.frames[which][i]["texture"] = text;
Vect.frames[which][i]["cooldown"] = CoolDown;
Vect.frames[which][i]["text"] = t;
end
end
function Vect:MoveTimersStop(which) function Vect:MoveTimersStop(which)
local db = Vect.db.profile; local db = Vect.db.profile;
local x = db[which]["xPos"]; local x = db[which]["xPos"];
@ -336,6 +398,38 @@ function Vect:MoveTimersStop(which)
end end
end end
function Vect:MoveDRTimersStop(which)
local db = Vect.db.profile;
local x = db[which]["xPos"];
local y = db[which]["yPos"];
local size = db[which]["size"];
local growOrder = db[which]["growOrder"];
for i = 1, 18 do
local frame = Vect.frames[which][i]["frame"];
frame:ClearAllPoints();
frame:SetFrameStrata("MEDIUM");
frame:SetWidth(size);
frame:SetHeight(size);
local text = Vect.frames[which][i]["texture"];
text:SetAllPoints(frame);
frame.texture = text;
--set them based on the grow type
if growOrder == "1" then --Up
frame:SetPoint("BOTTOMLEFT", x, y + ((i - 1) * size));
elseif growOrder == "2" then --Right
frame:SetPoint("BOTTOMLEFT", x + ((i - 1) * size), y);
elseif growOrder == "3" then --Down
frame:SetPoint("BOTTOMLEFT", x, y - ((i - 1) * size));
else --Left
frame:SetPoint("BOTTOMLEFT", x - ((i - 1) * size), y);
end
local CoolDown = Vect.frames[which][i]["cooldown"];
CoolDown:SetAllPoints();
--frame:Show();
end
end
function Vect:ApplySettings() function Vect:ApplySettings()
local db = Vect.db.profile; local db = Vect.db.profile;
Vect:MoveTimersStop("target"); Vect:MoveTimersStop("target");
@ -361,6 +455,10 @@ function Vect:VOnTimerUpdate(which)
end end
end end
function Vect:VOnDRTimerUpdate(which)
--TODO
end
function Vect:VectDisable() function Vect:VectDisable()
self:Reset(); self:Reset();
self:ApplySettings(); self:ApplySettings();
@ -425,6 +523,20 @@ function Vect:SetPartEnabledOrDisabled(which, enable)
end end
end end
function Vect:SetDRPartEnabledOrDisabled(which, enable)
local db = Vect.db.profile;
db[which]["enabled"] = enable;
--hide all those frames
if not enable then
for i = 1, 18 do
local frame = Vect.frames[which][i]["frame"];
frame:Hide();
end
else
--self:ReassignCds(which);
end
end
--lock --lock
function Vect:isLocked() function Vect:isLocked()
return Vect.db.profile["locked"]; return Vect.db.profile["locked"];
@ -460,7 +572,7 @@ function Vect:ShowMovableFrames()
--Create them if they doesn't exists --Create them if they doesn't exists
if not Vect.MovableFrames then if not Vect.MovableFrames then
Vect.MovableFrames = {} Vect.MovableFrames = {}
for i = 1, 2 do for i = 1, 5 do
local frame = CreateFrame("Frame", nil, UIParent, nil); local frame = CreateFrame("Frame", nil, UIParent, nil);
frame:SetFrameStrata("BACKGROUND"); frame:SetFrameStrata("BACKGROUND");
frame:SetScript("OnDragStart", function() self:MovableFrameDragStart() end) frame:SetScript("OnDragStart", function() self:MovableFrameDragStart() end)
@ -479,6 +591,12 @@ function Vect:ShowMovableFrames()
ttext = "T"; ttext = "T";
elseif i == 2 then elseif i == 2 then
ttext = "F"; ttext = "F";
elseif i == 3 then
ttext = "TDR";
elseif i == 4 then
ttext = "FDR";
elseif i == 5 then
ttext = "SDR";
end end
t:SetText(ttext); t:SetText(ttext);
@ -488,6 +606,12 @@ function Vect:ShowMovableFrames()
which = "target"; which = "target";
elseif i == 2 then elseif i == 2 then
which = "focus"; which = "focus";
elseif i == 3 then
which = "targetdr";
elseif i == 4 then
which = "focusdr";
elseif i == 5 then
which = "selfdr";
end end
frame.DragID = which; frame.DragID = which;

View File

@ -149,7 +149,103 @@ end
--order 20-40 --order 20-40
function Vect:getDROptions() function Vect:getDROptions()
local args = { local args = {
targetdrHeader = {
type = "header", name = "Target's DR settings", order = 10
},
targetdrtoggle = {
type = "toggle", name = "Enabled", desc = "Enable/Disable showing the target's DRs.", order = 11,
get = function() return Vect:isPartEnabled("targetdr") end,
set = function(_, v)
Vect:SetDRPartEnabledOrDisabled("targetdr", v);
end
},
targetdrrange = {
type = "range", name = "Target's DRs size", order = 12, min = 10, max = 150, step = 1,
get = function() return Vect:getFrameSize("targetdr") end,
set = function(_, v)
Vect:setFrameSize("targetdr", v);
end
},
targetdrGrowSelect = {
type = "select", style = "dropdown", name = "targetDRGrow",
desc = "Change which way the target's cooldowns will grow", order = 13,
values = {
["1"] = "Up",
["2"] = "Right",
["3"] = "Down",
["4"] = "Left"
},
get = function() return Vect:getGrowOrder("targetdr") end,
set = function(_, v)
Vect:setGrowOrder("targetdr", v);
end
},
targetdrSortSelect = {
type = "select", style = "dropdown", name = "targetDRSortOrder",
desc = "Change the target's DR's sort order", order = 14,
values = {
["1"] = "Ascending (CD left)",
["2"] = "Descending (CD left)",
["3"] = "Ascending (CD total)",
["4"] = "Descending (CD total)",
["5"] = "Recent first",
["6"] = "Recent Last",
["7"] = "No order"
},
get = function() return Vect:getSortOrder("targetdr") end,
set = function(_, v)
Vect:setSortOrder("targetdr", v);
end
},
focusdrHeader = {
type = "header", name = "Focus's settings", order = 15
},
focusdrtoggle = {
type = "toggle", name = "Enabled", desc = "Enable/Disable showing the focus's DRs.", order = 16,
get = function() return Vect:isPartEnabled("focusdr") end,
set = function(_, v)
Vect:SetDRPartEnabledOrDisabled("focusdr", v);
end
},
focusdrRange = {
type = "range", name = "Focus's size", order = 17, min = 10, max = 150, step = 1,
get = function() return Vect:getFrameSize("focusdr") end,
set = function(_, v)
Vect:setFrameSize("focusdr", v);
end
},
focusdrGrowSelect = {
type = "select", style = "dropdown", name = "focusDRGrow",
desc = "Change which way the focus's DRs will grow", order = 18,
values = {
["1"] = "Up",
["2"] = "Right",
["3"] = "Down",
["4"] = "Left"
},
get = function() return Vect:getGrowOrder("focusdr") end,
set = function(_, v)
Vect:setGrowOrder("focusdr", v);
end
},
focusdrSortSelect = {
type = "select", style = "dropdown", name = "focusDRSortOrder",
desc = "Change the focus's DR's sort order", order = 19,
values = {
["1"] = "Ascending (CD left)",
["2"] = "Descending (CD left)",
["3"] = "Ascending (CD total)",
["4"] = "Descending (CD total)",
["5"] = "Recent first",
["6"] = "Recent Last",
["7"] = "No order"
},
get = function() return Vect:getSortOrder("focusdr") end,
set = function(_, v)
Vect:setSortOrder("focusdr", v);
end
}
} }
return args; return args;
end end
@ -157,7 +253,51 @@ end
--order 40-50 --order 40-50
function Vect:getSelfDROptions() function Vect:getSelfDROptions()
local args = { local args = {
selfdrtoggle = {
type = "toggle", name = "Enabled", desc = "Enable/Disable showing the your DRs.", order = 11,
get = function() return Vect:isPartEnabled("selfdr") end,
set = function(_, v)
Vect:SetDRPartEnabledOrDisabled("selfdr", v);
end
},
selfdrrange = {
type = "range", name = "Self's DRs size", order = 12, min = 10, max = 150, step = 1,
get = function() return Vect:getFrameSize("selfdr") end,
set = function(_, v)
Vect:setFrameSize("selfdr", v);
end
},
selfdrGrowSelect = {
type = "select", style = "dropdown", name = "selfDRGrow",
desc = "Change which way the your DRs will grow", order = 13,
values = {
["1"] = "Up",
["2"] = "Right",
["3"] = "Down",
["4"] = "Left"
},
get = function() return Vect:getGrowOrder("selfdr") end,
set = function(_, v)
Vect:setGrowOrder("selfdr", v);
end
},
selfdrSortSelect = {
type = "select", style = "dropdown", name = "selfDRSortOrder",
desc = "Change the your DR's sort order", order = 14,
values = {
["1"] = "Ascending (CD left)",
["2"] = "Descending (CD left)",
["3"] = "Ascending (CD total)",
["4"] = "Descending (CD total)",
["5"] = "Recent first",
["6"] = "Recent Last",
["7"] = "No order"
},
get = function() return Vect:getSortOrder("selfdr") end,
set = function(_, v)
Vect:setSortOrder("selfdr", v);
end
},
} }
return args; return args;
end end