LUADOC - Farming Simulator 22

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 startX, startY = self:getPosition()
111
112 local sequence = TweenSequence.new(self)
113 sequence:insertTween(MultiValueTween.new(self.setPosition, {startX, startY}, {self.origX, self.origY}, HUDDisplayElement.MOVE_ANIMATION_DURATION), 0)
114 sequence:addCallback(self.onAnimateVisibilityFinished, true)
115 sequence:start()
116 self.animation = sequence
117end

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
23function HUDDisplayElement.new(overlay, parentHudElement, customMt)
24 local self = HUDDisplayElement:superClass().new(overlay, parentHudElement, customMt or HUDDisplayElement_mt)
25
26 self.origX, self.origY = 0, 0 -- original positions, stored to support stable animation states
27 self.animationState = nil
28
29 return self
30end

onAnimateVisibilityFinished

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

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
36function HUDDisplayElement:setVisible(isVisible, animate)
37 if animate and self.animation:getFinished() then
38 if isVisible then
39 self:animateShow()
40 else
41 self:animateHide()
42 end
43 else
44 self.animation:stop()
45 HUDDisplayElement:superClass().setVisible(self, isVisible)
46
47 local posX, posY = self:getPosition()
48 local transX, transY = self:getHidingTranslation()
49 if isVisible then
50 self:setPosition(self.origX, self.origY)
51 else
52 self:setPosition(posX + transX, posY + transY)
53 end
54 end
55
56 self.animationState = isVisible
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