Mercurial > wow > turok
diff Turok.lua @ 1:766d8a40a1d6
first commit?
author | Nenue |
---|---|
date | Tue, 15 Dec 2015 08:07:21 -0500 |
parents | |
children | 62f9b057c91b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Turok.lua Tue Dec 15 08:07:21 2015 -0500 @@ -0,0 +1,152 @@ + +-- GLOBALS: DEFAULT_CHAT_FRAME, SlashCmdList, hash_SlashCmdList +local T = LibStub("AceAddon-3.0"):NewAddon("Turok", "AceConsole-3.0", "AceEvent-3.0") +local _G = _G +local rawset = _G.rawset +local time = GetTime() +_G.Turok = T +local print = function(...) + --_G.print('Core', ...) +end + + +T.mods = {} +T:SetDefaultModuleState(true) +T:SetDefaultModuleLibraries("AceEvent-3.0") +T:SetDefaultModulePrototype({OnInitialize = function(mod) + print('CORE', mod:GetName().. ' found') +end}) + +-- propagates parameter data around +function T:LinkTable(parent, child, pname, cname) + local mt = { + __index = function(t,k) + if parent[k] then + t[k] = parent[k] + end + print('|cFFFF8800'.. pname ..'.' .. cname .. '|r.|cFFFFFF00'.. k ..'|r inheriting value at |cFFFF8800' .. pname ..'|r.|cFFFFFF00'.. k..'|r') + return parent[k] + end, + __newindex = function (t, k, v) + rawset(t,k,v) + if type(v) == 'table' then + T:LinkTable(child, v, pname, k) + print('|cFFFF8800'.. pname ..'.' .. cname .. '|r.|cFFFFFF00'.. k ..'|r sub-table created') + end + end + } + print('|cFFFF8800'.. pname ..'.|cFFFFFF00'.. cname ..'|r sub-tables will be retconned') + setmetatable(child, mt) + for k, v in pairs(child) do + if type(v) == 'table' then + T:LinkTable(child, v, cname, k) + end + end +end + +function T:OnInitialize() + + local defaults = { + background_color = {0,0,0,0}, + background_blend = 'BLEND', + foreground_color = {1,1,1,0.5}, + foreground_blend = 'BLEND', + foreground_inset = -1, + width = 250, + height = 100, + alpha = 1, + alpha_ooc = 0.1, + strata = 'LOW', + label_strata = 'HIGH', + label_justifyH = 'LEFT', + label_color = {1, 1, 1, 1}, + label_font = 'turok', + label_size = 14, + label_inset = -2, + label_point = 'LEFT', + label_outline = 'OUTLINE', + anchor = 'CENTER', parent = 'UIParent', anchorTo = 'CENTER', + focusbar = { + foreground_color = {1, 1, 1, 0.7}, + background_color = {0,0,0,0.8}, + width = 300, height = 24, + posX = 0, posY = -150, + }, + } + _G.TurokData = defaults + if not _G.TurokData then + _G.TurokData = defaults + end + + T.db = _G.TurokData + local db = T.db + for k, v in pairs(db) do + if type(v) == 'table' then + T:LinkTable(db, v, 'db', k) + end + end + setmetatable(db, + {__newindex = function (t, k, v) + rawset(t,k,v) + if type(v) == 'table' then + T:LinkTable(db, v, 'db', k) + print('CFG', '|cFFFF0000db|r.|cFF00FFFF' .. k ..'|r created at bottom level') + end + end}) + + options = { + type = 'group', + name = 'Turok', + handler = T, + set = function(info,value) + local k = db[info[1]] + for i = 2, #info-1 do + if type(k[i]) ~= 'table' then + print('fart') + end + + k = k[i] + end + k[info[#info]] = value + end, + get = function(info) + local k = db[info[1]] + for i = 2, #info-1 do + if type(k[i]) ~= 'table' then + print('fart') + end + + k = k[i] + end + return k[info[#info]] + end, + desc = '"Dinosaur" Hunter', + args = { + background_color = { + type = 'color', + name = 'Background Color', + hasAlpha = true, + } + } + } + LibStub("AceConfig-3.0"):RegisterOptionsTable('Turok', options, {"tk"}) + +end + + +function T:OnEnable() + local db = _G.TurokData + + print('I... am Turok') + + self.stats = {} + + + T.focusbar = T:CreateBar('TkFocusBar', db.focusbar) + local fb = T.focusbar + T:AddLabel(fb, db.focusbar) + fb:Update(UnitPower("player"), 0, UnitPowerMax("player")) + T:Bar_SetUpdateHandler(fb, function(self) + T.Bar_Update(fb, UnitPower("player")) + end) +end