LUADOC - Farming Simulator 17

Printable Version

Basketball

Description
Class for basketballs
Parent
PhysicsObject
Functions

onCreate

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

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 registerObjectClassName(self, "Basketball")
44
45 return self
46end

delete

Description
Deleting basketball object
Definition
delete()
Code
50function Basketball:delete()
51 if self.i3dFilename ~= nil then
52 Utils.releaseSharedI3DFile(self.i3dFilename, nil, true)
53 end
54 unregisterObjectClassName(self)
55 Basketball:superClass().delete(self)
56end

readStream

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

writeStream

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

createNode

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

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
107function Basketball:load(i3dFilename, x,y,z, rx,ry,rz)
108 self.i3dFilename = i3dFilename
109 self.customEnvironment, self.baseDirectory = Utils.getModNameAndBaseDirectory(i3dFilename)
110 self:createNode(i3dFilename)
111 setTranslation(self.nodeId, x, y, z)
112 setRotation(self.nodeId, rx, ry, rz)
113
114 return true
115end;