LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

Basketball

Description
Class for basketballs
Parent
PhysicsObject
Functions

createNode

Description
Load node from i3d file
Definition
createNode(string i3dFilename)
Arguments
stringi3dFilenamei3d file name
Code
88function Basketball:createNode(i3dFilename)
89 self.i3dFilename = i3dFilename
90 self.customEnvironment, self.baseDirectory = Utils.getModNameAndBaseDirectory(i3dFilename)
91 local basketballRoot, sharedLoadRequestId = g_i3DManager:loadSharedI3DFile(i3dFilename, false, false)
92 self.sharedLoadRequestId = sharedLoadRequestId
93
94 local basketballId = getChildAt(basketballRoot, 0)
95 link(getRootNode(), basketballId)
96 delete(basketballRoot)
97
98 self:setNodeId(basketballId)
99end

delete

Description
Deleting basketball object
Definition
delete()
Code
51function Basketball:delete()
52 if self.sharedLoadRequestId ~= nil then
53 g_i3DManager:releaseSharedI3DFile(self.sharedLoadRequestId)
54 self.sharedLoadRequestId = nil
55 end
56 unregisterObjectClassName(self)
57 Basketball:superClass().delete(self)
58end

load

Description
Load Basketball
Definition
load(string i3dFilename, float x, float y, float z, float rx, float ry, float rz)
Arguments
stringi3dFilenamei3d file name
floatxx world position
floatyz world position
floatzz world position
floatrxrx world rotation
floatryry world rotation
floatrzrz world rotation
Code
110function Basketball:load(i3dFilename, x,y,z, rx,ry,rz)
111 self.i3dFilename = i3dFilename
112 self.customEnvironment, self.baseDirectory = Utils.getModNameAndBaseDirectory(i3dFilename)
113 self:createNode(i3dFilename)
114 setTranslation(self.nodeId, x, y, z)
115 setRotation(self.nodeId, rx, ry, rz)
116
117 return true
118end

new

Description
Creating basketball object
Definition
new(boolean isServer, boolean isClient, table customMt)
Arguments
booleanisServeris server
booleanisClientis client
tablecustomMtcustomMt
Return Values
tableinstanceInstance of object
Code
34function Basketball.new(isServer, isClient, customMt)
35 local mt = customMt
36 if mt == nil then
37 mt = Basketball_mt
38 end
39
40 local self = PhysicsObject.new(isServer, isClient, mt)
41
42 self.forcedClipDistance = 150
43 self.sharedLoadRequestId = nil
44 registerObjectClassName(self, "Basketball")
45
46 return self
47end

onCreate

Description
Creating basketball
Definition
onCreate(integer id)
Arguments
integeridnode id
Code
13function Basketball:onCreate(id)
14 local basketball = Basketball.new(g_server ~= nil, g_client ~= nil)
15 local x, y, z = getWorldTranslation(id)
16 local rx, ry, rz = getWorldRotation(id)
17 local filename = Utils.getNoNil(getUserAttribute(id, "filename"), "$data/objects/basketball/basketball.i3d")
18 filename = Utils.getFilename(filename, g_currentMission.loadingMapBaseDirectory)
19
20 if basketball:load(filename, x, y, z, rx, ry, rz) then
21 g_currentMission.onCreateObjectSystem:add(basketball)
22 basketball:register(true)
23 else
24 basketball:delete()
25 end
26end

readStream

Description
Called on client side on join
Definition
readStream(integer streamId, table connection)
Arguments
integerstreamIdstream ID
tableconnectionconnection
Code
64function Basketball:readStream(streamId, connection)
65 if connection:getIsServer() then
66 local i3dFilename = NetworkUtil.convertFromNetworkFilename(streamReadString(streamId))
67 if self.nodeId == 0 then
68 self:createNode(i3dFilename)
69 end
70 Basketball:superClass().readStream(self, streamId, connection)
71 end
72end

writeStream

Description
Called on server side on join
Definition
writeStream(integer streamId, table connection)
Arguments
integerstreamIdstream ID
tableconnectionconnection
Code
78function Basketball:writeStream(streamId, connection)
79 if not connection:getIsServer() then
80 streamWriteString(streamId, NetworkUtil.convertToNetworkFilename(self.i3dFilename))
81 Basketball:superClass().writeStream(self, streamId, connection)
82 end
83end