LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

TerrainLayerElement

Description
Display a terrain layer image
Parent
GuiElement
Functions

canReceiveFocus

Description
Definition
canReceiveFocus()
Code
126function TerrainLayerElement:canReceiveFocus()
127 if not self.visible or #self.elements < 1 then
128 return false
129 end
130 -- element can only receive focus if all sub elements are ready to receive focus
131 for _, v in ipairs(self.elements) do
132 if (not v:canReceiveFocus()) then
133 return false
134 end
135 end
136 return true
137end

copyAttributes

Description
Definition
copyAttributes()
Code
35function TerrainLayerElement:copyAttributes(src)
36 TerrainLayerElement:superClass().copyAttributes(self, src)
37
38 self:setTerrainLayer(src.terrainRootNode, src.layer)
39end

delete

Description
Definition
delete()
Code
27function TerrainLayerElement:delete()
28 self:destroyOverlay(self.terrainRootNode)
29
30 TerrainLayerElement:superClass().delete(self)
31end

draw

Description
Definition
draw()
Code
77function TerrainLayerElement:draw(clipX1, clipY1, clipX2, clipY2)
78 local posX, posY, sizeX, sizeY = self.absPosition[1], self.absPosition[2], self.size[1], self.size[2]
79 local u1, v1, u2, v2, u3, v3, u4, v4 = 0, 0, 0, 1, 1, 0, 1, 1
80
81 -- Needs clipping
82 if clipX1 ~= nil then
83 local oldX1, oldY1, oldX2, oldY2 = posX, posY, sizeX + posX, sizeY + posY
84
85 local posX2 = posX + sizeX
86 local posY2 = posY + sizeY
87
88 posX = math.max(posX, clipX1)
89 posY = math.max(posY, clipY1)
90
91 sizeX = math.max(math.min(posX2, clipX2) - posX, 0)
92 sizeY = math.max(math.min(posY2, clipY2) - posY, 0)
93
94 local p1 = (posX - oldX1) / (oldX2 - oldX1) -- start x
95 local p2 = (posY - oldY1) / (oldY2 - oldY1) -- start y
96 local p3 = ((posX + sizeX) - oldX1) / (oldX2 - oldX1) -- end x
97 local p4 = ((posY + sizeY) - oldY1) / (oldY2 - oldY1) -- end y
98
99 -- start x, start y
100 u1 = p1
101 v1 = p2
102
103 -- start x, end y
104 u2 = p1
105 v2 = p4
106
107 -- end x, start y
108 u3 = p3
109 v3 = p2
110
111 -- end x, end y
112 u4 = p3
113 v4 = p4
114 end
115
116 if u1 ~= u3 and v1 ~= v2 then
117 setOverlayUVs(self.terrainLayerTextureOverlay, u1, v1, u2, v2, u3, v3, u4, v4)
118 renderOverlay(self.terrainLayerTextureOverlay, posX, posY, sizeX, sizeY)
119 end
120
121 TerrainLayerElement:superClass().draw(self, clipX1, clipY1, clipX2, clipY2)
122end

getFocusTarget

Description
Definition
getFocusTarget()
Code
141function TerrainLayerElement:getFocusTarget()
142 if #self.elements > 0 then
143 local _, firstElement = next(self.elements)
144 if firstElement then
145 return firstElement
146 end
147 end
148 return self
149end

new

Description
Definition
new()
Code
17function TerrainLayerElement.new(target, custom_mt)
18 local self = TerrainLayerElement:superClass().new(target, custom_mt or TerrainLayerElement_mt)
19
20 self.terrainLayerTextureOverlay = nil
21
22 return self
23end

setTerrainLayer

Description
Set the terrain layer to render
Definition
setTerrainLayer()
Code
43function TerrainLayerElement:setTerrainLayer(terrainRootNode, layer)
44 if layer ~= nil then
45 if self.terrainLayerTextureOverlay == nil then
46 self:createOverlay(terrainRootNode)
47 end
48
49 local displayLayer = getTerrainLayerSubLayer(terrainRootNode, layer, 0)
50 setOverlayLayer(self.terrainLayerTextureOverlay, displayLayer)
51
52 self.layer = layer
53 end
54end