Script v1.4.4.0
- Handtools
- Events
- Objects
- Placeables
- AnimatedObjectPlaceable
- BeehivePlaceable
- GreenhousePlaceable
- HayLoftPlaceable
- HeatingPlantPlaceable
- HighPressureWasherPlaceab...
- Placeable
- SolarCollectorPlaceable
- WindTurbinePlaceable
- Triggers
- Utils
- Vehicles
- Specializations
Engine v7.0.0.2
- General
- Entity
- Node
- Scenegraph
- Lighting
- Camera
- Shape
- Particle System
- Physics
- Spline
- Animation
- Overlays
- Sound
- Input
- XML
- Network
- Callbacks
- Text Rendering
- Terrain Detail
- Tire Track
- Editor
- Rendering
- String
- Math
- I3D
- Fillplanes
Foundation Reference
HayLoftPlaceable
DescriptionClass for placeable hay loftParent
PlaceableFunctions
- new
- delete
- load
- finalizePlacement
- readStream
- writeStream
- collectPickObjects
- update
- updateTick
- loadFromAttributesAndNodes
- getSaveAttributesAndNodes
new
DescriptionCreating placeable hay loftDefinition
new(boolean isServer, boolean isClient, table customMt)Arguments
boolean | isServer | is server |
boolean | isClient | is client |
table | customMt | custom metatable |
table | instance | Instance of object |
18 | function 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; |
29 | end; |
delete
DescriptionDeleting placeable hay loftDefinition
delete()Code
33 | function 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); |
51 | end; |
load
DescriptionLoad hay loftDefinition
load(string xmlFilename, float x, float y, float z, float rx, float ry, float rz, boolean initRandom)Arguments
string | xmlFilename | xml file name |
float | x | x world position |
float | y | z world position |
float | z | z world position |
float | rx | rx world rotation |
float | ry | ry world rotation |
float | rz | rz world rotation |
boolean | initRandom | initialize random |
boolean | success | success |
64 | function 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; |
80 | end; |
finalizePlacement
DescriptionCalled if placeable is placedDefinition
finalizePlacement()Code
84 | function 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}) |
100 | end |
readStream
DescriptionCalled on client side on joinDefinition
readStream(integer streamId, table connection)Arguments
integer | streamId | stream ID |
table | connection | connection |
106 | function 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 |
121 | end |
writeStream
DescriptionCalled on server side on joinDefinition
writeStream(integer streamId, table connection)Arguments
integer | streamId | stream ID |
table | connection | connection |
127 | function 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 |
142 | end |
collectPickObjects
DescriptionCollect pick objectsDefinition
collectPickObjects(integer node)Arguments
integer | node | node id |
147 | function 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 |
151 | end; |
update
DescriptionUpdateDefinition
update(float dt)Arguments
float | dt | time since last call in ms |
156 | function HayLoftPlaceable:update(dt) |
157 | HayLoftPlaceable:superClass().update(self, dt); |
158 | end |
updateTick
DescriptionupdateTickDefinition
updateTick(float dt)Arguments
float | dt | time since last call in ms |
163 | function HayLoftPlaceable:updateTick(dt) |
164 | HayLoftPlaceable:superClass().updateTick(self, dt); |
165 | end |
loadFromAttributesAndNodes
DescriptionLoading from attributes and nodesDefinition
loadFromAttributesAndNodes(integer xmlFile, string key, boolean resetVehicles)Arguments
integer | xmlFile | id of xml object |
string | key | key |
boolean | resetVehicles | reset vehicles |
boolean | success | success |
176 | function 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; |
186 | end; |
getSaveAttributesAndNodes
DescriptionGet save attributes and nodesDefinition
getSaveAttributesAndNodes(string nodeIdent)Arguments
string | nodeIdent | node ident |
string | attributes | attributes |
string | nodes | nodes |
193 | function 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; |
201 | end; |