LUADOC - Farming Simulator 22

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