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
ThreePartBitmapElement
DescriptionBitmap drawing with a start-image on the left, a repeating image, and an end-image on the right.Parent
BitmapElementFunctions
applyBitmapAspectScale
DescriptionDefinitionapplyBitmapAspectScale()Code
107 | function 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 |
117 | end |
applyScreenAlignment
DescriptionDefinitionapplyScreenAlignment()Code
121 | function ThreePartBitmapElement:applyScreenAlignment() |
122 | self:applyBitmapAspectScale() |
123 | |
124 | ThreePartBitmapElement:superClass().applyScreenAlignment(self) |
125 | end |
copyAttributes
DescriptionDefinitioncopyAttributes()Code
82 | function 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) |
92 | end |
delete
DescriptionDefinitiondelete()Code
33 | function ThreePartBitmapElement:delete() |
34 | GuiOverlay.deleteOverlay(self.startOverlay) |
35 | GuiOverlay.deleteOverlay(self.endOverlay) |
36 | |
37 | ThreePartBitmapElement:superClass().delete(self) |
38 | end |
draw
DescriptionDefinitiondraw()Code
129 | function 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) |
148 | end |
loadFromXML
DescriptionDefinitionloadFromXML()Code
42 | function 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) |
55 | end |
loadProfile
DescriptionDefinitionloadProfile()Code
59 | function 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 |
78 | end |
new
DescriptionDefinitionnew()Code
17 | function 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 |
29 | end |