lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [trunk/] [KragenPlugs/] [KragenBars/] [ClassBar.lua] - Blame information for rev 127

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 Kragenwar-3044
import "Turbine.UI";
2 Kragenwar-3044
import "Turbine.UI.Lotro";
3 Kragenwar-3044
import "Turbine.Gameplay";
4 Kragenwar-3044
import "KragenPlugs.Utils";
5 Kragenwar-3044
import "KragenPlugs.KragenBars";
6 Kragenwar-3044
 
7 Kragenwar-3044
ClassBar = class( );
8 Kragenwar-3044
 
9 Kragenwar-3044
function ClassBar:Constructor()
10 Kragenwar-3044
 
11 Kragenwar-3044
        -- inialize the setupWindow
12 Kragenwar-3044
        self.setup = SetupWindow();
13 96 Valdacil-446
        self.setupglobals = self.setup.setupglobals;
14 6 Kragenwar-3044
        self.setupbb = self.setup.setupbb;
15 Kragenwar-3044
        self.setupf = self.setup.setupf;
16 Kragenwar-3044
        self.setupqs = self.setup.setupqs;
17 Kragenwar-3044
 
18 Kragenwar-3044
        -- inialize tables
19 Kragenwar-3044
        self.windows = { };
20 Kragenwar-3044
        self.bars = { };
21 Kragenwar-3044
        self.skills = { };
22 Kragenwar-3044
        self.multi = { };
23 Kragenwar-3044
 
24 53 Kragenwar-3044
        self.barlist = { };
25 Kragenwar-3044
        self.effectlist = {};
26 Kragenwar-3044
        self.barcount = 0;
27 74 Valdacil-446
        self.currentedit = nil;
28 Valdacil-446
        self.currentkey = nil;
29 Valdacil-446
 
30 Valdacil-446
        -- SET AND UPDATE DEFAULT SETTINGS
31 Valdacil-446
    if (not settings.class) then
32 Valdacil-446
        settings.class = vars.playerclass;
33 Valdacil-446
        self:DefaultSettings();
34 Valdacil-446
    else
35 Valdacil-446
        self.settings = settings.classinfo;
36 Valdacil-446
        if (settings.vers ~= vars.vers) then
37 Valdacil-446
                self:UpdateSettings();
38 Valdacil-446
        end
39 Valdacil-446
    end
40 53 Kragenwar-3044
 
41 6 Kragenwar-3044
        self.setup:SetWantsKeyEvents(true);
42 Kragenwar-3044
 
43 Kragenwar-3044
        self.setup.KeyDown = function(sender, args)
44 Kragenwar-3044
        if args.Action == 0x100000B3 then
45 Kragenwar-3044
                        self.setup:SetWantsUpdates(true);
46 Kragenwar-3044
                end
47 Kragenwar-3044
        end
48 Kragenwar-3044
 
49 Kragenwar-3044
        self.setup.Update = function(sender, args)
50 Kragenwar-3044
        for k,v in pairs(self.skills) do
51 Kragenwar-3044
                        v:RefreshBorders();
52 Kragenwar-3044
                end
53 Kragenwar-3044
                self.setup:SetWantsUpdates(false);
54 Kragenwar-3044
        end
55 Kragenwar-3044
 
56 63 Kragenwar-3044
        -- BUILD ALL WINDOWS AND USERCONF BARS
57 Kragenwar-3044
        for k,v in pairs(self.settings.userconf) do
58 Kragenwar-3044
                self.barlist[v.id] = k;
59 Kragenwar-3044
                self.windows[k] = SkillWindow(v);
60 Kragenwar-3044
                self.bars[k] = SkillBar(self.windows[k], 1, 1, v.size[1], v.size[2], true, false);
61 Kragenwar-3044
                self.barcount = self.barcount + 1;
62 Kragenwar-3044
        end
63 Kragenwar-3044
 
64 Kragenwar-3044
        for k,v in pairs(self.settings.preconf) do
65 Kragenwar-3044
                self.barlist[v.id] = k;
66 Kragenwar-3044
                self.windows[k] = SkillWindow(v);
67 Kragenwar-3044
                self.barcount = self.barcount + 1;
68 Kragenwar-3044
        end
69 Kragenwar-3044
 
70 6 Kragenwar-3044
        -- Combat Event
71 Kragenwar-3044
        AddCallback(vars.player, "InCombatChanged", function(sender, args)
72 Kragenwar-3044
                KragenBars:CombatChange(vars.player:IsInCombat());
73 Kragenwar-3044
        end);
74 Kragenwar-3044
 
75 Kragenwar-3044
        -- Effect Events
76 Kragenwar-3044
    AddCallback(vars.effects, "EffectAdded", function(sender, args)
77 Kragenwar-3044
                KragenBars:AddEffect( args.Index );
78 Kragenwar-3044
        end);
79 Kragenwar-3044
 
80 Kragenwar-3044
        AddCallback(vars.effects, "EffectRemoved", function(sender, args)
81 Kragenwar-3044
                if (args.Effect ~= nil) then
82 Kragenwar-3044
                        KragenBars:RemoveEffect( args.Effect );
83 Kragenwar-3044
                end
84 Kragenwar-3044
        end);
85 Kragenwar-3044
 
86 Kragenwar-3044
end
87 Kragenwar-3044
 
88 Kragenwar-3044
-- Index and Position Bars
89 Kragenwar-3044
function ClassBar:InitBars()
90 48 Kragenwar-3044
        self.DefineEffectList();
91 Kragenwar-3044
 
92 6 Kragenwar-3044
        for k,v in pairs(self.bars) do
93 Kragenwar-3044
                v.index = k;
94 Kragenwar-3044
        end
95 Kragenwar-3044
 
96 Kragenwar-3044
        if(settings.skilldata ~=nil) then
97 Kragenwar-3044
                for k,v in pairs(self.skills) do
98 Kragenwar-3044
                        if (settings.skilldata[k] ~= nil) then
99 Kragenwar-3044
                            local data = settings.skilldata[k];
100 Kragenwar-3044
                            data.parent = self.bars[settings.skilldata[k].parent]
101 Kragenwar-3044
                                v:LoadPosition(data);
102 Kragenwar-3044
                        end
103 82 Kragenwar-3044
                        if (v.parent ~= nil) then
104 Kragenwar-3044
                                v.parent:AddSkill(v);
105 Kragenwar-3044
                        end
106 Kragenwar-3044
                        v:RefreshBorders();
107 6 Kragenwar-3044
                end
108 Kragenwar-3044
        end
109 Kragenwar-3044
 
110 Kragenwar-3044
        if(settings.multidata ~=nil) then
111 Kragenwar-3044
                for k,v in pairs(self.multi) do
112 Kragenwar-3044
                        if (settings.multidata[k] ~= nil) then
113 Kragenwar-3044
                                local data = settings.multidata[k];
114 Kragenwar-3044
                            data.parent = self.bars[settings.multidata[k].parent]
115 Kragenwar-3044
                                v:LoadPosition(data);
116 Kragenwar-3044
                        end
117 82 Kragenwar-3044
                        if (v.parent ~= nil) then
118 Kragenwar-3044
                                v.parent:AddSkill(v);
119 Kragenwar-3044
                        end
120 6 Kragenwar-3044
                end
121 Kragenwar-3044
        end
122 Kragenwar-3044
 
123 82 Kragenwar-3044
        if (settings.customslots ~= nil) then
124 Kragenwar-3044
                self.customslots = { };
125 Kragenwar-3044
                for k,v in pairs(settings.customslots) do
126 Kragenwar-3044
                        if (v.parent ~= nil) then
127 Kragenwar-3044
                                self.customslots[k] = ItemSlot(self.bars[v.parent], v.x, v.y, true, {active=true,data=v.data,type=v.type});
128 Kragenwar-3044
                        else
129 Kragenwar-3044
                                self.customslots[k] = ItemSlot(limbo, v.x, v.y, true, {active=true,data=v.data,type=v.type});
130 Kragenwar-3044
                        end
131 Kragenwar-3044
                        if (v.parent ~= nil) then
132 Kragenwar-3044
                                self.bars[v.parent]:AddSkill(self.customslots[k]);
133 Kragenwar-3044
                        end
134 Kragenwar-3044
                end
135 Kragenwar-3044
        end
136 Kragenwar-3044
 
137 6 Kragenwar-3044
        for k,v in pairs(self.windows) do
138 Kragenwar-3044
                v:SetVisible(v.active);
139 Kragenwar-3044
        end
140 Kragenwar-3044
 
141 Kragenwar-3044
        for i = 1, vars.effects:GetCount() do
142 Kragenwar-3044
                self:AddEffect(i);
143 94 Kragenwar-3044
        end
144 63 Kragenwar-3044
 
145 95 Kragenwar-3044
        self.setup.VisibleChanged = function(sender, args)
146 Kragenwar-3044
                self:EditBars(self.setup:IsVisible());
147 Kragenwar-3044
        end
148 Kragenwar-3044
 
149 94 Kragenwar-3044
        if (settings.classinfo == nil) then self:ShowSetup() end;
150 Kragenwar-3044
        self:SaveSettings();
151 Kragenwar-3044
        kbbutton = KBButton(settings.kbbutton.x, settings.kbbutton.y);
152 Kragenwar-3044
 
153 74 Valdacil-446
end
154 Valdacil-446
 
155 Valdacil-446
function ClassBar:SaveBarOptions(index)
156 Valdacil-446
        self.windows[index]:SetBackColor(Turbine.UI.Color(nil));
157 Valdacil-446
        self.setupbb.barsnamebox:SetWantsUpdates(false);
158 Valdacil-446
        self.setupbb.barsactive:SetWantsUpdates(false);
159 Valdacil-446
        self.setupbb.barscombat:SetWantsUpdates(false);
160 Valdacil-446
        self.setupbb.barswidth:SetWantsUpdates(false);
161 Valdacil-446
        self.setupbb.barsheight:SetWantsUpdates(false);
162 Valdacil-446
        self.windows[index].dragBar:SetRotator(true);
163 Valdacil-446
        self.windows[index].dragBar:SetRotatorOffset(3, 23);
164 Valdacil-446
 
165 Valdacil-446
end
166 Valdacil-446
 
167 Valdacil-446
function ClassBar:SetBarOptions(index)
168 Valdacil-446
        if (self.settings.preconf[self.barlist[index]] ~= nil) then
169 Valdacil-446
                self.currentedit = self.settings.preconf[self.barlist[index]];
170 Valdacil-446
                self.currentkey = self.barlist[index];
171 Valdacil-446
                self.setupbb.barsnamebox:SetText(self.currentedit.name);
172 Valdacil-446
                self.setupbb.barsnamebox:SetEnabled(false);
173 Valdacil-446
                self.setupbb.barsnamebox:SetVisible(true);
174 Valdacil-446
                self.setupbb.barsnamebox:SetWantsUpdates(false);
175 Valdacil-446
                self.setupbb.barsactive:SetChecked(self.currentedit.active);
176 Valdacil-446
                self.setupbb.barsactive:SetVisible(true);
177 Valdacil-446
                self.setupbb.barsactive:SetWantsUpdates(true);
178 Valdacil-446
                self.setupbb.barscombat:SetVisible(true);
179 Valdacil-446
                self.setupbb.barscombat:SetSelection(self.windows[self.currentkey]:GetCombat());
180 Valdacil-446
                self.setupbb.barswidth:SetVisible(false);
181 Valdacil-446
                self.setupbb.barswidth:SetWantsUpdates(false);
182 Valdacil-446
                self.setupbb.barsheight:SetVisible(false);
183 Valdacil-446
                self.setupbb.barsheight:SetWantsUpdates(false);
184 Valdacil-446
                self.setupbb.barsbuttonremove:SetVisible(false);
185 Valdacil-446
                self.windows[self.currentkey]:SetBackColor(Turbine.UI.Color( 0, 0, 1 ));
186 Valdacil-446
                self.windows[self.currentkey].dragBar:SetRotator(false);
187 94 Kragenwar-3044
                --self:EditBar(self.currentkey);
188 74 Valdacil-446
        elseif (self.settings.userconf[self.barlist[index]] ~= nil) then
189 Valdacil-446
                self.currentedit = self.settings.userconf[self.barlist[index]];
190 Valdacil-446
                self.currentkey = self.barlist[index];
191 Valdacil-446
                self.setupbb.barsnamebox:SetText(self.currentedit.name);
192 Valdacil-446
                self.setupbb.barsnamebox:SetVisible(true);
193 Valdacil-446
                self.setupbb.barsnamebox:SetWantsUpdates(true);
194 Valdacil-446
                self.setupbb.barsnamebox:SetEnabled(true);
195 Valdacil-446
                self.setupbb.barsactive:SetChecked(self.currentedit.active);
196 Valdacil-446
                self.setupbb.barsactive:SetVisible(true);
197 Valdacil-446
                self.setupbb.barsactive:SetWantsUpdates(true);
198 Valdacil-446
                self.setupbb.barscombat:SetVisible(true);
199 Valdacil-446
                self.setupbb.barscombat:SetSelection(self.windows[self.currentkey]:GetCombat());
200 Valdacil-446
                self.setupbb.barswidth:SetValue(self.windows[self.currentkey].width);
201 Valdacil-446
                self.setupbb.barswidth:SetVisible(true);
202 Valdacil-446
                self.setupbb.barswidth:SetWantsUpdates(true);
203 Valdacil-446
                self.setupbb.barsheight:SetValue(self.windows[self.currentkey].height);
204 Valdacil-446
                self.setupbb.barsheight:SetVisible(true);
205 Valdacil-446
                self.setupbb.barsheight:SetWantsUpdates(true);
206 Valdacil-446
                self.setupbb.barsbuttonremove:SetVisible(true);
207 Valdacil-446
                self.windows[self.currentkey]:SetBackColor(Turbine.UI.Color( 0, 0, 1 ));
208 Valdacil-446
                self.windows[self.currentkey].dragBar:SetRotator(false);
209 94 Kragenwar-3044
                --self:EditBar(self.currentkey);
210 74 Valdacil-446
        else
211 Valdacil-446
                self.setupbb.barsnamebox:SetVisible(false);
212 Valdacil-446
                self.setupbb.barsnamebox:SetWantsUpdates(false);
213 Valdacil-446
                self.setupbb.barsactive:SetVisible(false);
214 Valdacil-446
                self.setupbb.barsactive:SetWantsUpdates(false);
215 Valdacil-446
                self.setupbb.barscombat:SetVisible(false);
216 Valdacil-446
                self.setupbb.barswidth:SetVisible(false);
217 Valdacil-446
                self.setupbb.barswidth:SetWantsUpdates(false);
218 Valdacil-446
                self.setupbb.barsheight:SetVisible(false);
219 Valdacil-446
                self.setupbb.barsheight:SetWantsUpdates(false);
220 Valdacil-446
                self.setupbb.barsbuttonremove:SetVisible(false);
221 94 Kragenwar-3044
                --self:EditBar(nil);
222 74 Valdacil-446
                self.currentedit = nil;
223 Valdacil-446
                self.currentkey = nil;
224 Valdacil-446
        end
225 Valdacil-446
 
226 Valdacil-446
end
227 Valdacil-446
 
228 Valdacil-446
function ClassBar:ShowSetup()
229 Valdacil-446
        self.setup:SetVisible(true);
230 85 Valdacil-446
        if (vars.playerclass == "Loremaster") then
231 101 Kragenwar-3044
                self:SetupPets();
232 85 Valdacil-446
        end
233 74 Valdacil-446
 
234 Valdacil-446
        self.setupbb.barslist.listBox:ClearItems();
235 Valdacil-446
        self.setupbb.barslist:AddItem(" ", 0);
236 63 Kragenwar-3044
        for k,v in pairs(self.barlist) do
237 Kragenwar-3044
                if (self.settings.preconf[v] ~= nil) then
238 74 Valdacil-446
                        self.setupbb.barslist:AddItem(self.settings.preconf[v].name, k);
239 63 Kragenwar-3044
                elseif (self.settings.userconf[v] ~= nil) then
240 74 Valdacil-446
                        self.setupbb.barslist:AddItem(self.settings.userconf[v].name, k);
241 63 Kragenwar-3044
                end
242 Kragenwar-3044
        end
243 74 Valdacil-446
        self:SetBarOptions(self.currentkey);
244 63 Kragenwar-3044
 
245 74 Valdacil-446
        self.setupbb.barslist.SelectedIndexChanged = function(sender, args)
246 Valdacil-446
        if (self.currentkey ~= nil) then
247 Valdacil-446
            self:SaveBarOptions(self.currentkey);
248 Valdacil-446
        end
249 Valdacil-446
                self.currentkey = args.selection;
250 Valdacil-446
                self:SetBarOptions(self.currentkey);
251 Valdacil-446
    end
252 Valdacil-446
 
253 Valdacil-446
    self.setupbb.barsbuttonnew.Click = function(sender, args)
254 63 Kragenwar-3044
        local newbar = self:CreateBar();
255 74 Valdacil-446
                self.setupbb.barslist:AddItem(self.settings.userconf[self.barlist[newbar]].name, newbar);
256 Valdacil-446
                self.setupbb.barslist:SetSelection(newbar);
257 63 Kragenwar-3044
    end
258 Kragenwar-3044
 
259 74 Valdacil-446
        self.setupbb.barsbuttonremove.Click = function(sender, args)
260 Valdacil-446
                local deletebar = self.currentkey;
261 Valdacil-446
                self.setupbb.barslist:SetSelection(0);
262 Valdacil-446
                self:DeleteBar(deletebar);
263 Valdacil-446
                self.setupbb.barslist.listBox:ClearItems();
264 Valdacil-446
                self.setupbb.barslist:AddItem(" ", 0);
265 63 Kragenwar-3044
                for k,v in pairs(self.barlist) do
266 74 Valdacil-446
                        if (self.settings.preconf[v] ~= nil) then
267 Valdacil-446
                                self.setupbb.barslist:AddItem(self.settings.preconf[v].name, k);
268 Valdacil-446
                        elseif (self.settings.userconf[v] ~= nil) then
269 Valdacil-446
                                self.setupbb.barslist:AddItem(self.settings.userconf[v].name, k);
270 63 Kragenwar-3044
                        end
271 Kragenwar-3044
                end
272 66 Kragenwar-3044
    end
273 74 Valdacil-446
 
274 Valdacil-446
    self.setupbb.barsnamebox.Update = function(sender, args)
275 Valdacil-446
                self:RenameBar(self.currentkey, self.setupbb.barsnamebox:GetText());
276 Valdacil-446
        self.setupbb.barslist:UpdateSelectionText(self.setupbb.barsnamebox:GetText());
277 Valdacil-446
    end
278 Valdacil-446
 
279 Valdacil-446
        self.setupbb.barsactive.Update = function(sender, args)
280 95 Kragenwar-3044
                if (self.currentedit ~= nil) then self.currentedit.active = self.setupbb.barsactive:IsChecked(); end
281 Kragenwar-3044
                if (self.windows[self.currentkey] ~= nil) then self.windows[self.currentkey]:Refresh(self.setupbb.barsactive:IsChecked()); end
282 63 Kragenwar-3044
        end
283 Kragenwar-3044
 
284 74 Valdacil-446
        self.setupbb.barscombat.SelectedIndexChanged = function(sender, args)
285 63 Kragenwar-3044
                self:BarCombat(self.currentkey, args.selection);
286 Kragenwar-3044
        end
287 74 Valdacil-446
 
288 Valdacil-446
        self.setupbb.barswidth.Update = function(sender, args)
289 Valdacil-446
                self.currentedit.size = { self.setupbb.barswidth:GetValue(), self.setupbb.barsheight:GetValue() };
290 63 Kragenwar-3044
                self:ResizeBar(self.currentkey, self.currentedit.size);
291 Kragenwar-3044
        end
292 74 Valdacil-446
 
293 Valdacil-446
        self.setupbb.barsheight.Update = function(sender, args)
294 Valdacil-446
                self.currentedit.size = { self.setupbb.barswidth:GetValue(), self.setupbb.barsheight:GetValue() };
295 63 Kragenwar-3044
                self:ResizeBar(self.currentkey, self.currentedit.size);
296 Kragenwar-3044
        end
297 Kragenwar-3044
 
298 96 Valdacil-446
        self.setupglobals.opacityslider:SetValue(settings.opacity * 100);
299 Valdacil-446
        self.setupglobals.checkboxlock:SetChecked(settings.lockslots);
300 Valdacil-446
        self.setupglobals.checkboxgrid:SetChecked(settings.snaptogrid);
301 Valdacil-446
        if (settings.advanceonclick == nil) then
302 99 Kragenwar-3044
                self.setupglobals.checkboxmulticlick:SetChecked(false);
303 Kragenwar-3044
        else
304 96 Valdacil-446
                self.setupglobals.checkboxmulticlick:SetChecked(settings.advanceonclick);
305 Valdacil-446
        end
306 75 Valdacil-446
        if (settings.gridspacing == nil) then
307 96 Valdacil-446
                self.setupglobals.gridsizeslider:SetValue(36);
308 75 Valdacil-446
        else
309 96 Valdacil-446
                self.setupglobals.gridsizeslider:SetValue(settings.gridspacing * 36 / 35);
310 75 Valdacil-446
        end
311 96 Valdacil-446
        self.setupglobals.combolangbox:SetSelection(settings.language);
312 63 Kragenwar-3044
 
313 127 Valdacil-446
        -- Prep Features Window
314 Valdacil-446
        if (self.setupf.titlebars[1] == nil) then
315 Valdacil-446
                local rownumber = 0;
316 Valdacil-446
                local countbox = 0;
317 Valdacil-446
 
318 Valdacil-446
                self.setupf:AddTitleBar("Traits");
319 Valdacil-446
                for k,v in pairs(self.settings.traits) do countbox = countbox + 1 end
320 Valdacil-446
                if (math.mod(countbox, 2) == 0) then
321 Valdacil-446
                        rownumber = countbox / 2;
322 Valdacil-446
                else
323 Valdacil-446
                        rownumber = (countbox + 1) / 2;
324 Valdacil-446
                end
325 Valdacil-446
                for i = 1,rownumber do self.setupf:AddCheckboxRow(self.setupf.traits) end
326 Valdacil-446
 
327 Valdacil-446
                countbox = 0;
328 Valdacil-446
                self.setupf:AddTitleBar("Features");
329 Valdacil-446
                for k,v in pairs(self.settings.features) do countbox = countbox + 1 end
330 Valdacil-446
                if (math.mod(countbox, 2) == 0) then
331 Valdacil-446
                        rownumber = countbox / 2;
332 Valdacil-446
                else
333 Valdacil-446
                        rownumber = (countbox + 1) / 2;
334 Valdacil-446
                end
335 Valdacil-446
                for i = 1,rownumber do self.setupf:AddCheckboxRow(self.setupf.features) end
336 Valdacil-446
 
337 Valdacil-446
                countbox = 0;
338 Valdacil-446
                self.setupf:AddTitleBar("Defaults");
339 Valdacil-446
                for k,v in pairs(self.settings.defaults) do countbox = countbox + 1 end
340 Valdacil-446
                for i = 1,countbox do self.setupf:AddComboBox(self.setupf.defaults) end
341 Valdacil-446
        end
342 Valdacil-446
 
343 63 Kragenwar-3044
        for k,v in pairs(self.settings.traits) do               self.setupf.traits[v.id]:SetActive(v.name, v.active) end
344 Kragenwar-3044
        for k,v in pairs(self.settings.features) do     self.setupf.features[v.id]:SetActive(v.name, v.active) end
345 Kragenwar-3044
        for k,v in pairs(self.settings.defaults) do
346 Kragenwar-3044
                self.setupf.defaults[v.id].combobox.listBox:ClearItems();
347 65 Valdacil-446
                self.setupf.defaults[v.id].label:SetText(v.name);
348 63 Kragenwar-3044
                self.setupf.defaults[v.id].label:SetVisible(true);
349 Kragenwar-3044
                for key,value in pairs(v.list) do
350 Kragenwar-3044
                        self.setupf.defaults[v.id].combobox:AddItem(value, key);
351 Kragenwar-3044
                end
352 Kragenwar-3044
                self.setupf.defaults[v.id].combobox:SetVisible(true);
353 Kragenwar-3044
                self.setupf.defaults[v.id].combobox:SetSelection(v.selected);
354 Kragenwar-3044
        end
355 Kragenwar-3044
        for k,v in pairs(self.settings.quickslots) do   self.setupqs:ActivateQuickslot(self.setupqs.quickslots[v.id], v.name, v.active, v.type, v.data) end
356 Kragenwar-3044
end
357 Kragenwar-3044
 
358 Kragenwar-3044
function ClassBar:SetupClosing()
359 74 Valdacil-446
        self.setupbb.barslist:SetSelection(0);
360 Valdacil-446
 
361 85 Valdacil-446
        if (vars.playerclass == "Loremaster") then
362 Valdacil-446
                KragenBars:SetupPetsClosing();
363 Valdacil-446
        end
364 Valdacil-446
 
365 96 Valdacil-446
        settings.opacity = (self.setupglobals.opacityslider:GetValue() / 100);
366 Valdacil-446
        settings.lockslots = self.setupglobals.checkboxlock:IsChecked();
367 Valdacil-446
        settings.snaptogrid = self.setupglobals.checkboxgrid:IsChecked();
368 Valdacil-446
        settings.advanceonclick = self.setupglobals.checkboxmulticlick:IsChecked();
369 Valdacil-446
        settings.language = self.setupglobals.combolangbox:GetSelection();
370 Valdacil-446
        settings.gridspacing = (self.setupglobals.gridsizeslider:GetValue() * 35 / 36);
371 63 Kragenwar-3044
 
372 74 Valdacil-446
        -- for k, v in pairs (self.settings.preconf) do         v.active = self.setupbb.buttonbars[v.id]:IsChecked() end
373 Valdacil-446
        -- for k, v in pairs (self.settings.userconf) do        v.active = self.setupbb.buttonbars[v.id]:IsChecked() end
374 63 Kragenwar-3044
        for k, v in pairs (self.settings.traits) do     v.active = self.setupf.traits[v.id]:IsChecked() end
375 Kragenwar-3044
        for k, v in pairs (self.settings.features) do   v.active = self.setupf.features[v.id]:IsChecked() end
376 Kragenwar-3044
        for k, v in pairs (self.settings.defaults) do   v.selected = self.setupf.defaults[v.id].combobox:GetSelection() end
377 Kragenwar-3044
        for k, v in pairs (self.settings.quickslots) do
378 Kragenwar-3044
                if (self.setupqs.quickslots[v.id].quickslot:GetShortcut():GetData() ~= "" ) then
379 Kragenwar-3044
                        v.active = self.setupqs.quickslots[v.id].checkbox:IsChecked();
380 Kragenwar-3044
                        v.type = self.setupqs.quickslots[v.id].quickslot:GetShortcut():GetType();
381 Kragenwar-3044
                        v.data = self.setupqs.quickslots[v.id].quickslot:GetShortcut():GetData();
382 Kragenwar-3044
                else
383 Kragenwar-3044
                        v.active = false;
384 Kragenwar-3044
                        v.type = Turbine.UI.Lotro.ShortcutType.Undefined;
385 Kragenwar-3044
                        v.data = "";
386 Kragenwar-3044
                end
387 Kragenwar-3044
        end
388 Kragenwar-3044
 
389 Kragenwar-3044
        self:SaveSettings();
390 Kragenwar-3044
        self:Refresh();
391 Kragenwar-3044
end
392 Kragenwar-3044
 
393 6 Kragenwar-3044
-- Swap Slots
394 82 Kragenwar-3044
function ClassBar:SwapSlots(ref, code, type, item)
395 6 Kragenwar-3044
        local swap = nil;
396 Kragenwar-3044
        local swaptype = 1;
397 Kragenwar-3044
        if (not settings.lockslots) then
398 Kragenwar-3044
                for k,v in pairs(self.skills) do
399 66 Kragenwar-3044
                        if (not item) then
400 78 Kragenwar-3044
                                if (v:CheckShortcut(code)) then
401 66 Kragenwar-3044
                                        swap = v;
402 Kragenwar-3044
                                        swaptype = 1;
403 Kragenwar-3044
                                end
404 Kragenwar-3044
                        else
405 Kragenwar-3044
                                if (v.item ~= nil and v.item:GetName() == code) then
406 Kragenwar-3044
                                        swap = v;
407 Kragenwar-3044
                                        swaptype = 1;
408 Kragenwar-3044
                                end
409 6 Kragenwar-3044
                        end
410 Kragenwar-3044
                end
411 82 Kragenwar-3044
                if (self.customslots ~= nil) then
412 Kragenwar-3044
                        for k,v in pairs(self.customslots) do
413 Kragenwar-3044
                                if (not item) then
414 Kragenwar-3044
                                        if (v:CheckShortcut(code)) then
415 Kragenwar-3044
                                                swap = v;
416 Kragenwar-3044
                                                swaptype = 1;
417 Kragenwar-3044
                                        end
418 Kragenwar-3044
                                else
419 Kragenwar-3044
                                        if (v.item ~= nil and v.item:GetName() == code) then
420 Kragenwar-3044
                                                swap = v;
421 Kragenwar-3044
                                                swaptype = 1;
422 Kragenwar-3044
                                        end
423 Kragenwar-3044
                                end
424 Kragenwar-3044
                        end
425 Kragenwar-3044
                end
426 6 Kragenwar-3044
                for k,v in pairs(self.multi) do
427 66 Kragenwar-3044
                        if (not item) then
428 78 Kragenwar-3044
                                if (v:CheckShortcut(code)) then
429 6 Kragenwar-3044
                                        swap = v;
430 Kragenwar-3044
                                        swaptype = 2;
431 66 Kragenwar-3044
                                end
432 Kragenwar-3044
                        else
433 Kragenwar-3044
                                if (v.item ~= nil and v.item:GetName() == code ) then
434 Kragenwar-3044
                                        swap = v;
435 Kragenwar-3044
                                        swaptype = 2;
436 Kragenwar-3044
                                end
437 6 Kragenwar-3044
                        end
438 Kragenwar-3044
                end
439 87 Kragenwar-3044
 
440 Kragenwar-3044
                if (swap ~= nil) then
441 118 Kragenwar-3044
                        if (swap:GetParent() == limbo or swap:GetParent() == nil)  then
442 87 Kragenwar-3044
                                if (not ref:GetParent().exclusive and ref:GetParent() == ref.parent) then
443 Kragenwar-3044
                                                swap:SwapPosition(ref);
444 Kragenwar-3044
                                end
445 Kragenwar-3044
                        else
446 Kragenwar-3044
                                if( (ref:GetParent() == swap:GetParent() or ( not ref:GetParent().exclusive and not swap:GetParent().exclusive)) and (ref:GetParent() == ref.parent and swap:GetParent() == swap.parent)) then
447 Kragenwar-3044
                                        if (swaptype == 1) then
448 Kragenwar-3044
                                                ref:SwapPosition(swap);
449 Kragenwar-3044
                                        else
450 Kragenwar-3044
                                                swap:SwapPosition(ref);
451 Kragenwar-3044
                                        end
452 Kragenwar-3044
                                end
453 48 Kragenwar-3044
                        end
454 6 Kragenwar-3044
                else
455 87 Kragenwar-3044
                        if (settings.customslots == nil) then
456 Kragenwar-3044
                                settings.customslots = { };
457 48 Kragenwar-3044
                        end
458 87 Kragenwar-3044
                        if (self.customslots == nil) then
459 Kragenwar-3044
                                self.customslots = { };
460 Kragenwar-3044
                        end
461 Kragenwar-3044
 
462 Kragenwar-3044
                        settings.customslots[#settings.customslots+1] = {parent = ref.parent.index, x = ref.x, y = ref.y, type = type, data = code};
463 Kragenwar-3044
                        self.customslots[#settings.customslots] = ItemSlot(ref.parent, ref.x, ref.y, true, { active = true, data = code, type = type });
464 Kragenwar-3044
 
465 Kragenwar-3044
                        if (not ref.blank) then
466 Kragenwar-3044
                                ref:SetParent(limbo);
467 92 Kragenwar-3044
                                ref.parent = nil;
468 Kragenwar-3044
                                ref:SetPosition(0,0);
469 Kragenwar-3044
                                ref.x = 1;
470 Kragenwar-3044
                                ref.y = 1;
471 87 Kragenwar-3044
                        end
472 6 Kragenwar-3044
                end
473 Kragenwar-3044
        end
474 78 Kragenwar-3044
        if (swap ~= nil and swap.parent.index == self.currentkey) then
475 63 Kragenwar-3044
                swap:SetOpacity(1);
476 Kragenwar-3044
                swap:ResetQuickslot();
477 Kragenwar-3044
        end
478 6 Kragenwar-3044
        ref:ResetQuickslot();
479 Kragenwar-3044
end
480 Kragenwar-3044
 
481 Kragenwar-3044
-- Rotate Window
482 Kragenwar-3044
function ClassBar:RotateWindow(ref)
483 Kragenwar-3044
        local rotatebar = { };
484 Kragenwar-3044
        local counter=1
485 Kragenwar-3044
        for k,v in pairs(self.bars) do
486 Kragenwar-3044
                if(v:GetParent() == ref) then
487 Kragenwar-3044
                        v:RotateBar();
488 Kragenwar-3044
                        rotatebar[counter] = v;
489 Kragenwar-3044
                        counter = counter + 1;
490 Kragenwar-3044
                end
491 Kragenwar-3044
        end
492 Kragenwar-3044
 
493 Kragenwar-3044
        for k,v in pairs(self.skills) do
494 Kragenwar-3044
                for i=1, counter do
495 Kragenwar-3044
                        if(v:GetParent() == rotatebar[i]) then
496 Kragenwar-3044
                                v:RotateBar();
497 Kragenwar-3044
                        end
498 Kragenwar-3044
                end
499 Kragenwar-3044
        end
500 Kragenwar-3044
 
501 Kragenwar-3044
        for k,v in pairs(self.multi) do
502 Kragenwar-3044
                for i=1, counter do
503 Kragenwar-3044
                        if(v:GetParent() == rotatebar[i]) then
504 Kragenwar-3044
                                v:RotateBar();
505 Kragenwar-3044
                        end
506 Kragenwar-3044
                end
507 Kragenwar-3044
        end
508 Kragenwar-3044
end
509 Kragenwar-3044
 
510 Kragenwar-3044
-- Save Settings
511 Kragenwar-3044
function ClassBar:SaveSettings()
512 53 Kragenwar-3044
 
513 Kragenwar-3044
        if (self.settings.preconf ~= nil) then
514 Kragenwar-3044
                for k,v in pairs(self.settings.preconf) do
515 63 Kragenwar-3044
                        v.pos = { };
516 Kragenwar-3044
                        v.pos[1], v.pos[2] = self.windows[k]:GetPosition();
517 Kragenwar-3044
                        v.size = { self.windows[k].width, self.windows[k].height };
518 Kragenwar-3044
                        v.combat = { self.windows[k].incombat, self.windows[k].outcombat };
519 53 Kragenwar-3044
                        v.rotate = self.windows[k].rotate;
520 Kragenwar-3044
                end
521 Kragenwar-3044
 
522 Kragenwar-3044
                for k,v in pairs(self.settings.userconf) do
523 Kragenwar-3044
                        v.name = self.windows[k].heading;
524 63 Kragenwar-3044
                        v.pos = { };
525 Kragenwar-3044
                        v.pos[1], v.pos[2] = self.windows[k]:GetPosition();
526 Kragenwar-3044
                        v.size = { self.windows[k].width, self.windows[k].height };
527 Kragenwar-3044
                        v.combat = { self.windows[k].incombat, self.windows[k].outcombat };
528 53 Kragenwar-3044
                end
529 Kragenwar-3044
        else
530 Kragenwar-3044
                for k,v in pairs(self.windows) do
531 Kragenwar-3044
                        self.settings[k].x, self.settings[k].y = self.windows[k]:GetPosition();
532 Kragenwar-3044
                        self.settings[k].rotate = self.windows[k].rotate;
533 Kragenwar-3044
                end
534 6 Kragenwar-3044
        end
535 87 Kragenwar-3044
 
536 6 Kragenwar-3044
    local skilldata = { };
537 Kragenwar-3044
    for k,v in pairs(self.skills) do
538 113 Kragenwar-3044
                if (v:GetParent() == limbo or v.parent == nil) then
539 48 Kragenwar-3044
                        skilldata[k] = { pos = {v.x, v.y}, parent = nil };
540 Kragenwar-3044
                else
541 Kragenwar-3044
                        skilldata[k] = { pos = {v.x, v.y}, parent = v.parent.index };
542 Kragenwar-3044
                end
543 6 Kragenwar-3044
        end
544 Kragenwar-3044
 
545 Kragenwar-3044
        local multidata = { };
546 Kragenwar-3044
        for k,v in pairs(self.multi) do
547 113 Kragenwar-3044
                if (v:GetParent() == limbo or v.parent == nil) then
548 48 Kragenwar-3044
                        multidata[k] = { current = v.currentshortcut, layer = v.currentlayer, lock = v.lock, pos = { v.x, v.y }, parent = nil };
549 Kragenwar-3044
                else
550 Kragenwar-3044
                        multidata[k] = { current = v.currentshortcut, layer = v.currentlayer, lock = v.lock, pos = { v.x, v.y }, parent = v.parent.index };
551 Kragenwar-3044
                end
552 6 Kragenwar-3044
        end
553 Kragenwar-3044
 
554 87 Kragenwar-3044
        local customdata = { };
555 Kragenwar-3044
        local c = 0;
556 82 Kragenwar-3044
        if (self.customslots ~= nil) then
557 Kragenwar-3044
                for k,v in pairs(self.customslots) do
558 87 Kragenwar-3044
                        if (v.GetParent() ~= limbo) then
559 Kragenwar-3044
                                c = c+1;
560 Kragenwar-3044
                                customdata[c] = { parent = v.parent.index, x = v.x, y = v.y, data = v.data, type = v.type };
561 Kragenwar-3044
                                settings.customslots[c] = settings.customslots[k];
562 Kragenwar-3044
                                self.customslots[c] = v;
563 82 Kragenwar-3044
                        end
564 Kragenwar-3044
                end
565 Kragenwar-3044
        end
566 Kragenwar-3044
 
567 6 Kragenwar-3044
        for k,v in pairs(self.windows) do
568 Kragenwar-3044
                v:SetVisible(v.active);
569 Kragenwar-3044
        end
570 Kragenwar-3044
 
571 58 Kragenwar-3044
        --Turbine.Shell.WriteLine("KragenBars: " .. settings.class .. " Bars settings saved successfully.");
572 6 Kragenwar-3044
 
573 Kragenwar-3044
        settings.multidata = multidata;
574 Kragenwar-3044
        settings.skilldata = skilldata;
575 87 Kragenwar-3044
        settings.customslots = customdata;
576 6 Kragenwar-3044
        settings.classinfo = self.settings;
577 Kragenwar-3044
        SaveSettings();
578 Kragenwar-3044
end
579 Kragenwar-3044
 
580 Kragenwar-3044
-- Refresh Player Level and Window and Skill States
581 Kragenwar-3044
function ClassBar:RefreshBars()
582 Kragenwar-3044
        -- Refresh Player Level
583 Kragenwar-3044
        vars.playerlevel = vars.player:GetLevel();
584 Kragenwar-3044
 
585 53 Kragenwar-3044
        if (self.settings.preconf ~= nil) then
586 Kragenwar-3044
                -- Refresh Windows
587 Kragenwar-3044
                for k,v in pairs(self.settings.preconf) do
588 Kragenwar-3044
                        self.windows[k]:Refresh(v.active);
589 Kragenwar-3044
                end
590 Kragenwar-3044
 
591 Kragenwar-3044
                for k,v in pairs(self.settings.userconf) do
592 Kragenwar-3044
                        self.windows[k]:Refresh(v.active);
593 Kragenwar-3044
                end
594 Kragenwar-3044
        else
595 Kragenwar-3044
                -- Refresh Windows
596 Kragenwar-3044
                for k,v in pairs(self.windows) do
597 Kragenwar-3044
                        self.windows[k]:Refresh(self.settings[k].active);
598 Kragenwar-3044
                end
599 6 Kragenwar-3044
        end
600 Kragenwar-3044
 
601 Kragenwar-3044
        -- Refresh Skills
602 Kragenwar-3044
        for k,v in pairs(self.skills) do
603 Kragenwar-3044
                self.skills[k]:Refresh();
604 Kragenwar-3044
        end
605 Kragenwar-3044
end
606 Kragenwar-3044
 
607 Kragenwar-3044
function ClassBar:DefaultPosition()
608 Kragenwar-3044
    -- Refresh Windows
609 Kragenwar-3044
        for k,v in pairs(self.windows) do
610 Kragenwar-3044
        self.windows[k]:DefaultPosition();
611 Kragenwar-3044
        end
612 Kragenwar-3044
end
613 Kragenwar-3044
 
614 Kragenwar-3044
function ClassBar:RecalculateBorders()
615 Kragenwar-3044
        -- Refresh Skills
616 Kragenwar-3044
        for k,v in pairs(self.skills) do
617 Kragenwar-3044
                v.border:SetPosition(v:PointToScreen(1, 1));
618 Kragenwar-3044
        end
619 Kragenwar-3044
end
620 Kragenwar-3044
 
621 Kragenwar-3044
function ClassBar:CombatChange(combat)
622 Kragenwar-3044
        for k,v in pairs(self.skills) do
623 Kragenwar-3044
                self.skills[k]:RefreshCombat();
624 Kragenwar-3044
        end
625 Kragenwar-3044
 
626 Kragenwar-3044
        for k,v in pairs(self.multi) do
627 Kragenwar-3044
                self.multi[k]:RefreshCombat();
628 Kragenwar-3044
        end
629 63 Kragenwar-3044
 
630 Kragenwar-3044
        for k,v in pairs(self.bars) do
631 Kragenwar-3044
                self.bars[k]:RefreshCombat();
632 Kragenwar-3044
        end
633 53 Kragenwar-3044
end
634 Kragenwar-3044
 
635 94 Kragenwar-3044
function ClassBar:EditBars(bol)
636 Kragenwar-3044
        self.edit = bol;
637 Kragenwar-3044
        if (bol) then
638 Kragenwar-3044
                for k,v in pairs(self.bars) do
639 95 Kragenwar-3044
                        for key,value in pairs(self.skills) do
640 83 Kragenwar-3044
                                value:SetOpacity(1);
641 Kragenwar-3044
                                value.edit = true;
642 Kragenwar-3044
                                value:ResetQuickslot();
643 Kragenwar-3044
                        end
644 95 Kragenwar-3044
                        for key,value in pairs(self.multi) do
645 Kragenwar-3044
                                value:SetOpacity(1);
646 Kragenwar-3044
                                value.edit = true;
647 Kragenwar-3044
                                value:ResetQuickslot();
648 Kragenwar-3044
                        end
649 88 Kragenwar-3044
                        v.parent.edit = true;
650 95 Kragenwar-3044
                        v.parent:SetVisible(v.parent.active);
651 88 Kragenwar-3044
                        v:SetVisible(true);
652 94 Kragenwar-3044
                end
653 Kragenwar-3044
        else
654 Kragenwar-3044
                for k,v in pairs(self.bars) do
655 95 Kragenwar-3044
                        for key,value in pairs(self.skills) do
656 83 Kragenwar-3044
                                value.edit = false;
657 Kragenwar-3044
                                value:Refresh();
658 Kragenwar-3044
                        end
659 95 Kragenwar-3044
                        for key,value in pairs(self.multi) do
660 Kragenwar-3044
                                value.edit = false;
661 Kragenwar-3044
                                value:Refresh();
662 Kragenwar-3044
                        end
663 88 Kragenwar-3044
                        v.parent.edit = false;
664 Kragenwar-3044
                        v:RefreshCombat();
665 63 Kragenwar-3044
                end
666 Kragenwar-3044
        end
667 Kragenwar-3044
end
668 Kragenwar-3044
 
669 53 Kragenwar-3044
function ClassBar:CreateBar()
670 Kragenwar-3044
        local name = "UserBar"..tostring(settings.userbars + 1);
671 Kragenwar-3044
        local v = nil;
672 Kragenwar-3044
 
673 Kragenwar-3044
        settings.userbars = settings.userbars + 1;
674 Kragenwar-3044
        self.barcount = self.barcount + 1;
675 Kragenwar-3044
 
676 63 Kragenwar-3044
        v = { id = self.barcount, name = name, defpos = {0,0}, size = {1, 1} , pos = {800, 200+(35*settings.userbars)}, combat = {true,true}, active = true };
677 Kragenwar-3044
        self.windows[name] = SkillWindow(v);
678 53 Kragenwar-3044
        self.bars[name] = SkillBar(self.windows[name], 1, 1, 1, 1, true, false);
679 87 Kragenwar-3044
        self.bars[name].index = name;
680 53 Kragenwar-3044
 
681 Kragenwar-3044
        self.settings.userconf[name] = v;
682 63 Kragenwar-3044
        self.barlist[v.id] = name;
683 Kragenwar-3044
 
684 Kragenwar-3044
        return v.id;
685 53 Kragenwar-3044
end
686 Kragenwar-3044
 
687 63 Kragenwar-3044
function ClassBar:ResizeBar(key, size)
688 Kragenwar-3044
        self.bars[key]:ChangeSize(size[1], size[2]);
689 Kragenwar-3044
end
690 Kragenwar-3044
 
691 53 Kragenwar-3044
function ClassBar:RenameBar(key, name)
692 Kragenwar-3044
        if (self.windows[key] ~= nil) then
693 Kragenwar-3044
                self.windows[key]:SetName(name);
694 Kragenwar-3044
                self.settings.userconf[key].name = name;
695 Kragenwar-3044
        end
696 Kragenwar-3044
end
697 Kragenwar-3044
 
698 63 Kragenwar-3044
function ClassBar:BarCombat(key, num)
699 Kragenwar-3044
        self.windows[key]:SetCombat(num ~= 3, num ~= 2);
700 Kragenwar-3044
        self:CombatChange();
701 Kragenwar-3044
end
702 Kragenwar-3044
 
703 53 Kragenwar-3044
function ClassBar:DeleteBar(key)
704 Kragenwar-3044
        local id = nil
705 Kragenwar-3044
 
706 63 Kragenwar-3044
        self.barcount = 0;
707 Kragenwar-3044
 
708 Kragenwar-3044
        if (self.windows[key] ~= nil and self.settings.userconf[key] ~= nil) then
709 53 Kragenwar-3044
                id = self.settings.userconf[key].id;
710 Kragenwar-3044
                self.bars[key]:ChangeSize(0,0);
711 Kragenwar-3044
                self.bars[key]:SetVisible(false);
712 63 Kragenwar-3044
                self.windows[key]:Trash();
713 53 Kragenwar-3044
                self.windows[key] = nil;
714 Kragenwar-3044
                self.bars[key] = nil;
715 Kragenwar-3044
                self.settings.userconf[key] = nil;
716 Kragenwar-3044
 
717 Kragenwar-3044
                self.barlist = { };
718 63 Kragenwar-3044
 
719 Kragenwar-3044
                for k,v in pairs (self.settings.preconf) do
720 Kragenwar-3044
                        self.barlist[v.id] = k;
721 Kragenwar-3044
                        self.barcount = self.barcount + 1;
722 Kragenwar-3044
                end
723 Kragenwar-3044
 
724 53 Kragenwar-3044
                for k,v in pairs (self.settings.userconf) do
725 Kragenwar-3044
                        if (v.id > id) then
726 63 Kragenwar-3044
                                v.id = v.id - 1;
727 53 Kragenwar-3044
                        end
728 63 Kragenwar-3044
                        self.barlist[v.id] = k;
729 Kragenwar-3044
                        self.barcount = self.barcount + 1;
730 53 Kragenwar-3044
                end
731 Kragenwar-3044
 
732 74 Valdacil-446
                -- self.setupbb["checkboxbb"..tostring(self.barcount+1)]:SetVisible(false);
733 53 Kragenwar-3044
        end
734 Kragenwar-3044
end

All times are GMT -5. The time now is 08:08 PM.


Our Network
EQInterface | EQ2Interface | Minion | WoWInterface | ESOUI | LoTROInterface | MMOUI | Swtorui