LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

Timer

Functions

createOneshot

Description
Create a one-shot timer for duration. This effectively is an async operation calling the callback after givent timeout.
Definition
createOneshot()
Code
122function Timer.createOneshot(duration, callback)
123 local timer = Timer.new(duration)
124 timer:setFinishCallback(function()
125 timer:delete()
126 return callback()
127 end)
128 timer:start()
129
130 return timer
131end

delete

Description
Definition
delete()
Code
30function Timer:delete()
31 self:reset()
32end

finish

Description
Definition
finish()
Code
75function Timer:finish()
76 g_currentMission:removeUpdateable(self)
77 self.timeLeft = 0
78 self.isRunning = false
79 if self.callback ~= nil then
80 self.callback(self)
81 end
82end

getDuration

Description
Get the duration of the timer
Definition
getDuration()
Code
135function Timer:getDuration()
136 return self.duration
137end

getIsRunning

Description
Get whether the timer is running
Definition
getIsRunning()
Code
86function Timer:getIsRunning()
87 return self.isRunning
88end

getTimePassed

Description
Get the time that has passed since the timer started, in milliseconds
Definition
getTimePassed()
Code
99function Timer:getTimePassed()
100 return self.duration - self.timeLeft
101end

new

Description
Definition
new()
Code
15function Timer.new(duration)
16 local self = setmetatable({}, Timer_mt)
17
18 self.duration = duration
19 self.callback = nil
20 self.isRunning = false
21 self.timeLeft = duration
22
23 self:reset()
24
25 return self
26end

readUpdateStream

Description
Definition
readUpdateStream()
Code
154function Timer:readUpdateStream(streamId)
155 self.timeLeft = streamReadInt32(streamId)
156end

reset

Description
Definition
reset()
Code
36function Timer:reset()
37 g_currentMission:removeUpdateable(self)
38 self.isRunning = false
39end

setDuration

Description
Set the duration of the timer. Will take affect with the next start
Definition
setDuration()
Code
141function Timer:setDuration(duration)
142 self.duration = duration
143 return self
144end

setFinishCallback

Description
Set the callback to be called when the timer finishes
Definition
setFinishCallback()
Code
92function Timer:setFinishCallback(callback)
93 self.callback = callback
94 return self
95end

start

Description
Start the timer.
Definition
start()
Code
43function Timer:start(noReset)
44 if self.duration == nil then
45 Logging.error("Timer duration not set")
46 printCallstack()
47 return
48 end
49
50 self.isRunning = true
51 if noReset == nil or not noReset then
52 self.timeLeft = self.duration
53 end
54
55 g_currentMission:addUpdateable(self)
56end

startIfNotRunning

Description
Definition
startIfNotRunning()
Code
60function Timer:startIfNotRunning()
61 if not self.isRunning then
62 self:start()
63 end
64end

stop

Description
Stop the timer
Definition
stop()
Code
68function Timer:stop()
69 g_currentMission:removeUpdateable(self)
70 self.isRunning = false
71end

update

Description
Definition
update()
Code
110function Timer:update(dt)
111 if self.isRunning then
112 self.timeLeft = self.timeLeft - dt
113
114 if self.timeLeft <= 0 then
115 self:finish()
116 end
117 end
118end

writeUpdateStream

Description
Definition
writeUpdateStream()
Code
148function Timer:writeUpdateStream(streamId)
149 streamWriteInt32(streamId, self.timeLeft)
150end