/trunk
local timerLib = LibStub("TimerLib-1.0"); |
local timerUpdaterLib = LibStub("TimerUpdaterLib-1.0"); |
local candyBarTimerRendererLib = LibStub("CandyBarTimerRendererLib-1.0"); |
local actionLib = LibStub("ActionLib-1.0"); |
local actionBarLib = LibStub("ActionBarLib-1.0"); |
totemManagerData.actionBarSkin = tonumber(value); |
end |
function TotemManager:GetScale() |
return totemManagerData.scale; |
end |
function TotemManager:SetScale(_, value) |
totemManagerData.scale = tonumber(value); |
for _, frame in pairs(self.wowFrame) do |
frame:SetScale(totemManagerData.scale); |
end |
end |
function TotemManager:CreateConsole() |
local options = { |
desc = "change timer skin (need to restart UI)", |
get = "GetTimerSkin", |
set = "SetTimerSkin", |
values = {"TM2"}, |
values = {"TM2", "Candy bar"}, |
order = 1, |
}, |
actionBarSkin = { |
values = {"Hide while in combat", "Show", "Hide"}, |
order = 1, |
}, |
scale = { |
type = "range", |
name = "scale", |
desc = "change frames scaling", |
min = .5, |
max = 2, |
step = .01, |
get = "GetScale", |
set = "SetScale", |
}, |
--[[ |
reset = { |
type = "execute", |
totemManagerData = self.defaultTotemManagerData; |
else |
-- or new data |
totemManagerData = { timerSkin = 1, actionBarSkin = 2, tooltipVisibility = 1, scale = 1 }; |
totemManagerData = { timerSkin = 1, actionBarSkin = 2, tooltipVisibility = 1 }; |
end |
self:Activate(); |
TotemFrame:UnregisterEvent("PLAYER_ENTERING_WORLD"); |
TotemFrame_Update = function () end; |
TotemFrame:Hide(); |
if totemManagerData.timerSkin==2 then |
managerFrameLib.ManagerFrame.timerSkin = {visualRenderer = function (frame, barName) return candyBarTimerRendererLib.candyBarTimerRendererFactory:Create(barName); end, verticalGap=20, horizontalGap=220}; |
end |
self.left = 300; |
self.top = 200; |
-- totemManagerData.actionBarBackup = {}; |
self.actionBarConfList = {}; |
self.removeMacroTextMap = {}; |
local rendererCreatorFunc; |
if self:GetActionBarSkin()==1 then |
rendererCreatorFunc = function () return squareActionBarRendererLib.squareActionBarRendererFactory:Create(nil, 30, 30); end |
rendererCreatorFunc = function (parent, scale) return squareActionBarRendererLib.squareActionBarRendererFactory:Create(parent, 30, 30); end |
else |
local texture, selectedTexture = "Interface\\AddOns\\TotemManager\\textures\\SerenityBase", "Interface\\AddOns\\TotemManager\\textures\\SerenityBaseGreen"; |
rendererCreatorFunc |
); |
totemManagerData["ankhActionFrame"] = self.frames["ankhActionFrame"]:GetBackup(); |
for _, frame in pairs(self.wowFrame) do |
frame:SetScale(totemManagerData.scale); |
frame:Raise(); |
end |
local tcFrame = CreateFrame("Button", "totemicCall" ,nil, "SecureUnitButtonTemplate"); |
tcFrame:SetAttribute("type", "spell"); |
tcFrame:SetAttribute("spell", self.TOTEMIC_CALL); |
end |
function TotemManager:PrepareFrame() |
-- frame are created before PLAYER_ENTERING_WORLD. |
-- frame are created before PLAYER_ENTERING_WORLD, so wow restore their position. |
self.wowFrame = { |
totemActionFrame = CreateFrame("Frame", "totemActionFrame", parent), |
buffActionFrame = CreateFrame("Frame", "buffActionFrame", parent), |
ankhActionFrame = CreateFrame("Frame", "ankhActionFrame", parent), |
}; |
for _, frame in pairs(self.wowFrame) do |
}; |
self.wowFrame.totemActionFrame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 280, -180); |
self.wowFrame.buffActionFrame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 280, -380); |
self.wowFrame.ankhActionFrame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 280, -110); |
for _, frame in pairs(self.wowFrame) do |
frame:SetMovable(true); |
frame:SetClampedToScreen(true); |
end |
end |
-- run the mod (wait for VARIABLES_LOADED event) |
-- reasonable scale values 0.8-1.1 |
environmentLib.environment:RegisterEvent("VARIABLES_LOADED", totemManager); |
environmentLib.environment:RegisterEvent("UPDATE_BINDINGS", totemManager); |
4.7.0 |
New Features : |
- Update for WoW 3.1 |
- Use GID of totem spell and buff so each language can use all |
- Use GID of totem spell so each language can use most of |
totem manager functionnalities |
- Add scaling capability |
Bug correction : |
- Duration of searing totem |
- Fix issue which can happend when specialisations changed |
Regression : |
- Remove candy bar timer renderer (maybe LibBar will be use in future) |
----------------------------------------- |
Old Versions |
----------------------------------------- |
-- my saved variable |
TotemManager.defaultTotemManagerData = { |
["scale"] = 1, |
["actionBarSkin"] = 2, |
["timerSkin"] = 1, |
["ankhActionFrame"] = { |
["visible"] = true, |
["direction"] = 1, |
["left"] = 845, |
["top"] = 615, |
["left"] = 846.36865234375, |
["top"] = 614.9999389648438, |
}, |
["totemActionFrame"] = { |
["visible"] = true, |
["direction"] = 1, |
["left"] = 280, |
["top"] = 590, |
}, |
["buffActionFrame"] = { |
["visible"] = true, |
["direction"] = 1, |
["left"] = 280, |
["top"] = 390, |
}, |
["tooltipVisibility"] = 1, |
["actionBarBackup"] = { |