vanilla-wow-addons – Rev 1
?pathlinks?
local dewdrop = DewdropLib:GetInstance('1.0')
local tablet = TabletLib:GetInstance('1.0')
local metro = Metrognome:GetInstance('1')
FuBar_Experienced = FuBarPlugin:GetInstance("1.2"):new({
name = FuBar_ExperiencedLocals.NAME,
description = FuBar_ExperiencedLocals.DESCRIPTION,
version = "0.3.0",
releaseDate = "05-18-2006",
aceCompatible = 103,
author = "Tain",
email = "tain.dev@gmail.com",
website = "http://tain.wowinterface.com/",
category = "others",
db = AceDatabase:new("FuBar_ExperiencedDB"),
defaults = {
levelExp = TRUE,
levelExpPercent = TRUE,
restedExp = TRUE
},
cmd = AceChatCmd:new(FuBar_ExperiencedLocals.CHATCMD, FuBar_ExperiencedLocals.CHATOPT),
locals = FuBar_ExperiencedLocals,
-- Methods
GetVar = function(self,var)
return self.data[var] and TRUE
end,
ToggleShowLevelExp = function(self, silent)
self.data.levelExp = not self.data.levelExp
if silent ~= TRUE then
self.cmd:status(self.locals.MENU_SHOW_LEVEL_XP, self:GetVar("levelExp"), FuBarUtils.MAP_ONOFF)
end
self:Update()
return self.data.levelExp
end,
ToggleShowToLevelExp = function(self, silent)
self.data.toLevelExp = not self.data.toLevelExp
if silent ~= TRUE then
self.cmd:status(self.locals.MENU_SHOW_TOLEVEL_XP, self:GetVar("toLevelExp"), FuBarUtils.MAP_ONOFF)
end
self:Update()
return self.data.toLevelExp
end,
ToggleShowLevelExpPercent = function(self, silent)
self.data.levelExpPercent = not self.data.levelExpPercent
if silent ~= TRUE then
self.cmd:status(self.locals.MENU_SHOW_LEVEL_XP_PERCENT, self:GetVar("levelExpPercent"), FuBarUtils.MAP_ONOFF)
end
self:Update()
return self.data.showExpPercent
end,
ToggleShowRestedExp = function(self, silent)
self.data.restedExp = not self.data.restedExp
if silent ~= TRUE then
self.cmd:status(self.locals.MENU_SHOW_RESTED_XP, self:GetVar("restedExp"), FuBarUtils.MAP_ONOFF)
end
self:Update()
return self.data.restedExp
end,
ToggleShowRestedExpPercent = function(self, silent)
self.data.restedExpPercent = not self.data.restedExpPercent
if silent ~= TRUE then
self.cmd:status(self.locals.MENU_SHOW_RESTED_XP_PERCENT, self:GetVar("restedExpPercent"), FuBarUtils.MAP_ONOFF)
end
self:Update()
return self.data.restedExpPercent
end,
ToggleShowAverageExp = function(self, silent)
self.data.averageExp = not self.data.averageExp
if silent ~= TRUE then
self.cmd:status(self.locals.MENU_SHOW_AVERAGE_XP_GAIN, self:GetVar("averageExp"), FuBarUtils.MAP_ONOFF)
end
self:Update()
return self.data.averageExp
end,
ToggleShowByLevel = function(self, silent)
self.data.byLevel = not self.data.byLevel
if silent ~= TRUE then
self.cmd:status(self.locals.MENU_SHOW_AVERAGE_XP_GAIN_BY_LEVEL, self:GetVar("byLevel"), FuBarUtils.MAP_ONOFF)
end
self:Update()
return self.data.byLevel
end,
Initialize = function(self)
self.initialXP = UnitXP("player")
end,
Enable = function(self)
self.timeSinceLastUpdate = 0
self:RegisterEvent("PLAYER_XP_UPDATE", "OnPlayerXpUpdate")
self:RegisterEvent("PLAYER_LEVEL_UP", "OnPlayerLevelUp")
self:RegisterEvent("TIME_PLAYED_MSG", "OnTimePlayedMsg")
-- RequestTimePlayed()
metro:Register(self.name, self.Update, 2, self)
metro:Start(self.name)
end,
Disable = function(self)
end,
Report = function(self)
self.cmd:report({
{
text=self.locals.MENU_SHOW_LEVEL_XP,
val=self:GetVar("levelExp"),
map=FuBarLocals.MAP_ONOFF
},
{
text=self.locals.MENU_SHOW_TOLEVEL_XP,
val=self:GetVar("toLevelExp"),
map=FuBarLocals.MAP_ONOFF
},
{
text=self.locals.MENU_SHOW_LEVEL_XP_PERCENT,
val=self:GetVar("levelExpPercent"),
map=FuBarLocals.MAP_ONOFF
},
{
text=self.locals.MENU_SHOW_RESTED_XP,
val=self:GetVar("restedExp"),
map=FuBarLocals.MAP_ONOFF
},
{
text=self.locals.MENU_SHOW_RESTED_XP_PERCENT,
val=self:GetVar("restedExpPercent"),
map=FuBarLocals.MAP_ONOFF
},
})
end,
MenuSettings = function(self, level, value)
dewdrop:AddLine(
'text', self.locals.MENU_SHOW_LEVEL_XP,
'arg1', self,
'func', function()
self:ToggleShowLevelExp(TRUE)
end,
'checked', self:GetVar("levelExp")
)
dewdrop:AddLine(
'text', self.locals.MENU_SHOW_TOLEVEL_XP,
'arg1', self,
'func', function()
self:ToggleShowToLevelExp(TRUE)
end,
'checked', self:GetVar("toLevelExp")
)
dewdrop:AddLine(
'text', self.locals.MENU_SHOW_LEVEL_XP_PERCENT,
'arg1', self,
'func', function()
self:ToggleShowLevelExpPercent(TRUE)
end,
'checked', self:GetVar("levelExpPercent")
)
dewdrop:AddLine(
'text', self.locals.MENU_SHOW_RESTED_XP,
'arg1', self,
'func', function()
self:ToggleShowRestedExp(TRUE)
end,
'checked', self:GetVar("restedExp")
)
dewdrop:AddLine(
'text', self.locals.MENU_SHOW_RESTED_XP_PERCENT,
'arg1', self,
'func', function()
self:ToggleShowRestedExpPercent(TRUE)
end,
'checked', self:GetVar("restedExpPercent")
)
end,
OnUpdate = function(self, difference)
self.timeSinceLastUpdate = self.timeSinceLastUpdate + difference
if self.timeSinceLastUpdate >= 1 then
self.timeSinceLastUpdate = 0
self:Update()
end
end,
UpdateText = function(self)
local totalXP = UnitXPMax("player")
local currentXP = UnitXP("player")
local toLevelXP = totalXP - currentXP
local sessionXP = self.sessionXP
local xps
local restedXP
if self.data.toLevelExp then
xps = "XPLvl: |cffffffff%d|r"
xps = string.format(xps, toLevelXP)
elseif self.data.levelExp then
xps = "XP/T: |cffffffff%d|r/|cffffffff%d|r"
xps = string.format(xps, currentXP, totalXP)
else
xps = "XP: |cffffffff%d|r"
xps = string.format(xps, currentXP)
end
if self.data.levelExpPercent then
local xpp = " (|cffffffff%.1f%%|r)"
if self.data.toLevelExp then
xpp = string.format(xpp, toLevelXP / totalXP * 100)
else
xpp = string.format(xpp, currentXP / totalXP * 100)
end
xps = xps..xpp
end
if self.data.restedExp then
restedXP = GetXPExhaustion()
restedXP = restedXP or 0
if self.data.restedExpPercent then
restedXP = format("R: |cffffffff%.1f%%|r", floor((restedXP*100)/totalXP))
else
restedXP = format("R: |cffffffff%d|r", restedXP)
end
else
restedXP = nil
end
xps = xps..((restedXP and " "..restedXP) or "")
xps = xps or ""
self:SetText(xps)
end,
UpdateTooltip = function(self)
local totalXP = UnitXPMax("player")
local currentXP = UnitXP("player")
local restedXP = GetXPExhaustion()
local toLevelXP = totalXP - currentXP
local cat = tablet:AddCategory(
'columns', 2,
'child_textR', 1,
'child_textG', 1,
'child_textB', 0,
'child_text2R', 1,
'child_text2G', 1,
'child_text2B', 1
)
cat:AddLine(
'text', self.locals.TEXT_LEVEL .. ":",
'text2', UnitLevel("player")
)
cat:AddLine(
'text', self.locals.TEXT_TOTAL_LEVEL_XP .. ":",
'text2', totalXP
)
cat:AddLine(
'text', self.locals.TEXT_XP_GAINED .. ":",
'text2', format("%d (%.1f%%)", currentXP, currentXP / totalXP * 100)
)
cat:AddLine(
'text', self.locals.TEXT_XP_REMAINING .. ":",
'text2', format("%d (%.1f%%)", toLevelXP, toLevelXP / totalXP * 100)
)
cat:AddLine(
'text', self.locals.TEXT_RESTED_XP .. ":",
'text2', restedXP
)
end,
})
FuBar_Experienced:RegisterForLoad()
Generated by GNU Enscript 1.6.5.90.