lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [branches/] [3.02/] [KragenBars/] [ClassBar.lua] - Blame information for rev 16

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 Kragenwar-3044
        self.setupbb = self.setup.setupbb;
14 Kragenwar-3044
        self.setupf = self.setup.setupf;
15 Kragenwar-3044
        self.setupqs = self.setup.setupqs;
16 Kragenwar-3044
 
17 Kragenwar-3044
        -- inialize tables
18 Kragenwar-3044
        self.windows = { };
19 Kragenwar-3044
        self.bars = { };
20 Kragenwar-3044
        self.skills = { };
21 Kragenwar-3044
        self.multi = { };
22 Kragenwar-3044
 
23 Kragenwar-3044
        self.setup:SetWantsKeyEvents(true);
24 Kragenwar-3044
 
25 Kragenwar-3044
        self.setup.KeyDown = function(sender, args)
26 Kragenwar-3044
        if args.Action == 0x100000B3 then
27 Kragenwar-3044
                        self.setup:SetWantsUpdates(true);
28 Kragenwar-3044
                end
29 Kragenwar-3044
        end
30 Kragenwar-3044
 
31 Kragenwar-3044
        self.setup.Update = function(sender, args)
32 Kragenwar-3044
        for k,v in pairs(self.skills) do
33 Kragenwar-3044
                        v:RefreshBorders();
34 Kragenwar-3044
                end
35 Kragenwar-3044
                self.setup:SetWantsUpdates(false);
36 Kragenwar-3044
        end
37 Kragenwar-3044
 
38 Kragenwar-3044
        -- Combat Event
39 Kragenwar-3044
        AddCallback(vars.player, "InCombatChanged", function(sender, args)
40 Kragenwar-3044
                KragenBars:CombatChange(vars.player:IsInCombat());
41 Kragenwar-3044
        end);
42 Kragenwar-3044
 
43 Kragenwar-3044
        -- Effect Events
44 Kragenwar-3044
    AddCallback(vars.effects, "EffectAdded", function(sender, args)
45 Kragenwar-3044
                KragenBars:AddEffect( args.Index );
46 Kragenwar-3044
        end);
47 Kragenwar-3044
 
48 Kragenwar-3044
        AddCallback(vars.effects, "EffectRemoved", function(sender, args)
49 Kragenwar-3044
                if (args.Effect ~= nil) then
50 Kragenwar-3044
                        KragenBars:RemoveEffect( args.Effect );
51 Kragenwar-3044
                end
52 Kragenwar-3044
        end);
53 Kragenwar-3044
 
54 Kragenwar-3044
end
55 Kragenwar-3044
 
56 Kragenwar-3044
-- Index and Position Bars
57 Kragenwar-3044
function ClassBar:InitBars()
58 Kragenwar-3044
        for k,v in pairs(self.bars) do
59 Kragenwar-3044
                v.index = k;
60 Kragenwar-3044
        end
61 Kragenwar-3044
 
62 Kragenwar-3044
        if(settings.skilldata ~=nil) then
63 Kragenwar-3044
                for k,v in pairs(self.skills) do
64 Kragenwar-3044
                        if (settings.skilldata[k] ~= nil) then
65 Kragenwar-3044
                            local data = settings.skilldata[k];
66 Kragenwar-3044
                            data.parent = self.bars[settings.skilldata[k].parent]
67 Kragenwar-3044
                                v:LoadPosition(data);
68 Kragenwar-3044
                        end
69 Kragenwar-3044
                end
70 Kragenwar-3044
        end
71 Kragenwar-3044
 
72 Kragenwar-3044
        if(settings.multidata ~=nil) then
73 Kragenwar-3044
                for k,v in pairs(self.multi) do
74 Kragenwar-3044
                        if (settings.multidata[k] ~= nil) then
75 Kragenwar-3044
                                local data = settings.multidata[k];
76 Kragenwar-3044
                            data.parent = self.bars[settings.multidata[k].parent]
77 Kragenwar-3044
                                v:LoadPosition(data);
78 Kragenwar-3044
                        end
79 Kragenwar-3044
                end
80 Kragenwar-3044
        end
81 Kragenwar-3044
 
82 Kragenwar-3044
        for k,v in pairs(self.windows) do
83 Kragenwar-3044
                v:SetVisible(v.active);
84 Kragenwar-3044
        end
85 Kragenwar-3044
 
86 Kragenwar-3044
        for k,v in pairs(self.skills) do
87 Kragenwar-3044
                v:RefreshBorders();
88 Kragenwar-3044
        end
89 Kragenwar-3044
 
90 Kragenwar-3044
        for i = 1, vars.effects:GetCount() do
91 Kragenwar-3044
                self:AddEffect(i);
92 Kragenwar-3044
        end
93 Kragenwar-3044
end
94 Kragenwar-3044
 
95 Kragenwar-3044
-- Swap Slots
96 Kragenwar-3044
function ClassBar:SwapSlots(ref, code)
97 Kragenwar-3044
 
98 Kragenwar-3044
        local swap = nil;
99 Kragenwar-3044
        local swaptype = 1;
100 Kragenwar-3044
        if (not settings.lockslots) then
101 Kragenwar-3044
                for k,v in pairs(self.skills) do
102 Kragenwar-3044
                        if (v.quickslot:GetShortcut():GetData() == code ) then
103 Kragenwar-3044
                            if ((ref:GetParent() == v:GetParent() or (not ref:GetParent().exclusive and not v:GetParent().exclusive)) and (ref:GetParent() == ref.parent and v:GetParent() == v.parent)) then
104 Kragenwar-3044
                                        swap = v;
105 Kragenwar-3044
                                        swaptype = 1;
106 Kragenwar-3044
                                end
107 Kragenwar-3044
                        end
108 Kragenwar-3044
                end
109 Kragenwar-3044
                for k,v in pairs(self.multi) do
110 Kragenwar-3044
                        if (v.quickslot:GetShortcut():GetData() == code ) then
111 Kragenwar-3044
                                if ((ref:GetParent() == v:GetParent() or (not ref:GetParent().exclusive and not v:GetParent().exclusive)) and (ref:GetParent() == ref.parent and v:GetParent() == v.parent)) then
112 Kragenwar-3044
                                        swap = v;
113 Kragenwar-3044
                                        swaptype = 2;
114 Kragenwar-3044
                                end
115 Kragenwar-3044
                        end
116 Kragenwar-3044
                end
117 Kragenwar-3044
        end
118 Kragenwar-3044
        if (swap ~= nil) then
119 Kragenwar-3044
            if (swaptype == 1) then
120 Kragenwar-3044
                        ref:SwapPosition(swap);
121 Kragenwar-3044
                else
122 Kragenwar-3044
                        swap:SwapPosition(ref);
123 Kragenwar-3044
                end
124 Kragenwar-3044
        end
125 Kragenwar-3044
        ref:ResetQuickslot();
126 Kragenwar-3044
end
127 Kragenwar-3044
 
128 Kragenwar-3044
-- Rotate Window
129 Kragenwar-3044
function ClassBar:RotateWindow(ref)
130 Kragenwar-3044
        local rotatebar = { };
131 Kragenwar-3044
        local counter=1
132 Kragenwar-3044
        for k,v in pairs(self.bars) do
133 Kragenwar-3044
                if(v:GetParent() == ref) then
134 Kragenwar-3044
                        v:RotateBar();
135 Kragenwar-3044
                        rotatebar[counter] = v;
136 Kragenwar-3044
                        counter = counter + 1;
137 Kragenwar-3044
                end
138 Kragenwar-3044
        end
139 Kragenwar-3044
 
140 Kragenwar-3044
        for k,v in pairs(self.skills) do
141 Kragenwar-3044
                for i=1, counter do
142 Kragenwar-3044
                        if(v:GetParent() == rotatebar[i]) then
143 Kragenwar-3044
                                v:RotateBar();
144 Kragenwar-3044
                        end
145 Kragenwar-3044
                end
146 Kragenwar-3044
        end
147 Kragenwar-3044
 
148 Kragenwar-3044
        for k,v in pairs(self.multi) do
149 Kragenwar-3044
                for i=1, counter do
150 Kragenwar-3044
                        if(v:GetParent() == rotatebar[i]) then
151 Kragenwar-3044
                                v:RotateBar();
152 Kragenwar-3044
                        end
153 Kragenwar-3044
                end
154 Kragenwar-3044
        end
155 Kragenwar-3044
end
156 Kragenwar-3044
 
157 Kragenwar-3044
-- Save Settings
158 Kragenwar-3044
function ClassBar:SaveSettings()
159 Kragenwar-3044
        for k,v in pairs(self.windows) do
160 Kragenwar-3044
            self.settings[k].x, self.settings[k].y = self.windows[k]:GetPosition();
161 Kragenwar-3044
                self.settings[k].rotate = self.windows[k].rotate;
162 Kragenwar-3044
        end
163 Kragenwar-3044
 
164 Kragenwar-3044
    local skilldata = { };
165 Kragenwar-3044
    for k,v in pairs(self.skills) do
166 Kragenwar-3044
                skilldata[k] = { pos = {v.x, v.y}, parent = v.parent.index };
167 Kragenwar-3044
        end
168 Kragenwar-3044
 
169 Kragenwar-3044
        local multidata = { };
170 Kragenwar-3044
        for k,v in pairs(self.multi) do
171 Kragenwar-3044
                multidata[k] = { current = v.currentshortcut, layer = v.currentlayer, lock = v.lock, pos = { v.x, v.y }, parent = v.parent.index };
172 Kragenwar-3044
        end
173 Kragenwar-3044
 
174 Kragenwar-3044
        for k,v in pairs(self.windows) do
175 Kragenwar-3044
                v:SetVisible(v.active);
176 Kragenwar-3044
        end
177 Kragenwar-3044
 
178 Kragenwar-3044
        Turbine.Shell.WriteLine("KragenBars: " .. settings.class .. " Bars settings saved successfully.");
179 Kragenwar-3044
 
180 Kragenwar-3044
        settings.multidata = multidata;
181 Kragenwar-3044
        settings.skilldata = skilldata;
182 Kragenwar-3044
        settings.classinfo = self.settings;
183 Kragenwar-3044
        SaveSettings();
184 Kragenwar-3044
end
185 Kragenwar-3044
 
186 Kragenwar-3044
-- Refresh Player Level and Window and Skill States
187 Kragenwar-3044
function ClassBar:RefreshBars()
188 Kragenwar-3044
        -- Refresh Player Level
189 Kragenwar-3044
        vars.playerlevel = vars.player:GetLevel();
190 Kragenwar-3044
 
191 Kragenwar-3044
        -- Refresh Windows
192 Kragenwar-3044
        for k,v in pairs(self.windows) do
193 Kragenwar-3044
        self.windows[k]:Refresh(self.settings[k].active);
194 Kragenwar-3044
        end
195 Kragenwar-3044
 
196 Kragenwar-3044
        -- Refresh Skills
197 Kragenwar-3044
        for k,v in pairs(self.skills) do
198 Kragenwar-3044
                self.skills[k]:Refresh();
199 Kragenwar-3044
        end
200 Kragenwar-3044
end
201 Kragenwar-3044
 
202 Kragenwar-3044
function ClassBar:DefaultPosition()
203 Kragenwar-3044
    -- Refresh Windows
204 Kragenwar-3044
        for k,v in pairs(self.windows) do
205 Kragenwar-3044
        self.windows[k]:DefaultPosition();
206 Kragenwar-3044
        end
207 Kragenwar-3044
end
208 Kragenwar-3044
 
209 Kragenwar-3044
function ClassBar:RecalculateBorders()
210 Kragenwar-3044
        -- Refresh Skills
211 Kragenwar-3044
        for k,v in pairs(self.skills) do
212 Kragenwar-3044
                v.border:SetPosition(v:PointToScreen(1, 1));
213 Kragenwar-3044
        end
214 Kragenwar-3044
end
215 Kragenwar-3044
 
216 Kragenwar-3044
function ClassBar:CombatChange(combat)
217 Kragenwar-3044
        for k,v in pairs(self.skills) do
218 Kragenwar-3044
                self.skills[k]:RefreshCombat();
219 Kragenwar-3044
        end
220 Kragenwar-3044
 
221 Kragenwar-3044
        for k,v in pairs(self.multi) do
222 Kragenwar-3044
                self.multi[k]:RefreshCombat();
223 Kragenwar-3044
        end
224 Kragenwar-3044
end

All times are GMT -5. The time now is 10:56 AM.


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