mirror of
https://github.com/parnic/ice-hud.git
synced 2025-06-16 06:40:13 -05:00
- added proper support for profiles instead of storing everything in account-wide un-customizable settings
- added FuBar support...why has this not been in and why haven't i noticed it?!
This commit is contained in:
2
.pkgmeta
2
.pkgmeta
@ -9,6 +9,8 @@ externals:
|
||||
libs/AceAddon-2.0: svn://svn.wowace.com/wow/ace2/mainline/trunk/AceAddon-2.0
|
||||
libs/AceConsole-2.0: svn://svn.wowace.com/wow/ace2/mainline/trunk/AceConsole-2.0
|
||||
libs/Deformat-2.0: svn://svn.wowace.com/wow/deformat/mainline/trunk/Deformat-2.0
|
||||
libs/Dewdrop-2.0: svn://svn.wowace.com/wow/dewdroplib/mainline/trunk/Dewdrop-2.0
|
||||
libs/FuBarPlugin-2.0: svn://svn.wowace.com/wow/fubarplugin-2-0/mainline/trunk/FuBarPlugin-2.0
|
||||
libs/LibDogTag-Unit-3.0: svn://svn.wowace.com/wow/libdogtag-unit-3-0/mainline/trunk
|
||||
libs/LibRangeCheck-2.0: svn://svn.wowace.com/wow/librangecheck-2-0/mainline/trunk/LibRangeCheck-2.0
|
||||
libs/LibSharedMedia-3.0: svn://svn.wowace.com/wow/libsharedmedia-3-0/mainline/trunk
|
||||
|
35
IceCore.lua
35
IceCore.lua
@ -6,6 +6,8 @@ IceCore.Side = { Left = "LEFT", Right = "RIGHT" }
|
||||
|
||||
IceCore.BuffLimit = 40
|
||||
|
||||
IceCore.prototype.defaults = {}
|
||||
|
||||
-- Events modules should register/trigger during load
|
||||
IceCore.Loaded = "IceCore_Loaded"
|
||||
IceCore.RegisterModule = "IceCore_RegisterModule"
|
||||
@ -27,8 +29,6 @@ function IceCore.prototype:init()
|
||||
IceCore.super.prototype.init(self)
|
||||
IceHUD:Debug("IceCore.prototype:init()")
|
||||
|
||||
self:RegisterDB("IceCoreDB")
|
||||
|
||||
self.IceHUDFrame = CreateFrame("Frame","IceHUDFrame", UIParent)
|
||||
|
||||
-- We are ready to load modules
|
||||
@ -36,9 +36,14 @@ function IceCore.prototype:init()
|
||||
self:TriggerEvent(IceCore.Loaded)
|
||||
|
||||
|
||||
-- DEFAULT SETTINGS
|
||||
self:SetupDefaults()
|
||||
end
|
||||
|
||||
|
||||
function IceCore.prototype:SetupDefaults()
|
||||
-- DEFAULT SETTINGS
|
||||
local defaultPreset = "RoundBar"
|
||||
local defaults = {
|
||||
self.defaults = {
|
||||
gap = 150,
|
||||
verticalPos = -110,
|
||||
horizontalPos = 0,
|
||||
@ -67,28 +72,23 @@ function IceCore.prototype:init()
|
||||
|
||||
self:LoadPresets()
|
||||
for k, v in pairs(self.presets[defaultPreset]) do
|
||||
defaults[k] = v
|
||||
self.defaults[k] = v
|
||||
end
|
||||
|
||||
-- get default settings from the modules
|
||||
defaults.modules = {}
|
||||
self.defaults.modules = {}
|
||||
for i = 1, table.getn(self.elements) do
|
||||
local name = self.elements[i]:GetElementName()
|
||||
defaults.modules[name] = self.elements[i]:GetDefaultSettings()
|
||||
self.defaults.modules[name] = self.elements[i]:GetDefaultSettings()
|
||||
end
|
||||
|
||||
if (table.getn(self.elements) > 0) then
|
||||
defaults.colors = self.elements[1].defaultColors
|
||||
self.defaults.colors = self.elements[1].defaultColors
|
||||
end
|
||||
|
||||
|
||||
self:RegisterDefaults('account', defaults)
|
||||
end
|
||||
|
||||
|
||||
function IceCore.prototype:Enable()
|
||||
self.settings = self.db.account
|
||||
|
||||
self:DrawFrame()
|
||||
|
||||
for i = 1, table.getn(self.elements) do
|
||||
@ -103,6 +103,15 @@ function IceCore.prototype:Enable()
|
||||
end
|
||||
|
||||
|
||||
function IceCore.prototype:ProfileChanged()
|
||||
for i = 1, table.getn(self.elements) do
|
||||
self.elements[i]:SetDatabase(self.settings)
|
||||
end
|
||||
|
||||
self:Redraw()
|
||||
end
|
||||
|
||||
|
||||
function IceCore.prototype:Disable()
|
||||
self:ConfigModeToggle(false)
|
||||
|
||||
|
80
IceHUD.lua
80
IceHUD.lua
@ -1,9 +1,10 @@
|
||||
IceHUD = AceLibrary("AceAddon-2.0"):new("AceConsole-2.0")
|
||||
IceHUD = AceLibrary("AceAddon-2.0"):new("AceConsole-2.0", "AceDB-2.0", "FuBarPlugin-2.0")
|
||||
|
||||
local waterfall = AceLibrary("Waterfall-1.0")
|
||||
local SML = AceLibrary("LibSharedMedia-3.0")
|
||||
|
||||
IceHUD.CurrTagVersion = 3
|
||||
IceHUD.debugging = false
|
||||
|
||||
IceHUD.WowVer = select(4, GetBuildInfo())
|
||||
|
||||
@ -430,7 +431,7 @@ IceHUD.options =
|
||||
name = 'Other',
|
||||
order = 90
|
||||
},
|
||||
|
||||
--[[
|
||||
enabled = {
|
||||
type = "toggle",
|
||||
name = "|cff11aa11Enabled|r",
|
||||
@ -447,7 +448,7 @@ IceHUD.options =
|
||||
end,
|
||||
order = 91
|
||||
},
|
||||
|
||||
]]
|
||||
debug = {
|
||||
type = "toggle",
|
||||
name = "Debugging",
|
||||
@ -557,31 +558,69 @@ function IceHUD:OnInitialize()
|
||||
self:SetDebugging(false)
|
||||
self:Debug("IceHUD:OnInitialize()")
|
||||
|
||||
self:RegisterDB("IceCoreDB")
|
||||
|
||||
self.IceCore = IceCore:new()
|
||||
|
||||
if not self.db.account.settingsMoved then
|
||||
self:RegisterDefaults('account', self.IceCore.defaults)
|
||||
end
|
||||
self:RegisterDefaults('profile', self.IceCore.defaults)
|
||||
end
|
||||
|
||||
|
||||
function IceHUD:OnEnable()
|
||||
function IceHUD:OnEnable(isFirst)
|
||||
self:Debug("IceHUD:OnEnable()")
|
||||
|
||||
if not self.db.account.settingsMoved then
|
||||
for k,v in pairs(self.db.account) do
|
||||
self.db.profile[k] = v
|
||||
end
|
||||
|
||||
self:ResetDB("account")
|
||||
self.db.account.settingsMoved = true
|
||||
end
|
||||
|
||||
self.IceCore.settings = self.db.profile
|
||||
self.IceCore:Enable()
|
||||
self:SetDebugging(self.IceCore:GetDebug())
|
||||
self.debugFrame = ChatFrame2
|
||||
|
||||
self.options.args.modules.args = self.IceCore:GetModuleOptions()
|
||||
self.options.args.colors.args = self.IceCore:GetColorOptions()
|
||||
if isFirst then
|
||||
self:SetDebugging(self.IceCore:GetDebug())
|
||||
self.debugFrame = ChatFrame2
|
||||
|
||||
waterfall:Register("IceHUD", 'aceOptions', IceHUD.options)
|
||||
self.options.args.modules.args = self.IceCore:GetModuleOptions()
|
||||
self.options.args.colors.args = self.IceCore:GetColorOptions()
|
||||
|
||||
-- Parnic - added /icehudcl to make rock config pick this up
|
||||
self:RegisterChatCommand({"/icehudcl"}, IceHUD.options)
|
||||
self:RegisterChatCommand({ "/icehud" }, IceHUD.slashMenu)
|
||||
waterfall:Register("IceHUD", 'aceOptions', IceHUD.options)
|
||||
|
||||
-- Parnic - added /icehudcl to make rock config pick this up
|
||||
self:RegisterChatCommand({"/icehudcl"}, IceHUD.options)
|
||||
self:RegisterChatCommand({ "/icehud" }, IceHUD.slashMenu)
|
||||
end
|
||||
end
|
||||
|
||||
function IceHUD:Debug()
|
||||
-- fubar stuff
|
||||
IceHUD.OnMenuRequest = IceHUD.options
|
||||
IceHUD.hasIcon = "Interface\\Icons\\Spell_Frost_Frost"
|
||||
IceHUD.hideWithoutStandby = true
|
||||
function IceHUD.OnClick()
|
||||
if not waterfall then return end
|
||||
|
||||
if waterfall:IsOpen("IceHUD") then
|
||||
waterfall:Close("IceHUD")
|
||||
else
|
||||
waterfall:Open("IceHUD")
|
||||
end
|
||||
end
|
||||
|
||||
function IceHUD:SetDebugging()
|
||||
function IceHUD:Debug(msg)
|
||||
if self.debugging then
|
||||
self.debugFrame:AddMessage(msg)
|
||||
end
|
||||
end
|
||||
|
||||
function IceHUD:SetDebugging(bIsDebugging)
|
||||
self.debugging = bIsDebugging
|
||||
end
|
||||
|
||||
-- rounding stuff
|
||||
@ -613,3 +652,16 @@ function IceHUD:GetAuraCount(auraType, unit, ability, onlyMine)
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
function IceHUD:OnDisable()
|
||||
IceHUD.IceCore:Disable()
|
||||
end
|
||||
|
||||
function IceHUD:OnProfileDisable()
|
||||
self.IceCore:Disable()
|
||||
end
|
||||
|
||||
function IceHUD:OnProfileEnable(oldName, oldData)
|
||||
self.IceCore.settings = self.db.profile
|
||||
self.IceCore:Enable()
|
||||
end
|
||||
|
@ -5,9 +5,9 @@
|
||||
## Notes: Another HUD addon
|
||||
## Version: @project-version@ (Revision: @project-revision@)
|
||||
## SavedVariables: IceCoreDB
|
||||
## OptionalDeps: Ace2, LibSharedMedia-3.0, Waterfall-1.0, Deformat, LibDogTag-3.0, LibDogTag-Unit-3.0, LibDruidMana-1.0, LibRangeCheck-2.0
|
||||
## OptionalDeps: Ace2, LibSharedMedia-3.0, Waterfall-1.0, Deformat, DewdropLib, LibDogTag-3.0, LibDogTag-Unit-3.0, FuBarPlugin-2.0, LibDruidMana-1.0, LibRangeCheck-2.0
|
||||
## X-Category: HUDs
|
||||
## X-Website: http://www.wowace.com/projects/wowace-ice-hud/
|
||||
## X-Website: http://www.wowace.com/projects/ice-hud/
|
||||
|
||||
# Libraries
|
||||
embeds.xml
|
||||
|
@ -8,6 +8,8 @@
|
||||
<Script file="libs\AceEvent-2.0\AceEvent-2.0.lua"/>
|
||||
<Script file="libs\AceConsole-2.0\AceConsole-2.0.lua"/>
|
||||
<Script file="libs\AceAddon-2.0\AceAddon-2.0.lua"/>
|
||||
<Script file="libs\Dewdrop-2.0\Dewdrop-2.0.lua"/>
|
||||
<Script file="libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua"/>
|
||||
<Include file="libs\LibDogTag-3.0\lib.xml"/>
|
||||
<Include file="libs\LibDogTag-Unit-3.0\lib.xml"/>
|
||||
<Script file="libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"/>
|
||||
|
Reference in New Issue
Block a user