LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

ThreePartBitmapElement

Description
Bitmap drawing with a start-image on the left, a repeating image, and an end-image on the right.
Parent
BitmapElement
Functions

applyBitmapAspectScale

Description
Definition
applyBitmapAspectScale()
Code
107function ThreePartBitmapElement:applyBitmapAspectScale()
108 local xScale, yScale = self:getAspectScale()
109
110 self.startSize[1] = self.startSize[1] * xScale
111 self.midSize[1] = self.midSize[1] * xScale
112 self.endSize[1] = self.endSize[1] * xScale
113
114 self.startSize[2] = self.startSize[2] * yScale
115 self.midSize[2] = self.midSize[2] * yScale
116 self.endSize[2] = self.endSize[2] * yScale
117end

applyScreenAlignment

Description
Definition
applyScreenAlignment()
Code
121function ThreePartBitmapElement:applyScreenAlignment()
122 self:applyBitmapAspectScale()
123
124 ThreePartBitmapElement:superClass().applyScreenAlignment(self)
125end

copyAttributes

Description
Definition
copyAttributes()
Code
82function ThreePartBitmapElement:copyAttributes(src)
83 ThreePartBitmapElement:superClass().copyAttributes(self, src)
84
85 self.startSize = table.copy(src.startSize)
86 self.midSize = table.copy(src.midSize)
87 self.endSize = table.copy(src.endSize)
88 self.isHorizontal = src.isHorizontal
89
90 GuiOverlay.copyOverlay(self.startOverlay, src.startOverlay)
91 GuiOverlay.copyOverlay(self.endOverlay, src.endOverlay)
92end

delete

Description
Definition
delete()
Code
33function ThreePartBitmapElement:delete()
34 GuiOverlay.deleteOverlay(self.startOverlay)
35 GuiOverlay.deleteOverlay(self.endOverlay)
36
37 ThreePartBitmapElement:superClass().delete(self)
38end

draw

Description
Definition
draw()
Code
129function ThreePartBitmapElement:draw(clipX1, clipY1, clipX2, clipY2)
130 local xOffset, yOffset = self:getOffset()
131
132 local x = self.absPosition[1] + xOffset
133 local y = self.absPosition[2] + yOffset
134
135 local state = self:getOverlayState()
136 if self.isHorizontal then
137 GuiOverlay.renderOverlay(self.startOverlay, x, y, self.startSize[1], self.absSize[2], state, clipX1, clipY1, clipX2, clipY2)
138 GuiOverlay.renderOverlay(self.overlay, x + self.startSize[1], y, alignSizeToScreenPixels(self.absSize[1] - self.startSize[1] - self.endSize[1]), self.absSize[2], state, clipX1, clipY1, clipX2, clipY2)
139 GuiOverlay.renderOverlay(self.endOverlay, alignHorizontalToScreenPixels(x + self.absSize[1] - self.endSize[1]), y, self.endSize[1], self.absSize[2], state, clipX1, clipY1, clipX2, clipY2)
140 else
141 GuiOverlay.renderOverlay(self.startOverlay, x, y + self.absSize[2] - self.startSize[2], self.absSize[1], self.startSize[2], state, clipX1, clipY1, clipX2, clipY2)
142 GuiOverlay.renderOverlay(self.overlay, x, y + self.endSize[2], self.absSize[1], self.absSize[2] - self.startSize[2] - self.endSize[2], state, clipX1, clipY1, clipX2, clipY2)
143 GuiOverlay.renderOverlay(self.endOverlay, x, y, self.absSize[1], self.endSize[2], state, clipX1, clipY1, clipX2, clipY2)
144 end
145
146 -- Skip bitmap itself
147 BitmapElement:superClass().draw(self, clipX1, clipY1, clipX2, clipY2)
148end

loadFromXML

Description
Definition
loadFromXML()
Code
42function ThreePartBitmapElement:loadFromXML(xmlFile, key)
43 ThreePartBitmapElement:superClass().loadFromXML(self, xmlFile, key)
44
45 GuiOverlay.loadOverlay(self, self.startOverlay, "startImage", self.imageSize, nil, xmlFile, key)
46 GuiOverlay.loadOverlay(self, self.endOverlay, "endImage", self.imageSize, nil, xmlFile, key)
47
48 self.startSize = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#startImageSize"), self.outputSize, self.startSize)
49 self.midSize = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#midImageSize"), self.outputSize, self.midSize)
50 self.endSize = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#endImageSize"), self.outputSize, self.endSize)
51 self.isHorizontal = Utils.getNoNil(getXMLBool(xmlFile, key .. "#isHorizontal"), self.isHorizontal)
52
53 GuiOverlay.createOverlay(self.startOverlay)
54 GuiOverlay.createOverlay(self.endOverlay)
55end

loadProfile

Description
Definition
loadProfile()
Code
59function ThreePartBitmapElement:loadProfile(profile, applyProfile)
60 ThreePartBitmapElement:superClass().loadProfile(self, profile, applyProfile)
61
62 local startOld = self.startOverlay.filename
63 local endOld = self.endOverlay.filename
64 GuiOverlay.loadOverlay(self, self.startOverlay, "startImage", self.imageSize, profile, nil, nil)
65 GuiOverlay.loadOverlay(self, self.endOverlay, "endImage", self.imageSize, profile, nil, nil)
66
67 self.startSize = GuiUtils.getNormalizedValues(profile:getValue("startImageSize"), self.outputSize, self.startSize)
68 self.midSize = GuiUtils.getNormalizedValues(profile:getValue("midImageSize"), self.outputSize, self.midSize)
69 self.endSize = GuiUtils.getNormalizedValues(profile:getValue("endImageSize"), self.outputSize, self.endSize)
70 self.isHorizontal = profile:getBool("isHorizontal", self.isHorizontal)
71
72 if startOld ~= self.startOverlay.filename then
73 GuiOverlay.createOverlay(self.startOverlay)
74 end
75 if endOld ~= self.endOverlay.filename then
76 GuiOverlay.createOverlay(self.endOverlay)
77 end
78end

new

Description
Definition
new()
Code
17function ThreePartBitmapElement.new(target, custom_mt)
18 local self = BitmapElement.new(target, custom_mt or ThreePartBitmapElement_mt)
19
20 self.startOverlay = {}
21 self.endOverlay = {}
22
23 self.startSize = {0, 0}
24 self.midSize = {0, 0}
25 self.endSize = {0, 0}
26 self.isHorizontal = true
27
28 return self
29end