LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

BitmapElement

Description
Display element for images. Used layers: "image" for the display image.
Parent
GuiElement
XML Configuration Parameters
GuiElement#offsetstring [optional] Position offset of the displayed image relative to this element's origin in reference resolution, defaults to [0, 0]. Format: "[x]px [y]px".
GuiElement#focuseOffsetstring [optional] Position offset of the displayed image when it's focused, pressed, highlighted or selected. Works like #offset.

Functions

applyBitmapAspectScale

Description
Definition
applyBitmapAspectScale()
Code
82function BitmapElement:applyBitmapAspectScale()
83 local xScale, yScale = self:getAspectScale()
84
85 self.offset[1] = self.offset[1] * xScale
86 self.focusedOffset[1] = self.focusedOffset[1] * xScale
87
88 self.offset[2] = self.offset[2] * yScale
89 self.focusedOffset[2] = self.focusedOffset[2] * yScale
90end

applyScreenAlignment

Description
Definition
applyScreenAlignment()
Code
94function BitmapElement:applyScreenAlignment()
95 self:applyBitmapAspectScale()
96
97 BitmapElement:superClass().applyScreenAlignment(self)
98end

canReceiveFocus

Description
Definition
canReceiveFocus()
Code
194function BitmapElement:canReceiveFocus()
195 -- if not visible, or no focusable elements: cannot receive focus
196 if not self.visible or #self.elements < 1 then
197 return false
198 end
199
200 -- element can only receive focus if all sub elements are ready to receive focus
201 for _, v in ipairs(self.elements) do
202 if (not v:canReceiveFocus()) then
203 return false
204 end
205 end
206 return true
207end

copyAttributes

Description
Definition
copyAttributes()
Code
72function BitmapElement:copyAttributes(src)
73 BitmapElement:superClass().copyAttributes(self, src)
74
75 GuiOverlay.copyOverlay(self.overlay, src.overlay)
76 self.offset = table.copy(src.offset)
77 self.focusedOffset = table.copy(src.focusedOffset)
78end

delete

Description
Definition
delete()
Code
32function BitmapElement:delete()
33 GuiOverlay.deleteOverlay(self.overlay)
34
35 BitmapElement:superClass().delete(self)
36end

draw

Description
Definition
draw()
Code
184function BitmapElement:draw(clipX1, clipY1, clipX2, clipY2)
185 local xOffset, yOffset = self:getOffset()
186
187 GuiOverlay.renderOverlay(self.overlay, self.absPosition[1]+xOffset, self.absPosition[2]+yOffset, self.absSize[1], self.absSize[2], self:getOverlayState(), clipX1, clipY1, clipX2, clipY2)
188
189 BitmapElement:superClass().draw(self, clipX1, clipY1, clipX2, clipY2)
190end

getFocusTarget

Description
Definition
getFocusTarget()
Code
211function BitmapElement:getFocusTarget()
212 if #self.elements > 0 then
213 local _, firstElement = next(self.elements)
214 if firstElement then
215 return firstElement
216 end
217 end
218 return self
219end

getOffset

Description
Definition
getOffset()
Code
122function BitmapElement:getOffset()
123 local xOffset, yOffset = self.offset[1], self.offset[2]
124 local state = self:getOverlayState()
125 if state == GuiOverlay.STATE_FOCUSED or state == GuiOverlay.STATE_PRESSED or state == GuiOverlay.STATE_SELECTED or GuiOverlay.STATE_HIGHLIGHTED then
126 xOffset = self.focusedOffset[1]
127 yOffset = self.focusedOffset[2]
128 end
129 return xOffset, yOffset
130end

loadFromXML

Description
Definition
loadFromXML()
Code
40function BitmapElement:loadFromXML(xmlFile, key)
41 BitmapElement:superClass().loadFromXML(self, xmlFile, key)
42
43 GuiOverlay.loadOverlay(self, self.overlay, "image", self.imageSize, nil, xmlFile, key)
44 self.focusedOffset = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#focusedOffset"), self.outputSize, self.focusedOffset)
45 self.offset = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#offset"), self.outputSize, self.offset)
46
47 GuiOverlay.createOverlay(self.overlay)
48end

loadProfile

Description
Definition
loadProfile()
Code
52function BitmapElement:loadProfile(profile, applyProfile)
53 BitmapElement:superClass().loadProfile(self, profile, applyProfile)
54
55 local oldFilename = self.overlay.filename
56 local oldPreviewFilename = self.overlay.previewFilename
57 GuiOverlay.loadOverlay(self, self.overlay, "image", self.imageSize, profile, nil, nil)
58 self.offset = GuiUtils.getNormalizedValues(profile:getValue("offset"), self.outputSize, self.offset)
59 self.focusedOffset = GuiUtils.getNormalizedValues(profile:getValue("focusedOffset"), self.outputSize, {self.offset[1], self.offset[2]})
60
61 if oldFilename ~= self.overlay.filename or oldPreviewFilename ~= self.overlay.previewFilename then
62 GuiOverlay.createOverlay(self.overlay)
63 end
64
65 if applyProfile then
66 self:applyBitmapAspectScale()
67 end
68end

new

Description
Definition
new()
Code
20function BitmapElement.new(target, custom_mt)
21 local self = GuiElement.new(target, custom_mt or BitmapElement_mt)
22
23 self.offset = {0,0}
24 self.focusedOffset = {0,0}
25 self.overlay = {}
26
27 return self
28end

setAlpha

Description
Set image alpha
Definition
setAlpha()
Code
113function BitmapElement:setAlpha(alpha)
114 BitmapElement:superClass().setAlpha(self, alpha)
115 if self.overlay ~= nil then
116 self.overlay.alpha = self.alpha
117 end
118end

setDisabled

Description
Definition
setDisabled()
Code
102function BitmapElement:setDisabled(disabled, doNotUpdateChildren)
103 BitmapElement:superClass().setDisabled(self, disabled, doNotUpdateChildren)
104 if disabled then
105 self:setOverlayState(GuiOverlay.STATE_DISABLED)
106 else
107 self:setOverlayState(GuiOverlay.STATE_NORMAL)
108 end
109end

setImageColor

Description
Set this element's image color. Omitted (nil value) color values have no effect and the previously set value for that channel is used.
Definition
setImageColor(state GuiOverlay, r Red, g Green, b Blue, a Alpha)
Arguments
stateGuiOverlaystate for which the color is changed, use nil to set the default color
rRedcolor value
gGreencolor value
bBluecolor value
aAlphavalue (transparency)
Code
152function BitmapElement:setImageColor(state, r, g, b, a)
153 local color = GuiOverlay.getOverlayColor(self.overlay, state)
154 color[1] = Utils.getNoNil(r, color[1])
155 color[2] = Utils.getNoNil(g, color[2])
156 color[3] = Utils.getNoNil(b, color[3])
157 color[4] = Utils.getNoNil(a, color[4])
158end

setImageFilename

Description
Set the image filename
Definition
setImageFilename()
Code
140function BitmapElement:setImageFilename(filename)
141 self.overlay = GuiOverlay.createOverlay(self.overlay, filename)
142end

setImageRotation

Description
Set this element's image overlay's rotation.
Definition
setImageRotation(float rotation)
Arguments
floatrotationRotation in radians
Code
178function BitmapElement:setImageRotation(rotation)
179 self.overlay.rotation = rotation
180end

setImageUVs

Description
Set image UVs (normalized)
Definition
setImageUVs()
Code
162function BitmapElement:setImageUVs(state, v0, u0, v1, u1, v2, u2, v3, u3)
163 state = Utils.getNoNil(state, self:getOverlayState())
164 local uvs = GuiOverlay.getOverlayUVs(self.overlay, state)
165 uvs[1] = Utils.getNoNil(v0, uvs[1])
166 uvs[2] = Utils.getNoNil(u0, uvs[2])
167 uvs[3] = Utils.getNoNil(v1, uvs[3])
168 uvs[4] = Utils.getNoNil(u1, uvs[4])
169 uvs[5] = Utils.getNoNil(v2, uvs[5])
170 uvs[6] = Utils.getNoNil(u2, uvs[6])
171 uvs[7] = Utils.getNoNil(v3, uvs[7])
172 uvs[8] = Utils.getNoNil(u3, uvs[8])
173end

setIsWebOverlay

Description
Definition
setIsWebOverlay()
Code
134function BitmapElement:setIsWebOverlay(isWebOverlay)
135 self.overlay.isWebOverlay = isWebOverlay
136end