LUADOC - Farming Simulator 19

Script v1.7.1.0

Engine v1.7.1.0

Foundation Reference

HUDDisplayElement

Description
HUD display element whose subclasses implement more complex HUD display subsystems.
Parent
HUDElement
Functions

animateHide

Description
Animate this element on hiding.
Definition
animateHide()
Code
94function HUDDisplayElement:animateHide()
95 local transX, transY = self:getHidingTranslation()
96 local startX, startY = self:getPosition()
97
98 local sequence = TweenSequence.new(self)
99 sequence:insertTween(MultiValueTween:new(self.setPosition, {startX, startY}, {startX + transX, startY + transY}, HUDDisplayElement.MOVE_ANIMATION_DURATION), 0)
100 sequence:addCallback(self.onAnimateVisibilityFinished, false)
101 sequence:start()
102 self.animation = sequence
103end

animateShow

Description
Animate this element on showing.
Definition
animateShow()
Code
107function HUDDisplayElement:animateShow()
108 HUDDisplayElement:superClass().setVisible(self, true)
109
110 local transX, transY = self:getHidingTranslation()
111 local startX, startY = self:getPosition()
112
113 local sequence = TweenSequence.new(self)
114 sequence:insertTween(MultiValueTween:new(self.setPosition, {startX, startY}, {self.origX, self.origY}, HUDDisplayElement.MOVE_ANIMATION_DURATION), 0)
115 sequence:addCallback(self.onAnimateVisibilityFinished, true)
116 sequence:start()
117 self.animation = sequence
118end

animationSetPositionX

Description
Animation setter function for X position.
Definition
animationSetPositionX()
Code
82function HUDDisplayElement:animationSetPositionX(x)
83 self:setPosition(x, nil)
84end

animationSetPositionY

Description
Animation setter function for Y position.
Definition
animationSetPositionY()
Code
88function HUDDisplayElement:animationSetPositionY(y)
89 self:setPosition(nil, y)
90end

getHidingTranslation

Description
Get the screen space translation for hiding. Override in sub-classes if a different translation is required.
Definition
getHidingTranslation()
Return Values
floatScreenspace X translation
floatScreenspace Y translation
Code
76function HUDDisplayElement:getHidingTranslation()
77 return 0, -0.5
78end

new

Description
Create a new HUD display element.
Definition
new(table subClass, table overlay, table parentHudElement)
Arguments
tablesubClassSubclass metatable for inheritance
tableoverlayWrapped Overlay instance
tableparentHudElement[optional] Parent HUD element of the newly created HUD element
Return Values
tableHUDDisplayElementinstance
Code
22function HUDDisplayElement.new(subClass, overlay, parentHudElement)
23 if not subClass or subClass == HUDDisplayElement then
24 subClass = HUDDisplayElement_mt
25 end
26
27 local self = HUDDisplayElement:superClass().new(subClass, overlay, parentHudElement)
28
29 self.origX, self.origY = 0, 0 -- original positions, stored to support stable animation states
30
31 return self
32end

onAnimateVisibilityFinished

Description
Called when a hiding or showing animation has finished.
Definition
onAnimateVisibilityFinished()
Code
122function HUDDisplayElement:onAnimateVisibilityFinished(isVisible)
123 if not isVisible then -- delayed call when hiding
124 HUDDisplayElement:superClass().setVisible(self, isVisible)
125 end
126end

setScale

Description
Simplification of scale setter because these high-level elements always use a uniform scale.
Definition
setScale()
Code
61function HUDDisplayElement:setScale(uiScale)
62 HUDDisplayElement:superClass().setScale(self, uiScale, uiScale)
63end

setVisible

Description
Set this element's visibility with optional animation.
Definition
setVisible(bool isVisible, bool animate)
Arguments
boolisVisibleTrue is visible, false is not.
boolanimateIf true, the element will play an animation before applying the visibility change.
Code
38function HUDDisplayElement:setVisible(isVisible, animate)
39 if animate and self.animation:getFinished() then
40 if isVisible then
41 self:animateShow()
42 else
43 self:animateHide()
44 end
45 else
46 self.animation:stop()
47 HUDDisplayElement:superClass().setVisible(self, isVisible)
48
49 local posX, posY = self:getPosition()
50 local transX, transY = self:getHidingTranslation()
51 if isVisible then
52 self:setPosition(self.origX, self.origY)
53 else
54 self:setPosition(posX + transX, posY + transY)
55 end
56 end
57end

storeOriginalPosition

Description
Store the current element position as its original positions.
Definition
storeOriginalPosition()
Code
67function HUDDisplayElement:storeOriginalPosition()
68 self.origX, self.origY = self:getPosition()
69end