LUADOC - Farming Simulator 19

Script v1.7.1.0

Engine v1.7.1.0

Foundation Reference

AnimationElement

Description
Animated image display element. The animation is created by shifting UV texture coordinates per frame across a suitable texture. Used layers: "image" for the display image.
Parent
BitmapElement
XML Configuration Parameters
GuiElement#animationOffsetint [optional] Initial frame offset of the animation.
GuiElement#animationFramesint [optional] Number of frames to animate, defaults to 8. Base this on the display image.
GuiElement#animationSpeedint [optional] Time in milliseconds for each frame, defaults to 120ms.
GuiElement#animationUVOffsetstring [optional] Additional UV offset for this animation in the display image space. Format: "[u]px [v]px"

Functions

copyAttributes

Description
Definition
copyAttributes()
Code
76function AnimationElement:copyAttributes(src)
77 AnimationElement:superClass().copyAttributes(self, src)
78
79 self.animationDefaultUVs = ListUtil.copyTable(src.animationDefaultUVs)
80 self.animationOffset = src.animationOffset
81 self.animationFrames = src.animationFrames
82 self.animationSpeed = src.animationSpeed
83 self.animationUVOffset = src.animationUVOffset
84
85 self:setImageUVs(nil, unpack(self.animationDefaultUVs))
86
87 self:setAnimationData()
88end

loadFromXML

Description
Definition
loadFromXML()
Code
39function AnimationElement:loadFromXML(xmlFile, key)
40 AnimationElement:superClass().loadFromXML(self, xmlFile, key)
41
42 self.animationOffset = Utils.getNoNil(getXMLInt(xmlFile, key.."#animationOffset"), self.animationOffset)
43 self.animationFrames = Utils.getNoNil(getXMLInt(xmlFile, key.."#animationFrames"), self.animationFrames)
44 self.animationSpeed = Utils.getNoNil(getXMLInt(xmlFile, key.."#animationSpeed"), self.animationSpeed)
45
46 local animationUVOffset = getXMLString(xmlFile, key.."#animationUVOffset")
47 if animationUVOffset ~= nil then
48 animationUVOffset = GuiUtils.getNormalizedValues(animationUVOffset, self.imageSize)
49 self.animationUVOffset = animationUVOffset[1]
50 end
51
52 local uvs = GuiOverlay.getOverlayUVs(self.overlay, self:getOverlayState())
53 self.animationDefaultUVs = ListUtil.copyTable(uvs)
54
55 self:setAnimationData()
56end

loadProfile

Description
Definition
loadProfile()
Code
60function AnimationElement:loadProfile(profile, applyProfile)
61 AnimationElement:superClass().loadProfile(self, profile, applyProfile)
62
63 self.animationOffset = profile:getNumber("animationOffset", self.animationOffset)
64 self.animationFrames = profile:getNumber("animationFrames", self.animationFrames)
65 self.animationSpeed = profile:getNumber("animationSpeed", self.animationSpeed)
66
67 local animationUVOffset = profile:getValue("animationUVOffset")
68 if animationUVOffset ~= nil then
69 animationUVOffset = GuiUtils.getNormalizedValues(animationUVOffset, self.imageSize)
70 self.animationUVOffset = animationUVOffset[1]
71 end
72end

new

Description
Definition
new()
Code
23function AnimationElement:new(target, custom_mt)
24 local self = BitmapElement:new(target, custom_mt or AnimationElement_mt)
25
26 self.animationOffset = -1
27 self.animationFrames = 8
28 self.animationTimer = 0
29 self.animationSpeed = 120
30 self.animationFrameSize = 0
31 self.animationStartPos = 0
32 self.animationUVOffset = 0
33
34 return self
35end

setAnimationData

Description
Definition
setAnimationData()
Code
115function AnimationElement:setAnimationData()
116 if self.overlay ~= nil then
117 local uvs = GuiOverlay.getOverlayUVs(self.overlay, self:getOverlayState())
118 self.animationFrameSize = ((uvs[5]-uvs[1]- self.animationUVOffset*(self.animationFrames-1)) / self.animationFrames)
119 self.animationStartPos = uvs[1]
120 self:updateAnimationUVs()
121 end
122end

update

Description
Definition
update()
Code
92function AnimationElement:update(dt)
93 AnimationElement:superClass().update(self, dt)
94
95 self.animationTimer = self.animationTimer - dt
96 if self.animationTimer < 0 then
97 self.animationTimer = self.animationSpeed
98 self.animationOffset = self.animationOffset + 1
99 if self.animationOffset > self.animationFrames - 1 then
100 self.animationOffset = 0
101 end
102 self:updateAnimationUVs()
103 end
104end

updateAnimationUVs

Description
Definition
updateAnimationUVs()
Code
108function AnimationElement:updateAnimationUVs()
109 local frameOffset = self.animationStartPos + (self.animationFrameSize+self.animationUVOffset)*self.animationOffset
110 self:setImageUVs(nil, frameOffset, nil, frameOffset, nil, frameOffset+self.animationFrameSize, nil, frameOffset+self.animationFrameSize, nil)
111end