LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

PlaceableFenceAddSegmentEvent

Description
Event for toggeling placeable light state
Parent
Event
Functions

emptyNew

Description
Create instance of Event class
Definition
emptyNew()
Return Values
tableselfinstance of class event
Code
13function PlaceableFenceAddSegmentEvent.emptyNew()
14 return Event.new(PlaceableFenceAddSegmentEvent_mt)
15end

new

Description
Create new instance of event
Definition
new(table object, integer groupIndex, boolean isActive)
Arguments
tableobjectobject
integergroupIndexindex of group
booleanisActiveis active
Code
22function PlaceableFenceAddSegmentEvent.new(fence, x1, z1, x2, z2, renderFirst, renderLast, gateIndex, price)
23 local self = PlaceableFenceAddSegmentEvent.emptyNew()
24
25 self.fence = fence
26 self.x1 = x1
27 self.z1 = z1
28 self.x2 = x2
29 self.z2 = z2
30 self.renderFirst = renderFirst
31 self.renderLast = renderLast
32 self.gateIndex = gateIndex
33 self.price = price
34
35 return self
36end

readStream

Description
Called on client side on join
Definition
readStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
42function PlaceableFenceAddSegmentEvent:readStream(streamId, connection)
43 self.fence = NetworkUtil.readNodeObject(streamId)
44
45 self.x1 = streamReadFloat32(streamId)
46 self.z1 = streamReadFloat32(streamId)
47 self.x2 = streamReadFloat32(streamId)
48 self.z2 = streamReadFloat32(streamId)
49 self.renderFirst = streamReadBool(streamId)
50 self.renderLast = streamReadBool(streamId)
51 self.gateIndex = streamReadUInt8(streamId)
52 if self.gateIndex == 0 then
53 self.gateIndex = nil
54 end
55 self.price = streamReadInt32(streamId)
56
57 self:run(connection)
58end

run

Description
Run action on receiving side
Definition
run(integer connection)
Arguments
integerconnectionconnection
Code
80function PlaceableFenceAddSegmentEvent:run(connection)
81 if self.fence ~= nil and self.fence:getIsSynchronized() then
82 local segment = self.fence:createSegment(self.x1, self.z1, self.x2, self.z2, self.renderFirst, self.gateIndex)
83 segment.renderLast = self.renderLast
84
85 -- On clients we need to generate synchronously, as the next event has gate AO info
86 --and the poles and gates need to be generated by then.
87 self.fence:addSegment(segment, self.gateIndex ~= nil and connection:getIsServer())
88
89 g_messageCenter:publish(PlaceableFenceAddSegmentEvent, self.fence, segment)
90
91 if not connection:getIsServer() then
92 g_currentMission:addMoney(-self.price, self.fence:getOwnerFarmId(), MoneyType.SHOP_PROPERTY_BUY, true)
93
94 g_server:broadcastEvent(self, false, nil, self.fence)
95 end
96 end
97end

writeStream

Description
Called on server side on join
Definition
writeStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
64function PlaceableFenceAddSegmentEvent:writeStream(streamId, connection)
65 NetworkUtil.writeNodeObject(streamId, self.fence)
66
67 streamWriteFloat32(streamId, self.x1)
68 streamWriteFloat32(streamId, self.z1)
69 streamWriteFloat32(streamId, self.x2)
70 streamWriteFloat32(streamId, self.z2)
71 streamWriteBool(streamId, self.renderFirst)
72 streamWriteBool(streamId, self.renderLast)
73 streamWriteUInt8(streamId, self.gateIndex or 0)
74 streamWriteInt32(streamId, self.price)
75end