LUADOC - Farming Simulator 17

Printable Version

AIVehicleSetStartedEvent

Description
Event for ai start
Functions

emptyNew

Description
Create instance of Event class
Definition
emptyNew()
Return Values
tableselfinstance of class event
Code
15function AIVehicleSetStartedEvent:emptyNew()
16 local self = Event:new(AIVehicleSetStartedEvent_mt);
17 return self;
18end;

new

Description
Create new instance of event
Definition
new(table object, integer reason, boolean isStarted, integer helper)
Arguments
tableobjectobject
integerreasonreason
booleanisStartedis started
integerhelperhelper id
Code
26function AIVehicleSetStartedEvent:new(object, reason, isStarted, helper)
27 local self = AIVehicleSetStartedEvent:emptyNew()
28 self.object = object;
29 self.isStarted = isStarted;
30 self.reason = reason
31 if helper ~= nil then
32 self.helperIndex = helper.index
33 end
34 return self;
35end;

readStream

Description
Called on client side on join
Definition
readStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
41function AIVehicleSetStartedEvent:readStream(streamId, connection)
42 self.object = readNetworkNodeObject(streamId);
43 self.isStarted = streamReadBool(streamId);
44 if not self.isStarted then
45 self.reason = streamReadUIntN(streamId, AIVehicle.NUM_BITS_REASONS)
46 else
47 self.helperIndex = streamReadUInt8(streamId)
48 end
49 self:run(connection);
50end;

writeStream

Description
Called on server side on join
Definition
writeStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
56function AIVehicleSetStartedEvent:writeStream(streamId, connection)
57 writeNetworkNodeObject(streamId, self.object);
58 streamWriteBool(streamId, self.isStarted);
59 if not self.isStarted then
60 streamWriteUIntN(streamId, self.reason, AIVehicle.NUM_BITS_REASONS)
61 else
62 streamWriteUInt8(streamId, self.helperIndex)
63 end
64end;

run

Description
Run action on receiving side
Definition
run(integer connection)
Arguments
integerconnectionconnection
Code
69function AIVehicleSetStartedEvent:run(connection)
70 if self.isStarted then
71 self.object:startAIVehicle(self.helperIndex, true);
72 else
73 self.object:stopAIVehicle(self.reason, true);
74 end;
75 if not connection:getIsServer() then
76 for _, v in pairs(g_server.clientConnections) do
77 if v ~= connection and not v:getIsLocal() then
78 v:sendEvent(AIVehicleSetStartedEvent:new(self.object, self.reason, self.isStarted, HelperUtil.helperIndexToDesc[self.helperIndex]));
79 end;
80 end;
81 end;
82end;