LUADOC - Farming Simulator 19

Script v1.7.1.0

Engine v1.7.1.0

Foundation Reference

RoundStatusBar

Functions

delete

Description
Definition
delete()
Code
57function RoundStatusBar:delete()
58 if self.overlayFront ~= nil then
59 self.overlayFront:delete();
60 end;
61 if self.overlayBackground1 ~= nil then
62 self.overlayBackground1:delete();
63 end;
64 if self.overlayBackground2 ~= nil then
65 self.overlayBackground2:delete();
66 end;
67 if self.overlayValue1 ~= nil then
68 self.overlayValue1:delete();
69 end;
70 if self.overlayValue2 ~= nil then
71 self.overlayValue2:delete();
72 end;
73 if self.overlayMarker ~= nil then
74 self.overlayMarker:delete();
75 end;
76end

new

Description
Definition
new()
Code
15function RoundStatusBar:new(frontFilename, valueFilename, markerFilename, color, valueColor, bgColor, radius, markerSize, x, y, width, height, valueWidth, valueHeight, custom_mt)
16 if custom_mt == nil then
17 custom_mt = RoundStatusBar_mt;
18 end;
19 local self = setmetatable({}, custom_mt);
20
21 self.value = 0;
22 self.width = width;
23 self.height = height;
24 self.radius = radius;
25
26 self.offsetX = (width-valueWidth)/2;
27 self.offsetY = (height-valueHeight)/2;
28
29 self.x = x;
30 self.y = y;
31 if frontFilename ~= nil then
32 self.overlayFront = Overlay:new(frontFilename, x, y, width, height);
33 self.overlayFront:setColor(unpack(color));
34 end;
35 self.overlayBackground1 = Overlay:new(valueFilename, x+self.offsetX, y+self.offsetY, valueWidth, valueHeight);
36 self.overlayBackground2 = Overlay:new(valueFilename, x+self.offsetX, y+self.offsetY, valueWidth, valueHeight);
37 self.overlayValue1 = Overlay:new(valueFilename, x+self.offsetX, y+self.offsetY, valueWidth, valueHeight);
38 self.overlayValue2 = Overlay:new(valueFilename, x+self.offsetX, y+self.offsetY, valueWidth, valueHeight);
39 self.overlayBackground1:setColor(unpack(bgColor));
40 self.overlayBackground2:setColor(unpack(bgColor));
41 self.overlayValue1:setColor(unpack(valueColor));
42 self.overlayValue2:setColor(unpack(valueColor));
43
44 if markerFilename ~= nil then
45 self.overlayMarker = Overlay:new(markerFilename, x, y, markerSize[1], markerSize[2]);
46 self.overlayMarker:setColor(unpack(valueColor));
47 end;
48
49 self.overlayValue2:setRotation(math.rad(180), self.overlayValue2.width*0.5, self.overlayValue2.height*0.5);
50 self:setValue(0);
51
52 return self;
53end

render

Description
Definition
render()
Code
109function RoundStatusBar:render()
110 if self.value > 0.5 then
111 self.overlayBackground2:render();
112 end;
113 self.overlayValue1:render();
114
115 if self.value > 0.5 then
116 self.overlayValue2:render();
117 else
118 self.overlayBackground2:render();
119 self.overlayBackground1:render();
120 end;
121 if self.overlayFront ~= nil then
122 self.overlayFront:render();
123 end;
124 if self.overlayMarker ~= nil then
125 self.overlayMarker:render();
126 end;
127end

setPosition

Description
Definition
setPosition()
Code
80function RoundStatusBar:setPosition(x, y)
81 self.x = Utils.getNoNil(x, self.x)
82 self.y = Utils.getNoNil(y, self.y)
83
84 self.overlayValue1:setPosition(self.x+self.offsetX, self.y+self.offsetY)
85 self.overlayValue2:setPosition(self.x+self.offsetX, self.y+self.offsetY)
86 self.overlayBackground1:setPosition(self.x+self.offsetX, self.y+self.offsetY)
87 self.overlayBackground2:setPosition(self.x+self.offsetX, self.y+self.offsetY)
88 if self.overlayFront ~= nil then
89 self.overlayFront:setPosition(self.x, self.y)
90 end
91end

setValue

Description
Definition
setValue()
Code
95function RoundStatusBar:setValue(newValue)
96 self.value = MathUtil.clamp(newValue, 0, 1);
97 self.overlayValue1:setRotation(math.rad(((1-self.value) * 360)), self.overlayValue1.width*0.5, self.overlayValue1.height*0.5);
98 self.overlayBackground1:setRotation(math.rad(180 + (-self.value * 360)), self.overlayBackground1.width*0.5, self.overlayBackground1.height*0.5);
99
100 if self.overlayMarker ~= nil then
101 local markerPosX = math.cos(math.rad(((1-self.value) * 360) + 90)) * self.radius[1];
102 local markerPosY = math.sin(math.rad(((1-self.value) * 360) + 90)) * self.radius[2];
103 self.overlayMarker:setPosition(self.x + self.width/2 - self.overlayMarker.width/2 + markerPosX, self.y + self.height/2 - self.overlayMarker.height/2 + markerPosY);
104 end;
105end