LUADOC - Farming Simulator 19

WeighStation

Description
Class for weigh stations
Functions

delete

Description
Delete weigh station
Definition
delete()
Code
40function WeighStation:delete()
41 if self.triggerId ~= nil then
42 removeTrigger(self.triggerId)
43 self.triggerId = nil
44 end
45end

new

Description
Create new weigh station object
Definition
new(integer trigger)
Arguments
integertriggerid id of trigger node
Return Values
tableinstanceinstance of object
Code
19function WeighStation:new(triggerId)
20 local self = {}
21 setmetatable(self, WeighStation_mt)
22
23 local nodeId = triggerId
24 self.triggerId = triggerId
25 addTrigger(triggerId, "triggerCallback", self)
26
27 self.isEnabled = true
28 self.triggerVehicles = {}
29
30 local weightDisplayIndex = getUserAttribute(nodeId, "weightDisplayIndex")
31 if weightDisplayIndex ~= nil then
32 self.displayNumbers = I3DUtil.indexToObject(nodeId, weightDisplayIndex)
33 end
34
35 return self
36end

onCreate

Description
On create weigh station
Definition
onCreate(integer id)
Arguments
integeridid of weigh station node
Code
11function WeighStation:onCreate(id)
12 g_currentMission:addNonUpdateable(WeighStation:new(id))
13end

triggerCallback

Description
Trigger callback
Definition
triggerCallback(integer triggerId, integer otherId, boolean onEnter, boolean onLeave, boolean onStay)
Arguments
integertriggerIdid of trigger
integerotherIdid of actor
booleanonEnteron enter
booleanonLeaveon leave
booleanonStayon stay
Code
73function WeighStation:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay)
74 if self.isEnabled and (onEnter or onLeave) then
75 local vehicle = g_currentMission.nodeToObject[otherId]
76 if onEnter then
77 if vehicle ~= nil then
78 if self.triggerVehicles[vehicle] == nil then
79 self.triggerVehicles[vehicle] = 0
80 end
81 self.triggerVehicles[vehicle] = self.triggerVehicles[vehicle] + 1
82 end
83 else
84 if vehicle ~= nil then
85 self.triggerVehicles[vehicle] = self.triggerVehicles[vehicle] - 1
86 if self.triggerVehicles[vehicle] == 0 then
87 self.triggerVehicles[vehicle] = nil
88 end
89 end
90 end
91
92 self:updateWeight()
93 end
94end

updateDisplayNumbers

Description
Write new mass into the display
Definition
updateDisplayNumbers(float mass)
Arguments
floatmassmass
Code
50function WeighStation:updateDisplayNumbers(mass)
51 if self.displayNumbers ~= nil then
52 I3DUtil.setNumberShaderByValue(self.displayNumbers, math.floor(mass), 0)
53 end
54end

updateWeight

Description
Get mass of vehicles in trigger and update display
Definition
updateWeight()
Code
58function WeighStation:updateWeight()
59 local mass = 0
60 for vehicle, _ in pairs(self.triggerVehicles) do
61 mass = mass + vehicle:getTotalMass()
62 end
63 self:updateDisplayNumbers(mass*1000)
64end