Mercurial > wow > turok
comparison Turok/Modules/Timer/Timer.Init.lua @ 6:a9b8b0866ece
clear out log jam
author | Nenue |
---|---|
date | Sun, 21 Feb 2016 08:32:53 -0500 |
parents | |
children | 9400a0ff8540 |
comparison
equal
deleted
inserted
replaced
5:8a9a6637f082 | 6:a9b8b0866ece |
---|---|
1 --- ${PACKAGE_NAME} | |
2 -- @file-author@ | |
3 -- @project-revision@ @project-hash@ | |
4 -- @file-revision@ @file-hash@ | |
5 -- Created: 12/28/2015 7:40 AM | |
6 -- | |
7 local _, Tk = ... | |
8 local T = Tk.Addon | |
9 local mod = T:NewModule("TimerControl", "AceTimer-3.0") | |
10 local pairs, ipairs, rawset, getmetatable, setmetatable, type, tostring, tinsert = pairs, ipairs, rawset, getmetatable, setmetatable, type, tostring, tinsert | |
11 local cWord, cNum, cText, cKey = cWord, cNum, cText, cKey | |
12 local print = function(...) print('Timer', ...) end | |
13 local index_mt = { | |
14 __newindex = function(t,k,v) | |
15 rawset(t,k,v) | |
16 if type(v) == 'table' then | |
17 print('new table', cKey(k)) | |
18 setmetatable(v, getmetatable(t)) | |
19 else | |
20 print('new index', cText(k)) | |
21 end | |
22 end | |
23 } | |
24 mod.index = {} | |
25 mod.index.name = setmetatable({}, index_mt) | |
26 mod.index.global = setmetatable({}, index_mt) | |
27 mod.index.preset = {} | |
28 -- dummies | |
29 mod.prototype = { | |
30 status = { | |
31 spellID = {}, | |
32 spellName = {}, | |
33 talentID = {}, | |
34 talentRow = {}, | |
35 talentOffset = {}, | |
36 itemID = {}, | |
37 inventoryID = {}, | |
38 specPage = {}, | |
39 specID = {}, | |
40 unit = {}, | |
41 }, | |
42 trigger = { | |
43 aura = {}, | |
44 cooldown = {}, | |
45 complex = {}, | |
46 }, | |
47 display = { | |
48 icon = {}, | |
49 progressbar = {}, | |
50 }, | |
51 } | |
52 | |
53 Turok.defaults.spirit = { | |
54 global = { | |
55 alpha = 1, | |
56 alpha_ooc = 0.5, | |
57 | |
58 sound_active = '[[Interface\Addons\Turok\Media\sound\link.ogg]]', | |
59 sound_passive = [[Interface\Addons\Turok\Media\sound\Heart.ogg]], | |
60 sound_hidden = [[Interface\Addons\Turok\Media\sound\Electro_-S_Bainbr-7955_hifi.mp3]], | |
61 | |
62 strata = 'LOW', | |
63 anchor = 'CENTER', | |
64 parent = 'UIParent', | |
65 anchorTo = 'CENTER', | |
66 width = 100, | |
67 height = 100, | |
68 x = 0, | |
69 y = 100, | |
70 alpha = 1, | |
71 alpha_ooc = 0.3, | |
72 inverse = false, | |
73 persist = false, | |
74 desaturated = false, | |
75 | |
76 icon = {}, | |
77 | |
78 passive = { | |
79 icon = {} | |
80 }, | |
81 active = { | |
82 inco = {} | |
83 }, | |
84 }, | |
85 | |
86 font = [[Interface\Addons\Turok\Media\font\ArchivoNarrow-Regular.ttf]], | |
87 lefttext = { | |
88 size = 14, | |
89 inset = -2, | |
90 point = 'LEFT', | |
91 outline = 'OUTLINE', | |
92 format = '%n %pd', | |
93 text_color = {1, 1, 1, 1}, | |
94 }, | |
95 containers = { | |
96 }, | |
97 timers = {}, | |
98 } | |
99 | |
100 local tdb = Turok.defaults.spirit.timers | |
101 | |
102 mod.GetInherited = function(dvars, merge, inherited) | |
103 if not inherited then | |
104 inherited = {} | |
105 end | |
106 inherited[merge] = merge | |
107 T.Config_Merge(dvars, merge) | |
108 | |
109 if merge.inherits then | |
110 local t = mod.index.name[merge.inherits] | |
111 if t and not inherited[t] then | |
112 mod.GetInherited(dvars, t, inherited) | |
113 end | |
114 end | |
115 end | |
116 | |
117 local GetClassInfo, GetNumClasses, GetNumSpecializationsForClassID, GetSpecializationInfoForClassID = GetClassInfo, GetNumClasses, GetNumSpecializationsForClassID, GetSpecializationInfoForClassID | |
118 mod.GetIndex = function() | |
119 print(cWord('**** Index Init')) | |
120 | |
121 local index = mod.index | |
122 local globalIndex = index.global | |
123 local nameIndex = index.name | |
124 local tdb = TurokData.spirit.timers | |
125 local classID = {} | |
126 local className = {} | |
127 local classSpecID = {} | |
128 local specIDClass = {} | |
129 | |
130 for id=1, GetNumClasses() do | |
131 local _, name = GetClassInfo(id) | |
132 classID[name] = id | |
133 className[id] = name | |
134 index[name] = setmetatable({}, index_mt) | |
135 | |
136 classSpecID[id] = {} | |
137 for h=1, GetNumSpecializationsForClassID(id) do | |
138 local specID, specName = GetSpecializationInfoForClassID(id, h) | |
139 classSpecID[id][h] = specID | |
140 specIDClass[specID] = id | |
141 end | |
142 end | |
143 | |
144 if not tdb then | |
145 print('Missing config table.') | |
146 return | |
147 end | |
148 --- Setup virtuals | |
149 for setID, entry in ipairs(tdb) do | |
150 if entry.virtual then | |
151 print('loading virtual set:', entry.name) | |
152 globalIndex[setID] = entry | |
153 nameIndex[entry.name or ('noname'.. setID)] = entry | |
154 end | |
155 end | |
156 | |
157 --- Starting readin' | |
158 for setID, entry in ipairs(tdb) do | |
159 if not entry.virtual then | |
160 | |
161 print('* .index.global['.. setID..'] =', entry.name) | |
162 local dvars = T.Config_Push({}, entry, nil, cKey('['..setID..']')..'.'..cWord('dvars')) | |
163 dvars.name = entry.name | |
164 globalIndex[setID] = dvars | |
165 | |
166 local name = dvars.name or ('noname'..setID) | |
167 nameIndex[name] = entry | |
168 print('* .timersByName['..name..'] =', setID, entry.setID) | |
169 | |
170 --- Combine with any inherited templates | |
171 if dvars.inherits and nameIndex[dvars.inherits] then | |
172 print('* Adding heritable data from', cText(dvars.inherits)) | |
173 mod.GetInherited(dvars, nameIndex[dvars.inherits], {[dvars] = dvars}) | |
174 --T.Config_Merge(dvars, nameIndex[dvars.inherits], dvars, cKey('['..setID..']')..'.'..cWord('dvars')) | |
175 end | |
176 -- class index | |
177 if not (dvars.playerClass or dvars.specID) then | |
178 for id, class in pairs(className) do | |
179 index[class][setID] = dvars | |
180 end | |
181 print('* indexed globally') | |
182 else | |
183 if dvars.playerClass then | |
184 if type(dvars.playerClass) ~= 'table' then | |
185 dvars.playerClass = {dvars.playerClass } | |
186 end | |
187 for i, playerClass in ipairs(dvars.playerClass) do | |
188 index[playerClass][setID] = dvars | |
189 print('* applying playerClass entry '..cNum(i)..': '..cWord(playerClass)) | |
190 end | |
191 end | |
192 | |
193 if dvars.specID then | |
194 if type(dvars.specID) ~= 'table' then | |
195 dvars.specID = {dvars.specID } | |
196 end | |
197 for i, specID in ipairs(dvars.specID) do | |
198 print('* applying globalSpecID entry '..cNum(i)..': '..cNum(specID)..' -> '..cWord(className[specIDClass[dvars.specID]])) | |
199 index[className[specIDClass[specID]]][setID] = dvars | |
200 end | |
201 end | |
202 end | |
203 end | |
204 end | |
205 end |