Files
ice-hud/modules/ComboPointsBar.lua
Parnic 59344a134a - converted most of the mod to ace3. the only ace2 remaining is AceEvent-2 (probably easy to get away from) and AceOO-2 (not so easy)
- the ace3 conversion also broke the dependence on Waterfall and gave a much better configuration screen through AceConfigDialog; plus Waterfall is very broken in Cataclysm and it's unclear whether anyone will bother to fix it or not
- fixed a bug with the custom CD bar when changing profiles where it would generate endless errors until a reloadui
- removed DewDrop library as it was no longer in use
- temporarily removed FuBar plugin as it doesn't work as a mixin with AceAddon-3. i will eventually be bringing this back in some form (before the next full release version)
- removed an unused 'about' button on the config page and some empty headers...not sure why they were ever there
2010-09-05 20:11:33 +00:00

94 lines
2.6 KiB
Lua

local AceOO = AceLibrary("AceOO-2.0")
local ComboPointsBar = AceOO.Class(IceBarElement)
function ComboPointsBar.prototype:init()
ComboPointsBar.super.prototype.init(self, "ComboPointsBar")
self:SetDefaultColor("ComboPointsBarMin", 1, 1, 0)
self:SetDefaultColor("ComboPointsBarMax", 0, 1, 0)
end
function ComboPointsBar.prototype:GetOptions()
local opts = ComboPointsBar.super.prototype.GetOptions(self)
opts["alwaysDisplay"] = {
type = "toggle",
name = "Always display bar",
desc = "Whether this bar should hide when the player has 0 combo points or stay visible",
get = function()
return self.moduleSettings.alwaysDisplay
end,
set = function(info, v)
self.moduleSettings.alwaysDisplay = v
self:UpdateComboPoints()
end,
disabled = function()
return not self.moduleSettings.enabled
end,
order = 31
}
return opts
end
function ComboPointsBar.prototype:GetDefaultSettings()
local defaults = ComboPointsBar.super.prototype.GetDefaultSettings(self)
defaults.textVisible['lower'] = false
defaults.offset = 8
defaults.enabled = false
defaults.alwaysDisplay = false
return defaults
end
function ComboPointsBar.prototype:Enable(core)
ComboPointsBar.super.prototype.Enable(self, core)
self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
if IceHUD.WowVer >= 30000 then
self:RegisterEvent("UNIT_COMBO_POINTS", "UpdateComboPoints")
self:RegisterEvent("UNIT_ENTERED_VEHICLE", "UpdateComboPoints")
self:RegisterEvent("UNIT_EXITED_VEHICLE", "UpdateComboPoints")
else
self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
end
end
function ComboPointsBar.prototype:CreateFrame()
ComboPointsBar.super.prototype.CreateFrame(self)
self:UpdateComboPoints()
end
function ComboPointsBar.prototype:UpdateComboPoints()
local points
if IceHUD.IceCore:IsInConfigMode() then
points = 5
elseif IceHUD.WowVer >= 30000 then
-- Parnic: apparently some fights have combo points while the player is in a vehicle?
local isInVehicle = UnitHasVehicleUI("player")
points = GetComboPoints(isInVehicle and "vehicle" or "player", "target")
else
points = GetComboPoints("target")
end
if (points == 0) then
points = nil
end
if points == nil or points == 0 then
self:Show(self.moduleSettings.alwaysDisplay)
self:UpdateBar(0, "undef")
else
self:Show(true)
local color = {}
self:SetScaledColor(color, (points - 1) / 4.0, self.settings.colors["ComboPointsBarMax"], self.settings.colors["ComboPointsBarMin"])
self:UpdateBar(points / 5.0, "undef")
self.barFrame.bar:SetVertexColor(color.r, color.g, color.b, 1)
end
self:SetBottomText1(points or "0")
end
IceHUD.ComboPointsBar = ComboPointsBar:new()