Mercurial > wow > turok
comparison Turok.lua @ 1:766d8a40a1d6
first commit?
author | Nenue |
---|---|
date | Tue, 15 Dec 2015 08:07:21 -0500 |
parents | |
children | 62f9b057c91b |
comparison
equal
deleted
inserted
replaced
0:ebbcc148a407 | 1:766d8a40a1d6 |
---|---|
1 | |
2 -- GLOBALS: DEFAULT_CHAT_FRAME, SlashCmdList, hash_SlashCmdList | |
3 local T = LibStub("AceAddon-3.0"):NewAddon("Turok", "AceConsole-3.0", "AceEvent-3.0") | |
4 local _G = _G | |
5 local rawset = _G.rawset | |
6 local time = GetTime() | |
7 _G.Turok = T | |
8 local print = function(...) | |
9 --_G.print('Core', ...) | |
10 end | |
11 | |
12 | |
13 T.mods = {} | |
14 T:SetDefaultModuleState(true) | |
15 T:SetDefaultModuleLibraries("AceEvent-3.0") | |
16 T:SetDefaultModulePrototype({OnInitialize = function(mod) | |
17 print('CORE', mod:GetName().. ' found') | |
18 end}) | |
19 | |
20 -- propagates parameter data around | |
21 function T:LinkTable(parent, child, pname, cname) | |
22 local mt = { | |
23 __index = function(t,k) | |
24 if parent[k] then | |
25 t[k] = parent[k] | |
26 end | |
27 print('|cFFFF8800'.. pname ..'.' .. cname .. '|r.|cFFFFFF00'.. k ..'|r inheriting value at |cFFFF8800' .. pname ..'|r.|cFFFFFF00'.. k..'|r') | |
28 return parent[k] | |
29 end, | |
30 __newindex = function (t, k, v) | |
31 rawset(t,k,v) | |
32 if type(v) == 'table' then | |
33 T:LinkTable(child, v, pname, k) | |
34 print('|cFFFF8800'.. pname ..'.' .. cname .. '|r.|cFFFFFF00'.. k ..'|r sub-table created') | |
35 end | |
36 end | |
37 } | |
38 print('|cFFFF8800'.. pname ..'.|cFFFFFF00'.. cname ..'|r sub-tables will be retconned') | |
39 setmetatable(child, mt) | |
40 for k, v in pairs(child) do | |
41 if type(v) == 'table' then | |
42 T:LinkTable(child, v, cname, k) | |
43 end | |
44 end | |
45 end | |
46 | |
47 function T:OnInitialize() | |
48 | |
49 local defaults = { | |
50 background_color = {0,0,0,0}, | |
51 background_blend = 'BLEND', | |
52 foreground_color = {1,1,1,0.5}, | |
53 foreground_blend = 'BLEND', | |
54 foreground_inset = -1, | |
55 width = 250, | |
56 height = 100, | |
57 alpha = 1, | |
58 alpha_ooc = 0.1, | |
59 strata = 'LOW', | |
60 label_strata = 'HIGH', | |
61 label_justifyH = 'LEFT', | |
62 label_color = {1, 1, 1, 1}, | |
63 label_font = 'turok', | |
64 label_size = 14, | |
65 label_inset = -2, | |
66 label_point = 'LEFT', | |
67 label_outline = 'OUTLINE', | |
68 anchor = 'CENTER', parent = 'UIParent', anchorTo = 'CENTER', | |
69 focusbar = { | |
70 foreground_color = {1, 1, 1, 0.7}, | |
71 background_color = {0,0,0,0.8}, | |
72 width = 300, height = 24, | |
73 posX = 0, posY = -150, | |
74 }, | |
75 } | |
76 _G.TurokData = defaults | |
77 if not _G.TurokData then | |
78 _G.TurokData = defaults | |
79 end | |
80 | |
81 T.db = _G.TurokData | |
82 local db = T.db | |
83 for k, v in pairs(db) do | |
84 if type(v) == 'table' then | |
85 T:LinkTable(db, v, 'db', k) | |
86 end | |
87 end | |
88 setmetatable(db, | |
89 {__newindex = function (t, k, v) | |
90 rawset(t,k,v) | |
91 if type(v) == 'table' then | |
92 T:LinkTable(db, v, 'db', k) | |
93 print('CFG', '|cFFFF0000db|r.|cFF00FFFF' .. k ..'|r created at bottom level') | |
94 end | |
95 end}) | |
96 | |
97 options = { | |
98 type = 'group', | |
99 name = 'Turok', | |
100 handler = T, | |
101 set = function(info,value) | |
102 local k = db[info[1]] | |
103 for i = 2, #info-1 do | |
104 if type(k[i]) ~= 'table' then | |
105 print('fart') | |
106 end | |
107 | |
108 k = k[i] | |
109 end | |
110 k[info[#info]] = value | |
111 end, | |
112 get = function(info) | |
113 local k = db[info[1]] | |
114 for i = 2, #info-1 do | |
115 if type(k[i]) ~= 'table' then | |
116 print('fart') | |
117 end | |
118 | |
119 k = k[i] | |
120 end | |
121 return k[info[#info]] | |
122 end, | |
123 desc = '"Dinosaur" Hunter', | |
124 args = { | |
125 background_color = { | |
126 type = 'color', | |
127 name = 'Background Color', | |
128 hasAlpha = true, | |
129 } | |
130 } | |
131 } | |
132 LibStub("AceConfig-3.0"):RegisterOptionsTable('Turok', options, {"tk"}) | |
133 | |
134 end | |
135 | |
136 | |
137 function T:OnEnable() | |
138 local db = _G.TurokData | |
139 | |
140 print('I... am Turok') | |
141 | |
142 self.stats = {} | |
143 | |
144 | |
145 T.focusbar = T:CreateBar('TkFocusBar', db.focusbar) | |
146 local fb = T.focusbar | |
147 T:AddLabel(fb, db.focusbar) | |
148 fb:Update(UnitPower("player"), 0, UnitPowerMax("player")) | |
149 T:Bar_SetUpdateHandler(fb, function(self) | |
150 T.Bar_Update(fb, UnitPower("player")) | |
151 end) | |
152 end |