LUADOC - Farming Simulator 17

Printable Version

Script v1.4.4.0

Engine v7.0.0.2

Foundation Reference

ChainsawStateEvent

Description
Event for chainsaw state
Functions

emptyNew

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

new

Description
Create new instance of event
Definition
new(table player, boolean isCutting, boolean isHorizontalCut)
Arguments
tableplayerplayer
booleanisCuttingis cutting
booleanisHorizontalCutis horizontal cutting
Return Values
tableinstanceinstance of event
Code
25function ChainsawStateEvent:new(player, isCutting, isHorizontalCut)
26 local self = ChainsawStateEvent:emptyNew()
27 self.player = player;
28 self.isCutting = isCutting;
29 self.isHorizontalCut = isHorizontalCut;
30 return self;
31end;

readStream

Description
Called on client side on join
Definition
readStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
37function ChainsawStateEvent:readStream(streamId, connection)
38 self.player = readNetworkNodeObject(streamId);
39 self.isCutting = streamReadBool(streamId);
40 self.isHorizontalCut = streamReadBool(streamId);
41 self:run(connection);
42end;

writeStream

Description
Called on server side on join
Definition
writeStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
48function ChainsawStateEvent:writeStream(streamId, connection)
49 writeNetworkNodeObject(streamId, self.player);
50 streamWriteBool(streamId, self.isCutting);
51 streamWriteBool(streamId, self.isHorizontalCut);
52end;

run

Description
Run action on receiving side
Definition
run(integer connection)
Arguments
integerconnectionconnection
Code
57function ChainsawStateEvent:run(connection)
58 if not connection:getIsServer() then
59 g_server:broadcastEvent(self, false, connection, self.player);
60 end;
61
62 local currentTool = self.player.currentTool;
63 if currentTool ~= nil and currentTool.setCutting ~= nil then
64 currentTool:setCutting(self.isCutting, self.isHorizontalCut, true);
65 end;
66end;

sendEvent

Description
Broadcast event from server to all clients, if called on client call function on server and broadcast it to all clients
Definition
sendEvent(table player, boolean isCutting, boolean isHorizontalCut, boolean noEventSend)
Arguments
tableplayerplayer
booleanisCuttingis cutting
booleanisHorizontalCutis horizontal cutting
booleannoEventSendno event send
Code
74function ChainsawStateEvent.sendEvent(player, isCutting, isHorizontalCut, noEventSend)
75 local currentTool = player.currentTool;
76 if currentTool ~= nil and currentTool.setCutting ~= nil and currentTool.isCutting ~= isCutting then
77 if noEventSend == nil or noEventSend == false then
78 if g_server ~= nil then
79 g_server:broadcastEvent(ChainsawStateEvent:new(player, isCutting, isHorizontalCut), nil, nil, player);
80 else
81 g_client:getServerConnection():sendEvent(ChainsawStateEvent:new(player, isCutting, isHorizontalCut));
82 end;
83 end;
84 end;
85end;