Skip to main content
Skip to main content

PlaceableRiceFieldFieldEvent

PlaceableRiceFieldFieldEvent

Description

Event for a rice field

Parent

Event

Functions

emptyNew

Description

Create instance of Event class

Definition

emptyNew()

Return Values

anyselfinstance of class event

Code

function PlaceableRiceFieldFieldEvent.emptyNew()
return Event.new( PlaceableRiceFieldFieldEvent _mt, NetworkNode.CHANNEL_MAIN)
end

new

Description

Create new instance of event

Definition

new()

Arguments

anyplaceableRiceField
anyfield

Code

function PlaceableRiceFieldFieldEvent.new(placeableRiceField, field)
local self = PlaceableRiceFieldFieldEvent.emptyNew()

self.placeableRiceField = placeableRiceField
self.field = field

return self
end

readStream

Description

Called on client side on join

Definition

readStream(integer streamId, Connection connection)

Arguments

integerstreamIdstreamId
Connectionconnectionconnection

Code

function PlaceableRiceFieldFieldEvent:readStream(streamId, connection)
self.placeableRiceField = NetworkUtil.readNodeObject(streamId)

local height = streamReadFloat32(streamId)
local field = self.placeableRiceField:createNewField(height)

local numVertices = streamReadUInt16(streamId)
field.polygon = Polygon2D.new(numVertices)

for i = 1 , numVertices do
field.polygon:addPos(streamReadFloat32(streamId), streamReadFloat32(streamId))
end

field.waterHeight = streamReadFloat32(streamId)

self.field = field

self:run(connection)
end

run

Description

Run action on receiving side

Definition

run(Connection connection)

Arguments

Connectionconnectionconnection

Code

function PlaceableRiceFieldFieldEvent:run(connection)
if self.placeableRiceField ~ = nil and self.placeableRiceField:getIsSynchronized() then

self.placeableRiceField:finalizeNewField( self.field, true , function (statusCode)
-- answer client with status code
connection:sendEvent( PlaceableRiceFieldFieldAnswerEvent.new( self.placeableRiceField, statusCode))
end )
end
end

writeStream

Description

Called on server side on join

Definition

writeStream(integer streamId, Connection connection)

Arguments

integerstreamIdstreamId
Connectionconnectionconnection

Code

function PlaceableRiceFieldFieldEvent:writeStream(streamId, connection)
NetworkUtil.writeNodeObject(streamId, self.placeableRiceField)

streamWriteFloat32(streamId, self.field.height)

streamWriteUInt16(streamId, self.field.polygon:getNumVertices())

for _, vertex in ipairs( self.field.polygon:getVertices()) do
streamWriteFloat32(streamId, vertex)
end

streamWriteFloat32(streamId, self.field.waterHeight)
end