From aaf2ea5dfb0033a610ea46f77d101471efb5fe39 Mon Sep 17 00:00:00 2001 From: Parnic Date: Mon, 20 Apr 2009 00:25:07 +0000 Subject: [PATCH] - added a ToT cast bar (disabled by default) --- IceHUD.toc | 1 + modules/TargetOfTargetCast.lua | 140 +++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 modules/TargetOfTargetCast.lua diff --git a/IceHUD.toc b/IceHUD.toc index 279c278..6db5085 100644 --- a/IceHUD.toc +++ b/IceHUD.toc @@ -58,3 +58,4 @@ modules\CustomBar.lua modules\CustomCount.lua # - make sure PlayerInfo loads after TargetInfo since it inherits modules\PlayerInfo.lua +modules\TargetOfTargetCast.lua diff --git a/modules/TargetOfTargetCast.lua b/modules/TargetOfTargetCast.lua new file mode 100644 index 0000000..832ff0c --- /dev/null +++ b/modules/TargetOfTargetCast.lua @@ -0,0 +1,140 @@ +local AceOO = AceLibrary("AceOO-2.0") + +local TargetTargetCast = AceOO.Class(IceCastBar) + +-- Constructor -- +function TargetTargetCast.prototype:init() + TargetTargetCast.super.prototype.init(self, "TargetTargetCast") + + self.unit = "targettarget" +end + + +-- 'Public' methods ----------------------------------------------------------- + +-- OVERRIDE +function TargetTargetCast.prototype:GetDefaultSettings() + local settings = TargetTargetCast.super.prototype.GetDefaultSettings(self) + + settings["side"] = IceCore.Side.Right + settings["offset"] = 13 + settings["flashInstants"] = "Never" + settings["flashFailures"] = "Never" + settings["shouldAnimate"] = false + settings["usesDogTagStrings"] = false + settings["enabled"] = false + settings["barVerticalOffset"] = 35 + settings["scale"] = 0.7 + + return settings +end + + +-- OVERRIDE +function TargetTargetCast.prototype:Enable(core) + TargetTargetCast.super.prototype.Enable(self, core) + + self:ScheduleRepeatingEvent(self.elementName, self.UpdateTargetTarget, 0.1, self) +end + + +function TargetTargetCast.prototype:UpdateTargetTarget() + if not (UnitExists(self.unit)) then + self:StopBar() + return + end + + local spell = UnitCastingInfo(self.unit) + if (spell) then + self:StartBar(IceCastBar.Actions.Cast) + return + end + + local channel = UnitChannelInfo(self.unit) + if (channel) then + self:StartBar(IceCastBar.Actions.Channel) + return + end + + self:StopBar() +end + + +function TargetTargetCast.prototype:GetOptions() + local opts = TargetTargetCast.super.prototype.GetOptions(self) + + -- Parnic - this exists solely for the console/rock config to work...animating cast bars doesn't make sense + opts["shouldAnimate"] = + { + type = 'toggle', + name = 's', + desc = 's', + set = 's', + get = 's', + hidden = function() + return true + end + } + + opts["desiredLerpTime"] = + { + type = 'toggle', + name = 'd', + desc = 'd', + set = 'd', + get = 'd', + hidden = function() + return true + end + } + + opts["barVisible"] = { + type = 'toggle', + name = 'Bar visible', + desc = 'Toggle bar visibility', + get = function() + return self.moduleSettings.barVisible['bar'] + end, + set = function(v) + self.moduleSettings.barVisible['bar'] = v + if v then + self.barFrame:Show() + else + self.barFrame:Hide() + end + end, + disabled = function() + return not self.moduleSettings.enabled + end, + order = 28 + } + + opts["bgVisible"] = { + type = 'toggle', + name = 'Bar background visible', + desc = 'Toggle bar background visibility', + get = function() + return self.moduleSettings.barVisible['bg'] + end, + set = function(v) + self.moduleSettings.barVisible['bg'] = v + if v then + self.frame.bg:Show() + else + self.frame.bg:Hide() + end + end, + disabled = function() + return not self.moduleSettings.enabled + end, + order = 29 + } + + return opts +end + +------------------------------------------------------------------------------- + + +-- Load us up +IceHUD.TargetTargetCast = TargetTargetCast:new()