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
Pickup
DescriptionThis is the specialization for vehicles with a pickupFunctions
- prerequisitesPresent
- preLoad
- load
- postLoad
- readStream
- writeStream
- update
- draw
- setPickupState
- allowPickingUp
- isLowered
- onLowerAll
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 Pickup.prerequisitesPresent(specializations) |
20 | return true; |
21 | end; |
preLoad
DescriptionCalled before loadingDefinition
preLoad(table savegame)Arguments
table | savegame | savegame |
26 | function Pickup:preLoad(savegame) |
27 | self.allowPickingUp = Pickup.allowPickingUp; |
28 | self.setPickupState = Pickup.setPickupState; |
29 | self.isLowered = Utils.overwrittenFunction(self.isLowered, Pickup.isLowered); |
30 | end |
load
DescriptionCalled on loadingDefinition
load(table savegame)Arguments
table | savegame | savegame |
35 | function Pickup:load(savegame) |
36 | |
37 | self.isPickupLowered = false; |
38 | self.pickupAnimationName = Utils.getNoNil(getXMLString(self.xmlFile, "vehicle.pickupAnimation#name"), ""); |
39 | if self.playAnimation == nil or self.getIsAnimationPlaying == nil then |
40 | self.pickupAnimationName = ""; |
41 | self.isPickupLowered = true; |
42 | end; |
43 | self.pickupAnimationLowerSpeed = Utils.getNoNil(getXMLFloat(self.xmlFile, "vehicle.pickupAnimation#lowerSpeed"), 1); |
44 | self.pickupAnimationLiftSpeed = Utils.getNoNil(getXMLFloat(self.xmlFile, "vehicle.pickupAnimation#liftSpeed"), -self.pickupAnimationLowerSpeed); |
45 | self.pickupAnimationIsDefaultLowered = Utils.getNoNil(getXMLBool(self.xmlFile, "vehicle.pickupAnimation#isDefaultLowered"), false); |
46 | |
47 | end; |
postLoad
DescriptionCalled after loadingDefinition
postLoad(table savegame)Arguments
table | savegame | savegame |
52 | function Pickup:postLoad(savegame) |
53 | if self.pickupAnimationName ~= "" then |
54 | local dir = -20; |
55 | if self.pickupAnimationIsDefaultLowered then |
56 | dir = 20; |
57 | self.isPickupLowered = true; |
58 | end; |
59 | self:playAnimation(self.pickupAnimationName, dir, nil, true); |
60 | AnimatedVehicle.updateAnimations(self, 99999999); |
61 | end; |
62 | end |
readStream
DescriptionCalled on client side on joinDefinition
readStream(integer streamId, integer connection)Arguments
integer | streamId | streamId |
integer | connection | connection |
71 | function Pickup:readStream(streamId, connection) |
72 | local isPickupLowered = streamReadBool(streamId); |
73 | self:setPickupState(isPickupLowered, true); |
74 | end; |
writeStream
DescriptionCalled on server side on joinDefinition
writeStream(integer streamId, integer connection)Arguments
integer | streamId | streamId |
integer | connection | connection |
80 | function Pickup:writeStream(streamId, connection) |
81 | streamWriteBool(streamId, self.isPickupLowered); |
82 | end; |
update
DescriptionCalled on updateDefinition
update(float dt)Arguments
float | dt | time since last call in ms |
93 | function Pickup:update(dt) |
94 | if self:getIsActiveForInput() then |
95 | if self.pickupAnimationName ~= "" then |
96 | if InputBinding.hasEvent(InputBinding.LOWER_IMPLEMENT) then |
97 | self:setPickupState(not self.isPickupLowered); |
98 | end; |
99 | end; |
100 | end; |
101 | end; |
draw
DescriptionCalled on drawDefinition
draw()Code
105 | function Pickup:draw() |
106 | if self.isClient then |
107 | if self:getIsActiveForInput(true) then |
108 | if self.pickupAnimationName ~= "" then |
109 | if self.isPickupLowered then |
110 | g_currentMission:addHelpButtonText(string.format(g_i18n:getText("action_liftOBJECT"), g_i18n:getText("typeDesc_pickup")), InputBinding.LOWER_IMPLEMENT, nil, GS_PRIO_HIGH); |
111 | else |
112 | g_currentMission:addHelpButtonText(string.format(g_i18n:getText("action_lowerOBJECT"), g_i18n:getText("typeDesc_pickup")), InputBinding.LOWER_IMPLEMENT, nil, GS_PRIO_HIGH); |
113 | end; |
114 | end; |
115 | end; |
116 | end; |
117 | end; |
setPickupState
DescriptionSet pickup stateDefinition
setPickupState(boolean isPickupLowered, boolean noEventSend)Arguments
boolean | isPickupLowered | new is pickup lowered state |
boolean | noEventSend | no event send |
123 | function Pickup:setPickupState(isPickupLowered, noEventSend) |
124 | PickupSetStateEvent.sendEvent(self, isPickupLowered, noEventSend) |
125 | self.isPickupLowered = isPickupLowered; |
126 | |
127 | if self.pickupAnimationName ~= "" then |
128 | local animTime = nil; |
129 | if self:getIsAnimationPlaying(self.pickupAnimationName) then |
130 | animTime = self:getAnimationTime(self.pickupAnimationName); |
131 | end; |
132 | if isPickupLowered then |
133 | self:playAnimation(self.pickupAnimationName, self.pickupAnimationLowerSpeed, animTime, true) |
134 | else |
135 | self:playAnimation(self.pickupAnimationName, self.pickupAnimationLiftSpeed, animTime, true) |
136 | end; |
137 | end; |
138 | end; |
allowPickingUp
DescriptionReturn if pickup can pick upDefinition
allowPickingUp()Return Values
boolean | canPickUp | pickup can pick up |
143 | function Pickup:allowPickingUp() |
144 | return self.isPickupLowered; |
145 | end; |
isLowered
DescriptionReturns if vehicle is loweredDefinition
isLowered(boolean default)Arguments
boolean | default | default value |
boolean | isLowered | vehicle is lowered |
151 | function Pickup:isLowered(superFunc, default) |
152 | if not self.isPickupLowered then |
153 | return false; |
154 | end |
155 | |
156 | if superFunc ~= nil then |
157 | return superFunc(self, default); |
158 | end |
159 | return default; |
160 | end; |
onLowerAll
DescriptionCalled on lowerDefinition
onLowerAll(boolean doLowering, integer jointIndex)Arguments
boolean | doLowering | do lowering |
integer | jointIndex | index of attacher joint |
166 | function Pickup:onLowerAll(doLowering, jointDescIndex) |
167 | self:setPickupState(doLowering); |
168 | end; |