LUADOC - Farming Simulator 17

Printable Version

HayLoftPlaceable

Description
Class for placeable hay loft
Parent
Placeable
Functions

new

Description
Creating placeable hay loft
Definition
new(boolean isServer, boolean isClient, table customMt)
Arguments
booleanisServeris server
booleanisClientis client
tablecustomMtcustom metatable
Return Values
tableinstanceInstance of object
Code
18function HayLoftPlaceable:new(isServer, isClient, customMt)
19 local mt = customMt;
20 if mt == nil then
21 mt = HayLoftPlaceable_mt;
22 end;
23
24 local self = Placeable:new(isServer, isClient, mt);
25
26 registerObjectClassName(self, "HayLoftPlaceable");
27
28 return self;
29end;

delete

Description
Deleting placeable hay loft
Definition
delete()
Code
33function HayLoftPlaceable:delete()
34 if self.tipTrigger ~= nil then
35 self.tipTrigger:removeUpdateEventListener(self)
36 self.tipTrigger:unregister(true);
37 self.tipTrigger:delete()
38 end
39
40 if self.siloTrigger ~= nil then
41 self.siloTrigger:unregister(true);
42 self.siloTrigger:delete()
43 end
44
45 g_currentMission:removeStorage(self.storage)
46 self.storage:unregister(true);
47 self.storage:delete()
48
49 unregisterObjectClassName(self);
50 HayLoftPlaceable:superClass().delete(self);
51end;

load

Description
Load hay loft
Definition
load(string xmlFilename, float x, float y, float z, float rx, float ry, float rz, boolean initRandom)
Arguments
stringxmlFilenamexml file name
floatxx world position
floatyz world position
floatzz world position
floatrxrx world rotation
floatryry world rotation
floatrzrz world rotation
booleaninitRandominitialize random
Return Values
booleansuccesssuccess
Code
64function HayLoftPlaceable:load(xmlFilename, x,y,z, rx,ry,rz, initRandom)
65 if not HayLoftPlaceable:superClass().load(self, xmlFilename, x,y,z, rx,ry,rz, initRandom) then
66 return false;
67 end;
68
69 local xmlFile = loadXMLFile("TempXML", xmlFilename);
70
71 self.storage = Storage:new(self.isServer, self.isClient)
72 self.storage:load(self.nodeId, false)
73
74 self.tipTriggerNode = Utils.indexToObject(self.nodeId, getXMLString(xmlFile, "placeable.hayLoft#tipTrigger"));
75 self.siloTriggerNode = Utils.indexToObject(self.nodeId, getXMLString(xmlFile, "placeable.hayLoft#siloTrigger"));
76
77 delete(xmlFile);
78
79 return true;
80end;

finalizePlacement

Description
Called if placeable is placed
Definition
finalizePlacement()
Code
84function HayLoftPlaceable:finalizePlacement()
85 HayLoftPlaceable:superClass().finalizePlacement(self);
86
87 g_currentMission:addStorage(self.storage);
88 self.storage:register(true)
89
90 self.tipTrigger = TipTrigger:new(self.isServer, self.isClient)
91 self.tipTrigger:load(self.tipTriggerNode)
92 self.siloTrigger = SiloTrigger:new(self.isServer, self.isClient)
93 self.siloTrigger:load(self.siloTriggerNode)
94
95 self.tipTrigger:register(true)
96 self.tipTrigger:addUpdateEventListener(self)
97 g_currentMission:addStorageToTipTrigger(self.storage, {self.tipTrigger})
98 self.siloTrigger:register(true)
99 g_currentMission:addStorageToSiloTrigger(self.storage, {self.siloTrigger})
100end

readStream

Description
Called on client side on join
Definition
readStream(integer streamId, table connection)
Arguments
integerstreamIdstream ID
tableconnectionconnection
Code
106function HayLoftPlaceable:readStream(streamId, connection)
107 HayLoftPlaceable:superClass().readStream(self, streamId, connection);
108 if connection:getIsServer() then
109 local storageId = readNetworkNodeObjectId(streamId);
110 self.storage:readStream(streamId, connection);
111 g_client:finishRegisterObject(self.storage, storageId);
112
113 local tipTriggerId = readNetworkNodeObjectId(streamId);
114 self.tipTrigger:readStream(streamId, connection);
115 g_client:finishRegisterObject(self.tipTrigger, tipTriggerId);
116
117 local siloTriggerId = readNetworkNodeObjectId(streamId);
118 self.siloTrigger:readStream(streamId, connection);
119 g_client:finishRegisterObject(self.siloTrigger, siloTriggerId);
120 end
121end

writeStream

Description
Called on server side on join
Definition
writeStream(integer streamId, table connection)
Arguments
integerstreamIdstream ID
tableconnectionconnection
Code
127function HayLoftPlaceable:writeStream(streamId, connection)
128 HayLoftPlaceable:superClass().writeStream(self, streamId, connection);
129 if not connection:getIsServer() then
130 writeNetworkNodeObjectId(streamId, self.storage.id);
131 self.storage:writeStream(streamId, connection);
132 g_server:registerObjectInStream(connection, self.storage);
133
134 writeNetworkNodeObjectId(streamId, self.tipTrigger.id);
135 self.tipTrigger:writeStream(streamId, connection);
136 g_server:registerObjectInStream(connection, self.tipTrigger);
137
138 writeNetworkNodeObjectId(streamId, self.siloTrigger.id);
139 self.siloTrigger:writeStream(streamId, connection);
140 g_server:registerObjectInStream(connection, self.siloTrigger);
141 end
142end

collectPickObjects

Description
Collect pick objects
Definition
collectPickObjects(integer node)
Arguments
integernodenode id
Code
147function HayLoftPlaceable:collectPickObjects(node)
148 if self.tipTrigger == nil or self.tipTrigger.shovelTarget == nil or self.tipTrigger.shovelTarget.nodeId ~= node then
149 HayLoftPlaceable:superClass().collectPickObjects(self, node)
150 end
151end;

update

Description
Update
Definition
update(float dt)
Arguments
floatdttime since last call in ms
Code
156function HayLoftPlaceable:update(dt)
157 HayLoftPlaceable:superClass().update(self, dt);
158end

updateTick

Description
updateTick
Definition
updateTick(float dt)
Arguments
floatdttime since last call in ms
Code
163function HayLoftPlaceable:updateTick(dt)
164 HayLoftPlaceable:superClass().updateTick(self, dt);
165end

loadFromAttributesAndNodes

Description
Loading from attributes and nodes
Definition
loadFromAttributesAndNodes(integer xmlFile, string key, boolean resetVehicles)
Arguments
integerxmlFileid of xml object
stringkeykey
booleanresetVehiclesreset vehicles
Return Values
booleansuccesssuccess
Code
176function HayLoftPlaceable:loadFromAttributesAndNodes(xmlFile, key, resetVehicles)
177 if not HayLoftPlaceable:superClass().loadFromAttributesAndNodes(self, xmlFile, key, resetVehicles) then
178 return false;
179 end;
180
181 if not self.storage:loadFromAttributesAndNodes(xmlFile, key) then
182 return false
183 end
184
185 return true;
186end;

getSaveAttributesAndNodes

Description
Get save attributes and nodes
Definition
getSaveAttributesAndNodes(string nodeIdent)
Arguments
stringnodeIdentnode ident
Return Values
stringattributesattributes
stringnodesnodes
Code
193function HayLoftPlaceable:getSaveAttributesAndNodes(nodeIdent)
194 local attributes, nodes = HayLoftPlaceable:superClass().getSaveAttributesAndNodes(self, nodeIdent);
195
196 local a, n = self.storage:getSaveAttributesAndNodes(nodeIdent)
197 attributes = attributes .. " " .. a
198 nodes = nodes .. n
199
200 return attributes, nodes;
201end;