1 |
6 |
Kragenwar-3044 |
import "Turbine.UI"; |
2 |
|
Kragenwar-3044 |
import "Turbine.UI.Lotro"; |
3 |
|
Kragenwar-3044 |
import "KragenPlugs.Utils"; |
4 |
|
Kragenwar-3044 |
import "KragenPlugs.Utils.UI"; |
5 |
|
Kragenwar-3044 |
import "KragenPlugs.KragenBars"; |
6 |
|
Kragenwar-3044 |
|
7 |
|
Kragenwar-3044 |
SkillWindow = class ( Turbine.UI.Window ) |
8 |
|
Kragenwar-3044 |
|
9 |
|
Kragenwar-3044 |
function SkillWindow:Constructor ( heading, x, y, width, height, prop) |
10 |
|
Kragenwar-3044 |
Turbine.UI.Window.Constructor( self ); |
11 |
|
Kragenwar-3044 |
|
12 |
|
Kragenwar-3044 |
-- display width/height for default positioning |
13 |
|
Kragenwar-3044 |
local displayWidth = Turbine.UI.Display:GetWidth(); |
14 |
|
Kragenwar-3044 |
local displayHeight = Turbine.UI.Display:GetHeight(); |
15 |
|
Kragenwar-3044 |
|
16 |
|
Kragenwar-3044 |
-- declar variables |
17 |
|
Kragenwar-3044 |
self.heading = heading; |
18 |
|
Kragenwar-3044 |
self.x = ((x - 1) * 35) + ((displayWidth / 2) - (35 * 6)) + 20; |
19 |
|
Kragenwar-3044 |
self.y = (displayHeight - 70) - (5 * 35) + ((y - 1) * 35); |
20 |
|
Kragenwar-3044 |
self.width = width; |
21 |
|
Kragenwar-3044 |
self.height = height; |
22 |
|
Kragenwar-3044 |
self.active = prop.active; |
23 |
|
Kragenwar-3044 |
self.rotate = prop.rotate; |
24 |
|
Kragenwar-3044 |
self.defx = x; |
25 |
|
Kragenwar-3044 |
self.defy = y; |
26 |
|
Kragenwar-3044 |
|
27 |
|
Kragenwar-3044 |
-- set x and y if they arn't the defaults |
28 |
|
Kragenwar-3044 |
if (prop.x ~= 0 and prop.y ~= 0) then |
29 |
|
Kragenwar-3044 |
self.x = prop.x; |
30 |
|
Kragenwar-3044 |
self.y = prop.y; |
31 |
|
Kragenwar-3044 |
end |
32 |
|
Kragenwar-3044 |
|
33 |
|
Kragenwar-3044 |
-- set properties |
34 |
|
Kragenwar-3044 |
self:SetSize( width * 35, height * 35 ); |
35 |
|
Kragenwar-3044 |
self:SetPosition(ValidatePosition(self.x, self.y, width*35, height*35)); |
36 |
|
Kragenwar-3044 |
self:SetVisible(true); |
37 |
|
Kragenwar-3044 |
|
38 |
|
Kragenwar-3044 |
if (self.rotate == 1) then |
39 |
|
Kragenwar-3044 |
self:RotateWindow(); |
40 |
|
Kragenwar-3044 |
end |
41 |
|
Kragenwar-3044 |
|
42 |
|
Kragenwar-3044 |
-- DRAGBAR |
43 |
|
Kragenwar-3044 |
-- attach dragbar class to window |
44 |
|
Kragenwar-3044 |
self.dragBar = KragenPlugs.Utils.UI.DragBar( self, heading ); |
45 |
|
Kragenwar-3044 |
self.dragBar:SetRotator(true); |
46 |
|
Kragenwar-3044 |
self.dragBar:SetRotatorOffset(3, 23); |
47 |
|
Kragenwar-3044 |
|
48 |
|
Kragenwar-3044 |
-- DRAGBAR EVENTS |
49 |
|
Kragenwar-3044 |
-- save position when user stops dragging |
50 |
|
Kragenwar-3044 |
self.DragEnd = function( sender ) |
51 |
|
Kragenwar-3044 |
self:SetWantsUpdates(true); |
52 |
|
Kragenwar-3044 |
end |
53 |
|
Kragenwar-3044 |
|
54 |
|
Kragenwar-3044 |
self.Update = function( sender ) |
55 |
|
Kragenwar-3044 |
local x, y = self:GetPosition(); |
56 |
|
Kragenwar-3044 |
|
57 |
|
Kragenwar-3044 |
if (settings.snaptogrid) then |
58 |
|
Kragenwar-3044 |
local testx = math.floor(x / 35); |
59 |
|
Kragenwar-3044 |
x = 35 * testx + 17; |
60 |
|
Kragenwar-3044 |
|
61 |
|
Kragenwar-3044 |
local testy = math.floor(y / 35); |
62 |
|
Kragenwar-3044 |
y = 35 * testy + 17; |
63 |
|
Kragenwar-3044 |
end |
64 |
|
Kragenwar-3044 |
|
65 |
|
Kragenwar-3044 |
self.x = x; |
66 |
|
Kragenwar-3044 |
self.y = y; |
67 |
|
Kragenwar-3044 |
|
68 |
|
Kragenwar-3044 |
self:SetPosition(self.x, self.y); |
69 |
|
Kragenwar-3044 |
KragenBars:RecalculateBorders(); |
70 |
|
Kragenwar-3044 |
self.dragBar:RecalculatePosition(); |
71 |
|
Kragenwar-3044 |
|
72 |
|
Kragenwar-3044 |
self:SetWantsUpdates(false); |
73 |
|
Kragenwar-3044 |
end |
74 |
|
Kragenwar-3044 |
|
75 |
|
Kragenwar-3044 |
-- set visibility when the user unhides the UI |
76 |
|
Kragenwar-3044 |
self.HUDShow = function(sender) |
77 |
|
Kragenwar-3044 |
self:SetVisible( self.active ); |
78 |
|
Kragenwar-3044 |
end |
79 |
|
Kragenwar-3044 |
|
80 |
|
Kragenwar-3044 |
self.DragEnable = function(sender) |
81 |
|
Kragenwar-3044 |
self.dragBar:SetVisible(self.active and self.dragBar:IsHUDVisible() and self.dragBar:IsDraggable()); |
82 |
|
Kragenwar-3044 |
end |
83 |
|
Kragenwar-3044 |
|
84 |
|
Kragenwar-3044 |
self.Rotate = function(sender) |
85 |
|
Kragenwar-3044 |
KragenBars:RotateWindow(self); |
86 |
|
Kragenwar-3044 |
|
87 |
|
Kragenwar-3044 |
if (self.rotate == 1) then |
88 |
|
Kragenwar-3044 |
self.rotate = 0; |
89 |
|
Kragenwar-3044 |
else |
90 |
|
Kragenwar-3044 |
self.rotate = 1; |
91 |
|
Kragenwar-3044 |
end |
92 |
|
Kragenwar-3044 |
|
93 |
|
Kragenwar-3044 |
self:RotateWindow(); |
94 |
|
Kragenwar-3044 |
end |
95 |
|
Kragenwar-3044 |
|
96 |
|
Kragenwar-3044 |
-- ON VISIBLE CHANGED EVENT |
97 |
|
Kragenwar-3044 |
self.VisibleChanged = function(sender, args) |
98 |
|
Kragenwar-3044 |
self.dragBar:SetVisible(self.active and self.dragBar:IsHUDVisible() and self.dragBar:IsDraggable()); |
99 |
|
Kragenwar-3044 |
end |
100 |
|
Kragenwar-3044 |
end |
101 |
|
Kragenwar-3044 |
|
102 |
|
Kragenwar-3044 |
-- UPDATE THE WINDOW STATE |
103 |
|
Kragenwar-3044 |
function SkillWindow:Refresh( active ) |
104 |
|
Kragenwar-3044 |
self.active = active; |
105 |
|
Kragenwar-3044 |
self:SetVisible( active ); |
106 |
|
Kragenwar-3044 |
end |
107 |
|
Kragenwar-3044 |
|
108 |
|
Kragenwar-3044 |
-- ROTATE THE WINDOW |
109 |
|
Kragenwar-3044 |
function SkillWindow:RotateWindow() |
110 |
|
Kragenwar-3044 |
local newwidth = self.height; |
111 |
|
Kragenwar-3044 |
local newheight = self.width; |
112 |
|
Kragenwar-3044 |
|
113 |
|
Kragenwar-3044 |
self:SetSize( newwidth * 35, newheight * 35 ); |
114 |
|
Kragenwar-3044 |
|
115 |
|
Kragenwar-3044 |
self.width = newwidth; |
116 |
|
Kragenwar-3044 |
self.height = newheight; |
117 |
|
Kragenwar-3044 |
end |
118 |
|
Kragenwar-3044 |
|
119 |
|
Kragenwar-3044 |
function SkillWindow:DefaultPosition() |
120 |
|
Kragenwar-3044 |
-- display width/height for default positioning |
121 |
|
Kragenwar-3044 |
local displayWidth = Turbine.UI.Display:GetWidth(); |
122 |
|
Kragenwar-3044 |
local displayHeight = Turbine.UI.Display:GetHeight(); |
123 |
|
Kragenwar-3044 |
|
124 |
|
Kragenwar-3044 |
self.x = ((self.defx - 1) * 35) + ((displayWidth / 2) - (35 * 6)) + 20; |
125 |
|
Kragenwar-3044 |
self.y = (displayHeight - 70) - (5 * 35) + ((self.defy - 1) * 35); |
126 |
|
Kragenwar-3044 |
self:SetPosition(ValidatePosition(self.x, self.y, self.width*35, self.height*35)); |
127 |
|
Kragenwar-3044 |
self.dragBar:RecalculatePosition(); |
128 |
|
Kragenwar-3044 |
end |