Script v1_7_1_0
- AI
- Animals
- Collections
- Contracts
- Debug
- Economy
- Elements
- EnvironmentalScore
- Errors
- Events
- GUI
- AnimalScreen
- AnimationElement
- BitmapElement
- BoxLayoutElement
- BreadcrumbsElement
- ButtonElement
- ButtonOverlay
- ChatWindow
- CheckedOptionElement
- ClearElement
- ColorPickButtonElement
- ConstructionScreen
- ContextActionDisplay
- ControlBarDisplay
- DialogElement
- DynamicFadedBitmapElement
- FillLevelsDisplay
- FlowLayoutElement
- FocusManager
- FrameElement
- FrameReferenceElement
- GameInfoDisplay
- GameInfoDisplayMobile
- GamePausedDisplay
- Gui
- GuiDataSource
- GuiElement
- GuiMixin
- GuiOverlay
- GuiProfile
- GuiSoundPlayer
- GuiTopDownCamera
- GuiTopDownCursor
- GuiUtils
- HUDDisplayElement
- HUDElement
- HUDFrameElement
- HUDPopupMessage
- HUDSliderElement
- HUDTextDisplay
- IndexChangeSubjectMixin
- IndexStateElement
- InfoDisplay
- InfoHUDBox
- InGameIcon
- IngameMap
- IngameMapElement
- InputGlyphElement
- InputGlyphElementUI
- InputHelpDisplay
- KeyValueInfoHUDBox
- ListElement
- ListItemElement
- MapOverlayGenerator
- MixerWagonHUDExtension
- MultiTextOptionElement
- MultiValueTween
- Overlay
- PagingElement
- PictureElement
- PlatformIconElement
- PlayerControlPadDisplay
- PlaySampleMixin
- RenderElement
- RoundStatusBar
- ScreenElement
- ScrollingLayoutElement
- SettingsModel
- SideNotification
- SideNotificationMobile
- SliderElement
- SpeakerDisplay
- SpeedMeterDisplay
- SpeedSliderDisplay
- StatusBar
- SteeringSliderDisplay
- TabbedMenu
- TabbedMenuFrameElement
- TabbedMenuWithDetails
- TableElement
- TableHeaderElement
- TerrainLayerElement
- TextBackdropElement
- TextElement
- TextInputElement
- ThreePartBitmapElement
- TimerElement
- ToggleButtonElement
- TopNotification
- Tween
- TweenSequence
- VariableWorkWidthHUDExten...
- VehicleHUDExtension
- VehicleSchemaDisplay
- VideoElement
- WardrobeScreen
- Handtools
- Hud
- I3d
- Input
- Jobs
- Maps
- Materials
- Misc
- Objects
- Parameters
- Placeables
- Placement
- Player
- Shop
- Sounds
- Specialization
- Specializations
- StateMachine
- Statistics
- Tasks
- Triggers
- Utils
- Vehicles
Engine v1_7_1_0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- general
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- NoteNode
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- VoiceChat
- XML
Foundation Reference
TerrainLayerElement
DescriptionDisplay a terrain layer imageParent
GuiElementFunctions
canReceiveFocus
DescriptionDefinitioncanReceiveFocus()Code
126 | function 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 |
137 | end |
copyAttributes
DescriptionDefinitioncopyAttributes()Code
35 | function TerrainLayerElement:copyAttributes(src) |
36 | TerrainLayerElement:superClass().copyAttributes(self, src) |
37 | |
38 | self:setTerrainLayer(src.terrainRootNode, src.layer) |
39 | end |
delete
DescriptionDefinitiondelete()Code
27 | function TerrainLayerElement:delete() |
28 | self:destroyOverlay(self.terrainRootNode) |
29 | |
30 | TerrainLayerElement:superClass().delete(self) |
31 | end |
draw
DescriptionDefinitiondraw()Code
77 | function 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) |
122 | end |
getFocusTarget
DescriptionDefinitiongetFocusTarget()Code
141 | function 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 |
149 | end |
new
DescriptionDefinitionnew()Code
17 | function 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 |
23 | end |
setTerrainLayer
DescriptionSet the terrain layer to renderDefinition
setTerrainLayer()Code
43 | function 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 |
54 | end |