LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

VehicleSettingsChangeEvent

Description
Event for vehicle setting change
Parent
Event
Functions

emptyNew

Description
Create instance of Event class
Definition
emptyNew()
Return Values
tableselfinstance of class event
Code
13function VehicleSettingsChangeEvent.emptyNew()
14 local self = Event.new(VehicleSettingsChangeEvent_mt)
15 return self
16end

new

Description
Create new instance of event
Definition
new(table vehicle, boolean isEasyControlActive)
Arguments
tablevehiclevehicle
booleanisEasyControlActiveis easy control enabled
Code
22function VehicleSettingsChangeEvent.new(vehicle, settings, state)
23 local self = VehicleSettingsChangeEvent.emptyNew()
24 self.vehicle = vehicle
25 self.settings = settings
26
27 return self
28end

readStream

Description
Called on client side on join
Definition
readStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
34function VehicleSettingsChangeEvent:readStream(streamId, connection)
35 local vehicle = NetworkUtil.readNodeObject(streamId)
36 local numSettings = streamReadUInt8(streamId)
37
38 local isValid = vehicle ~= nil and vehicle:getIsSynchronized()
39
40 for i=1, numSettings do
41 local index = streamReadUInt8(streamId)
42
43 local state
44 if streamReadBool(streamId) then
45 state = streamReadBool(streamId)
46 else
47 state = streamReadUInt8(streamId)
48 end
49
50 if isValid then
51 vehicle:setVehicleSettingState(index, state, true)
52 end
53 end
54end

run

Description
Run action on receiving side
Definition
run(integer connection)
Arguments
integerconnectionconnection
Code
91function VehicleSettingsChangeEvent:run(connection)
92end

writeStream

Description
Called on server side on join
Definition
writeStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
60function VehicleSettingsChangeEvent:writeStream(streamId, connection)
61 NetworkUtil.writeNodeObject(streamId, self.vehicle)
62
63 local numSettingsToSend = 0
64 for i=1, #self.settings do
65 if self.settings[i].isDirty then
66 numSettingsToSend = numSettingsToSend + 1
67 end
68 end
69
70 streamWriteUInt8(streamId, numSettingsToSend)
71
72 for i=1, #self.settings do
73 local setting = self.settings[i]
74 if setting.isDirty then
75 streamWriteUInt8(streamId, setting.index)
76
77 if streamWriteBool(streamId, setting.isBool) then
78 streamWriteBool(streamId, setting.state)
79 else
80 streamWriteUInt8(streamId, setting.state)
81 end
82
83 setting.isDirty = false
84 end
85 end
86end