WoWInterface SVN NaturCombatTimers

[/] [trunk/] [NaturCombat/] [addon/] [generator.lua] - Rev 25

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";

Compare with Previous | Blame