Script v1.4.4.0
- Handtools
- Events
- Objects
- Placeables
- Triggers
- Utils
- Vehicles
- Specializations
- AIVehicle
- AnimatedVehicle
- ArticulatedAxis
- Attachable
- AttacherJointControl
- AttacherJoints
- BaleGrab
- BaleLoader
- Baler
- BaleWrapper
- BuiltInCutterTrailer
- BunkerSiloCompacter
- Combine
- ConveyorBelt
- Cover
- CrabSteering
- Crawler
- Cultivator
- Cutter
- Cylindered
- Drivable
- DynamicMountAttacher
- Fillable
- FillActivatable
- FillVolume
- Foldable
- ForageWagon
- FrontloaderAttacher
- FruitPreparer
- FuelTrailer
- Honk
- HookLiftContainer
- HookLiftTrailer
- Leveler
- Lights
- LivestockTrailer
- ManureBarrel
- ManureSpreader
- MixerWagon
- Motorized
- Mountable
- Mower
- NonTabbable
- Overloading
- Pickup
- Pipe
- Plough
- PowerConsumer
- RandomlyMovingParts
- ReceivingHopper
- ReverseDriving
- RidgeMarker
- Roller
- Ropes
- RotorSpreader
- SemiTrailerFront
- Shovel
- SowingMachine
- SpeedRotatingParts
- Sprayer
- Steerable
- StrawBlower
- StumpCutter
- Tedder
- TensionBelts
- Trailer
- TreePlanter
- TreePlanterActivatable
- TreeSaw
- TurnOnVehicle
- Washable
- WaterTrailer
- Weeder
- WheelRotations
- Windrower
- WoodCrusher
- WoodHarvester
- WorkArea
- WorkParticles
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
Cover
DescriptionClass for vehicles with a coverFunctions
- prerequisitesPresent
- preLoad
- load
- getSaveAttributesAndNodes
- readStream
- writeStream
- update
- draw
- getIsToggleCoverAllowed
- allowFillType
- setCoverState
- getAllowFillFromAir
- addFillTrigger
- removeFillTrigger
- onStartTip
prerequisitesPresent
DescriptionChecks if all prerequisite specializations are loadedDefinition
prerequisitesPresent(table specializations)Arguments
table | specializations | specializations |
boolean | hasPrerequisite | true if all prerequisite specializations are loaded |
19 | function Cover.prerequisitesPresent(specializations) |
20 | return SpecializationUtil.hasSpecialization(AnimatedVehicle, specializations); |
21 | end |
preLoad
DescriptionCalled before loadingDefinition
preLoad(table savegame)Arguments
table | savegame | savegame |
26 | function Cover:preLoad(savegame) |
27 | self.getIsToggleCoverAllowed = Cover.getIsToggleCoverAllowed; |
28 | self.allowFillType = Utils.overwrittenFunction(self.allowFillType, Cover.allowFillType); |
29 | self.getAllowFillFromAir = Utils.overwrittenFunction(self.getAllowFillFromAir, Cover.getAllowFillFromAir); |
30 | self.setCoverState = Cover.setCoverState; |
31 | end |
load
DescriptionCalled on loadingDefinition
load(table savegame)Arguments
table | savegame | savegame |
36 | function Cover:load(savegame) |
37 | self.addFillTrigger = Utils.overwrittenFunction(self.addFillTrigger, Cover.addFillTrigger); |
38 | self.removeFillTrigger = Utils.overwrittenFunction(self.removeFillTrigger, Cover.removeFillTrigger); |
39 | |
40 | self.coverAnimation = getXMLString(self.xmlFile, "vehicle.cover#animationName"); |
41 | if self.coverAnimation ~= nil then |
42 | local isOpen = Utils.getNoNil(getXMLBool(self.xmlFile, "vehicle.cover#openOnBuy"), false); |
43 | if savegame ~= nil then |
44 | isOpen = Utils.getNoNil(getXMLBool(savegame.xmlFile, savegame.key.."#isCoverOpen"), isOpen); |
45 | end |
46 | self:setCoverState(isOpen, true); |
47 | |
48 | self.forceOpenOnTip = Utils.getNoNil(getXMLBool(self.xmlFile, "vehicle.cover#forceOpenOnTip"), true); |
49 | self.autoReactToTrigger = Utils.getNoNil(getXMLBool(self.xmlFile, "vehicle.cover#autoReactToTrigger"), false); |
50 | else |
51 | self.isCoverOpen = true; |
52 | end |
53 | end |
getSaveAttributesAndNodes
DescriptionReturns attributes and nodes to saveDefinition
getSaveAttributesAndNodes(table nodeIdent)Arguments
table | nodeIdent | node ident |
string | attributes | attributes |
string | nodes | nodes |
60 | function Cover:getSaveAttributesAndNodes(nodeIdent) |
61 | if self.coverAnimation ~= nil then |
62 | local attributes = 'isCoverOpen="'..tostring(self.isCoverOpen)..'"'; |
63 | return attributes, nil; |
64 | end |
65 | return nil; |
66 | end |
readStream
DescriptionCalled on client side on joinDefinition
readStream(integer streamId, integer connection)Arguments
integer | streamId | streamId |
integer | connection | connection |
81 | function Cover:readStream(streamId, connection) |
82 | if connection:getIsServer() then |
83 | if self.coverAnimation ~= nil then |
84 | local isOpen = streamReadBool(streamId); |
85 | self:setCoverState(isOpen, true); |
86 | end |
87 | end |
88 | end |
writeStream
DescriptionCalled on server side on joinDefinition
writeStream(integer streamId, integer connection)Arguments
integer | streamId | streamId |
integer | connection | connection |
94 | function Cover:writeStream(streamId, connection) |
95 | if not connection:getIsServer() then |
96 | if self.coverAnimation ~= nil then |
97 | streamWriteBool(streamId, self.isCoverOpen); |
98 | end |
99 | end |
100 | end |
update
DescriptionCalled on updateDefinition
update(float dt)Arguments
float | dt | time since last call in ms |
105 | function Cover:update(dt) |
106 | if self:getIsActiveForInput() then |
107 | if self.coverAnimation ~= nil then |
108 | if InputBinding.hasEvent(InputBinding.TOGGLE_COVER) then |
109 | if self:getIsToggleCoverAllowed(not self.isCoverOpen) then |
110 | self:setCoverState(not self.isCoverOpen); |
111 | end |
112 | end |
113 | end |
114 | end |
115 | end |
draw
DescriptionCalled on drawDefinition
draw()Code
119 | function Cover:draw() |
120 | if self.isClient and self:getIsActiveForInput(true) then |
121 | if self.coverAnimation ~= nil and self:getIsToggleCoverAllowed(not self.isCoverOpen) then |
122 | if self.isCoverOpen then |
123 | g_currentMission:addHelpButtonText(g_i18n:getText("action_closeCover"), InputBinding.TOGGLE_COVER, nil, GS_PRIO_NORMAL); |
124 | else |
125 | g_currentMission:addHelpButtonText(g_i18n:getText("action_openCover"), InputBinding.TOGGLE_COVER, nil, GS_PRIO_NORMAL); |
126 | end |
127 | end |
128 | end |
129 | -- if self.isServer then |
130 | -- if self.autoReactToTrigger then |
131 | -- if shouldOpen ~= self.isCoverOpen then |
132 | -- self:setCoverState(shouldOpen); |
133 | -- end |
134 | -- end |
135 | -- end |
136 | end |
getIsToggleCoverAllowed
DescriptionReturns if toggle cover is allowedDefinition
getIsToggleCoverAllowed(boolean isCoverOpen)Arguments
boolean | isCoverOpen | is cover open |
boolean | allow | allows cover toggle |
142 | function Cover:getIsToggleCoverAllowed(isCoverOpen) |
143 | if self.tipState ~= nil then |
144 | return self.tipState == Trailer.TIPSTATE_CLOSED; |
145 | end |
146 | return true; |
147 | end |
allowFillType
DescriptionReturns if fill type is allowed (overwritten to block if cover is closed)Definition
allowFillType(integer fillType, boolean allowEmptying)Arguments
integer | fillType | fill type |
boolean | allowEmptying | allow emptying |
boolean | allow | allow fill type |
154 | function Cover:allowFillType(superFunc, fillType, allowEmptying) |
155 | if not self.isCoverOpen then |
156 | return false; |
157 | end |
158 | |
159 | if superFunc ~= nil then |
160 | return superFunc(self, fillType, allowEmptying); |
161 | end |
162 | |
163 | return true; |
164 | end |
setCoverState
DescriptionSet cover stateDefinition
setCoverState(boolean isOpen, boolean noEventSend)Arguments
boolean | isOpen | new is open state |
boolean | noEventSend | no event send |
170 | function Cover:setCoverState(isOpen, noEventSend) |
171 | if self.coverAnimation ~= nil then |
172 | SetCoverStateEvent.sendEvent(self, isOpen, noEventSend); |
173 | self.isCoverOpen = isOpen; |
174 | |
175 | if isOpen then |
176 | self:playAnimation(self.coverAnimation, -1, self:getAnimationTime(self.coverAnimation), true); |
177 | else |
178 | self:playAnimation(self.coverAnimation, 1, self:getAnimationTime(self.coverAnimation), true); |
179 | end |
180 | end |
181 | end |
getAllowFillFromAir
DescriptionReturns if fill from air is allowedDefinition
getAllowFillFromAir()Return Values
boolean | isAllowed | fill from air is allowed |
186 | function Cover:getAllowFillFromAir(superFunc) |
187 | if not self.isCoverOpen then |
188 | return false; |
189 | end |
190 | |
191 | if superFunc ~= nil then |
192 | return superFunc(self); |
193 | end |
194 | |
195 | return true |
196 | end |
addFillTrigger
DescriptionCalled if vehicle is in fill triggerDefinition
addFillTrigger(table trigger)Arguments
table | trigger | trigger |
201 | function Cover:addFillTrigger(superFunc, trigger) |
202 | if superFunc ~= nil then |
203 | superFunc(self, trigger); |
204 | end |
205 | if self.fillTriggers ~= nil and table.getn(self.fillTriggers) > 0 then |
206 | self:setCoverState(true); |
207 | end |
208 | end |
removeFillTrigger
DescriptionCalled if vehicle leaves fill triggerDefinition
removeFillTrigger(table trigger)Arguments
table | trigger | trigger |
213 | function Cover:removeFillTrigger(superFunc, trigger) |
214 | if superFunc ~= nil then |
215 | superFunc(self, trigger); |
216 | end |
217 | if self.fillTriggers ~= nil and table.getn(self.fillTriggers) == 0 and self.autoReactToTrigger then |
218 | self:setCoverState(false); |
219 | end |
220 | end |
onStartTip
DescriptionCalled on start tippingDefinition
onStartTip(table tipTrigger, integer tipReferencePointIndex, boolean noEventSend)Arguments
table | tipTrigger | tip trigger |
integer | tipReferencePointIndex | index of tip reference point |
boolean | noEventSend | no event send |
227 | function Cover:onStartTip(tipTrigger, tipReferencePointIndex, noEventSend) |
228 | if self.coverAnimation ~= nil then |
229 | if self.forceOpenOnTip then |
230 | self:setCoverState(true, true); |
231 | end |
232 | end |
233 | end |