lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [branches/] [3.21/] [KragenBars/] [SkillBar.lua] - Blame information for rev 72

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 72 Kragenwar-3044
import "Turbine.UI";
2 Kragenwar-3044
import "Turbine.UI.Lotro";
3 Kragenwar-3044
import "KragenPlugs.Utils";
4 Kragenwar-3044
import "KragenPlugs.Utils.Extensions";
5 Kragenwar-3044
import "KragenPlugs.KragenBars";
6 Kragenwar-3044
 
7 Kragenwar-3044
SkillBar = class ( KragenPlugs.Utils.Extensions.SimpleWindow );
8 Kragenwar-3044
 
9 Kragenwar-3044
function SkillBar:Constructor ( parent, x, y, width, height, active, exclusive )
10 Kragenwar-3044
        KragenPlugs.Utils.Extensions.SimpleWindow.Constructor( self );
11 Kragenwar-3044
 
12 Kragenwar-3044
        -- declare variables
13 Kragenwar-3044
        self.parent         = parent;
14 Kragenwar-3044
    self.x              = x;
15 Kragenwar-3044
        self.y              = y;
16 Kragenwar-3044
        self.width                      = width;
17 Kragenwar-3044
        self.height         = height;
18 Kragenwar-3044
        self.exclusive      = exclusive;
19 Kragenwar-3044
        self.state          = false;
20 Kragenwar-3044
        self.effectid       = 0;
21 Kragenwar-3044
        self.skilllist = {};
22 Kragenwar-3044
        self.totalskills = 0;
23 Kragenwar-3044
 
24 Kragenwar-3044
    -- set properties
25 Kragenwar-3044
        self:SetParent( parent );
26 Kragenwar-3044
        self:SetVisible(true);
27 Kragenwar-3044
        self:SetPosition( (x - 1) * 35, (y - 1) * 35 );
28 Kragenwar-3044
        self:SetSize( width * 35, height * 35 );
29 Kragenwar-3044
 
30 Kragenwar-3044
        self.blankslot = {};
31 Kragenwar-3044
        local c = 1;
32 Kragenwar-3044
        for h = 1, height do
33 Kragenwar-3044
                for w = 1, width do
34 Kragenwar-3044
                        self.blankslot[c] = BlankSlot(self, w, h);
35 Kragenwar-3044
                        c = c + 1;
36 Kragenwar-3044
                end
37 Kragenwar-3044
        end
38 Kragenwar-3044
 
39 Kragenwar-3044
        if (parent.rotate == 1) then
40 Kragenwar-3044
                self:RotateBar();
41 Kragenwar-3044
        end
42 Kragenwar-3044
end
43 Kragenwar-3044
 
44 Kragenwar-3044
-- SET STATE (To be used to track the effect state of buffs/debuffs)
45 Kragenwar-3044
function SkillBar:SetState( state, id )
46 Kragenwar-3044
        -- update state and effect id
47 Kragenwar-3044
        if ( state ) then
48 Kragenwar-3044
                self.state = true;
49 Kragenwar-3044
                self.effectid = id;
50 Kragenwar-3044
        else
51 Kragenwar-3044
                if ( id == self.effectid ) then
52 Kragenwar-3044
                    self.state = false;
53 Kragenwar-3044
                        self.effectid = 0;
54 Kragenwar-3044
                end
55 Kragenwar-3044
 
56 Kragenwar-3044
        end
57 Kragenwar-3044
end
58 Kragenwar-3044
 
59 Kragenwar-3044
-- ROTATE BAR
60 Kragenwar-3044
function SkillBar:RotateBar()
61 Kragenwar-3044
        local newwidth = self.height;
62 Kragenwar-3044
        local newheight = self.width;
63 Kragenwar-3044
        self:SetSize( newwidth * 35, newheight * 35 );
64 Kragenwar-3044
 
65 Kragenwar-3044
        self.width = newwidth;
66 Kragenwar-3044
        self.height = newheight;
67 Kragenwar-3044
 
68 Kragenwar-3044
        local newx = self.y;
69 Kragenwar-3044
        local newy = self.x;
70 Kragenwar-3044
 
71 Kragenwar-3044
        self:SetPosition( (newx - 1) * 35, (newy - 1) * 35 );
72 Kragenwar-3044
        self.x = newx;
73 Kragenwar-3044
        self.y = newy;
74 Kragenwar-3044
 
75 Kragenwar-3044
        for k,v in pairs(self.blankslot) do
76 Kragenwar-3044
                v:Rotate();
77 Kragenwar-3044
        end
78 Kragenwar-3044
end
79 Kragenwar-3044
 
80 Kragenwar-3044
function SkillBar:ChangeSize(width, height)
81 Kragenwar-3044
        self:SetSize( width * 35, height * 35 );
82 Kragenwar-3044
 
83 Kragenwar-3044
        for k,v in pairs(self.blankslot) do
84 Kragenwar-3044
                v:SetVisible(false);
85 Kragenwar-3044
        end
86 Kragenwar-3044
 
87 Kragenwar-3044
        local c = 1;
88 Kragenwar-3044
        for h = 1, height do
89 Kragenwar-3044
                for w = 1, width do
90 Kragenwar-3044
                        if (self.blankslot[c] ~= nil) then
91 Kragenwar-3044
                                self.blankslot[c]:Move(w, h);
92 Kragenwar-3044
                                self.blankslot[c]:SetVisible(true);
93 Kragenwar-3044
                        else
94 Kragenwar-3044
                                self.blankslot[c] = BlankSlot(self, w, h);
95 Kragenwar-3044
                        end
96 Kragenwar-3044
                        c = c + 1;
97 Kragenwar-3044
                end
98 Kragenwar-3044
        end
99 Kragenwar-3044
 
100 Kragenwar-3044
        for k,v in pairs(self.skilllist) do
101 Kragenwar-3044
                if (v.x > width or v.y > height) then
102 Kragenwar-3044
                        v:SetParent(limbo);
103 Kragenwar-3044
                        v.parent = nil;
104 Kragenwar-3044
                end
105 Kragenwar-3044
        end
106 Kragenwar-3044
 
107 Kragenwar-3044
        self.parent:ChangeSize(width, height);
108 Kragenwar-3044
end
109 Kragenwar-3044
 
110 Kragenwar-3044
function SkillBar:AddSkill(ref, x, y)
111 Kragenwar-3044
        self.totalskills = self.totalskills + 1;
112 Kragenwar-3044
        self.skilllist[self.totalskills] = ref;
113 Kragenwar-3044
end

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


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