Compare with Previous | Blame | View Log
local addon = LibStub("NaturCombat"); -- Our Library addon.bar = LibStub("NaturGTB"); -- Bar Library addon.media = LibStub("LibSharedMedia-3.0"); -- Textures/Icons ---------------------------------------------------------------------------------------------------- -- DEFAULT VARIABLES ---------------------------------------------------------------------------------------------------- addon.default = { Version=GetAddOnMetadata("NaturCombat", "Version"), Height=20, Width=270, Scale=1, FontSize=15, MaxBars=10, Lock=true, Icon=true, Growth="UP", Invert=true, Texture="NaturGlaze", Vertical=0, Cooldowns=true, Diminish=true, Sounds=true, Groups=false, Track=false, TargetFocus=true, Casting=true, Colors = { ["HOSTILECAST"] = {r = 1, g = 0, b = 0}, ["FRIENDLYCAST"] = {r = 0, g= 1, b = 0}, ["COOLDOWN"] = {r = 0, g = 0, b = 1}, ["HOSTILEBUFF"] = {r = 0.5, g = 0, b = 0.65}, ["FRIENDLYBUFF"] = {r = 1, g = 0, b = 1}, ["STUN"] = {r = 0.5, g = 0.2, b = 0.1}, ["DOT"] = {r = 0, g = 0.8, b = 0.8}, ["DEBUFF"] = {r = 0.8, g = 0.8, b = 0}, ["GREY"] = { r = 0.8, g = 0.8, b = 0.8}, },}; NaturDB = NaturDB or addon.default; addon.killcounter, addon.killtimer, addon.timers, addon.dims, addon.multiplier = 0, nil, {}, {}, 1; ---------------------------------------------------------------------------------------------------- -- BAR GROUPS ---------------------------------------------------------------------------------------------------- addon.bargroups = { ["COOLDOWNS"] = "Cooldowns"; ["DEBUFFS"] = "Debuffs"; ["HOSTILEGAIN"] = "Hostile Gains"; ["FRIENDLYGAIN"] = "Friendly Gains"; ["HOSTILECAST"] = "Hostile Casts"; ["FRIENDLYCAST"] = "Friendly Casts"; }; addon.groups = {}; -- Table for bar anchors addon.CDTable = {}; -- Table for cooldowns ---------------------------------------------------------------------------------------------------- -- REGISTER MEDIA FILES ---------------------------------------------------------------------------------------------------- addon.media:Register("statusbar", "NaturGlaze", [[Interface\AddOns\NaturCombat\media\glaze]]); addon.media:Register("icon", "Target", [[Interface\AddOns\NaturCombat\media\Target]]); addon.media:Register("icon", "Focus", [[Interface\AddOns\NaturCombat\media\Focus]]); ---------------------------------------------------------------------------------------------------- addon.media:Register("sound", "First Blood", [[Interface\AddOns\NaturCombat\media\sounds\firstblood.mp3]]); addon.media:Register("sound", "Dominating", [[Interface\AddOns\NaturCombat\media\sounds\dominating.mp3]]); addon.media:Register("sound", "Killing Spree", [[Interface\AddOns\NaturCombat\media\sounds\killingspree.mp3]]); addon.media:Register("sound", "Unstoppable", [[Interface\AddOns\NaturCombat\media\sounds\unstoppable.mp3]]); addon.media:Register("sound", "Monster Kill", [[Interface\AddOns\NaturCombat\media\sounds\monsterkill.mp3]]); addon.media:Register("sound", "Godlike", [[Interface\AddOns\NaturCombat\media\sounds\godlike.mp3]]); ---------------------------------------------------------------------------------------------------- -- FUNCTIONS ---------------------------------------------------------------------------------------------------- function addon:StripName(str) return string.match(str, "[^-]*"); end; ---------------------------------------------------------------------------------------------------- function addon:CreateBarGroup(name) local group = addon.bar:RegisterGroup(name, addon.media:Fetch("statusbar", NaturDB.Texture)); group:SetScale(NaturDB.Scale); group:SetWidth(NaturDB.Width); group:SetHeight(NaturDB.Height); group:SetAnchorVisible(NaturDB.Lock); group:SetMaxBars(NaturDB.MaxBars); group:SetBarGrowth(NaturDB.Growth); group:SetInvert(NaturDB.Invert); group:SetVerticalSpacing(NaturDB.Vertical); group:SetPoint("CENTER"); group:RegisterOnFade(addon, "OnFade"); return group; end; ---------------------------------------------------------------------------------------------------- function addon:OnFade(barID) if (addon.CDTable[barID]) then addon.CDTable[barID] = nil; end end; ---------------------------------------------------------------------------------------------------- function addon:GetColor(type) -- USED BY OPTIONS if (not NaturDB.Colors[type]) then return; end return NaturDB.Colors[type].r, NaturDB.Colors[type].g, NaturDB.Colors[type].b; end; ---------------------------------------------------------------------------------------------------- function addon:SetColor(type, ...) -- USED BY OPTIONS if (not NaturDB.Colors[type]) then return; end NaturDB.Colors[type] = {r = select(1, ...), g = select(2, ...), b = select(3, ...)}; end; ---------------------------------------------------------------------------------------------------- -- OPTIONS SLASH COMMAND -- /necb, /natur, /nct ---------------------------------------------------------------------------------------------------- local f = CreateFrame("Frame", nil, InterfaceOptionsMenu); f:SetScript("OnShow", function(self) LoadAddOn("NaturOptions"); self:SetScript("OnShow", nil) end); SlashCmdList["NaturCombat"] = function(cmd) if (LoadAddOn("NaturOptions")) then InterfaceOptionsFrame_OpenToFrame("NaturCombat"); end end; SLASH_NaturCombat1 = "/natur"; SLASH_NaturCombat2 = "/necb"; SLASH_NaturCombat3 = "/naturcombat";