- added simplistic RangeCheck module

This commit is contained in:
Parnic
2008-09-28 20:14:22 +00:00
parent b734f105b1
commit 32c3a35090
3 changed files with 153 additions and 0 deletions

View File

@ -52,3 +52,4 @@ modules\Runes.lua
modules\TargetOfTargetHealth.lua
modules\TargetOfTargetMana.lua
modules\Threat.lua
modules\RangeCheck.lua

View File

@ -17,5 +17,6 @@
<Script file="libs\Waterfall-1.0\Waterfall-1.0.lua"/>
<Include file="libs\Threat-2.0\embeds.xml"/>
<Include file="libs\Threat-2.0\Threat-2.0\lib.xml"/>
<Script file="libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>
</Ui>

151
modules/RangeCheck.lua Normal file
View File

@ -0,0 +1,151 @@
local AceOO = AceLibrary("AceOO-2.0")
local RangeCheck = AceOO.Class(IceElement)
local LibRange = nil
local DogTag = nil
-- Constructor --
function RangeCheck.prototype:init()
RangeCheck.super.prototype.init(self, "RangeCheck")
self.scalingEnabled = true
if AceLibrary:HasInstance("LibRangeCheck-2.0") then
LibRange = AceLibrary("LibRangeCheck-2.0")
end
if AceLibrary:HasInstance("LibDogTag-3.0") then
DogTag = AceLibrary("LibDogTag-3.0")
end
end
function RangeCheck.prototype:Enable(core)
RangeCheck.super.prototype.Enable(self, core)
self:RegisterFontStrings()
end
function RangeCheck.prototype:Disable(core)
RangeCheck.super.prototype.Disable(self, core)
self:UnregisterFontStrings()
end
function RangeCheck.prototype:GetDefaultSettings()
local defaults = RangeCheck.super.prototype.GetDefaultSettings(self)
defaults["rangeString"] = "Range: [HostileColor Range]"
defaults["vpos"] = 220
defaults["hpos"] = 0
defaults["enabled"] = false
return defaults
end
function RangeCheck.prototype:GetOptions()
local opts = RangeCheck.super.prototype.GetOptions(self)
opts["vpos"] = {
type = "range",
name = "Vertical Position",
desc = "Vertical Position",
get = function()
return self.moduleSettings.vpos
end,
set = function(v)
self.moduleSettings.vpos = v
self:Redraw()
end,
min = -300,
max = 600,
step = 10,
disabled = function()
return not self.moduleSettings.enabled
end,
order = 31
}
opts["hpos"] = {
type = "range",
name = "Horizontal Position",
desc = "Horizontal Position",
get = function()
return self.moduleSettings.hpos
end,
set = function(v)
self.moduleSettings.hpos = v
self:Redraw()
end,
min = -500,
max = 500,
step = 10,
disabled = function()
return not self.moduleSettings.enabled
end,
order = 32
}
opts["rangeString"] = {
type = 'text',
name = 'Range string',
desc = 'DogTag-formatted string to use for the range display\n\nType /dogtag for a list of available tags',
get = function()
return self.moduleSettings.rangeString
end,
set = function(v)
v = DogTag:CleanCode(v)
self.moduleSettings.rangeString = v
self:RegisterFontStrings()
self:Redraw()
end,
disabled = function()
return not self.moduleSettings.enabled or not DogTag or not RangeCheck
end,
usage = '',
order = 33
}
return opts
end
function RangeCheck.prototype:Redraw()
RangeCheck.super.prototype.Redraw(self)
if (self.moduleSettings.enabled) then
self:CreateFrame(true)
end
end
function RangeCheck.prototype:CreateFrame(redraw)
if not (self.frame) then
self.frame = CreateFrame("Frame", "IceHUD_"..self.elementName, self.parent)
end
self.frame:SetScale(self.moduleSettings.scale)
self.frame:SetFrameStrata("BACKGROUND")
self.frame:SetWidth(100)
self.frame:SetHeight(32)
self.frame:ClearAllPoints()
self.frame:SetPoint("TOP", self.parent, "TOP", self.moduleSettings.hpos, self.moduleSettings.vpos)
self.frame.rangeFontString = self:FontFactory(--[[self.moduleSettings.fontSize+1]] 13, nil, self.frame.rangeFontString)
self.frame.rangeFontString:SetJustifyH("CENTER")
self.frame.rangeFontString:SetJustifyV("TOP")
self.frame.rangeFontString:SetAllPoints(self.frame)
end
function RangeCheck.prototype:RegisterFontStrings()
if DogTag and RangeCheck then
DogTag:AddFontString(self.frame.rangeFontString, self.frame, self.moduleSettings.rangeString, "Unit", { unit = "target" })
DogTag:UpdateAllForFrame(self.frame)
end
end
function RangeCheck.prototype:UnregisterFontStrings()
if DogTag then
DogTag:RemoveFontString(self.frame.rangeFontString)
end
end
IceHUD.RangeCheck = RangeCheck:new()