LUADOC - Farming Simulator 17

Printable Version

Script v1.4.4.0

Engine v7.0.0.2

Foundation Reference

Pickup

Description
This is the specialization for vehicles with a pickup
Functions

prerequisitesPresent

Description
Checks if all prerequisite specializations are loaded
Definition
prerequisitesPresent(table specializations)
Arguments
tablespecializationsspecializations
Return Values
booleanhasPrerequisitetrue if all prerequisite specializations are loaded
Code
19function Pickup.prerequisitesPresent(specializations)
20 return true;
21end;

preLoad

Description
Called before loading
Definition
preLoad(table savegame)
Arguments
tablesavegamesavegame
Code
26function Pickup:preLoad(savegame)
27 self.allowPickingUp = Pickup.allowPickingUp;
28 self.setPickupState = Pickup.setPickupState;
29 self.isLowered = Utils.overwrittenFunction(self.isLowered, Pickup.isLowered);
30end

load

Description
Called on loading
Definition
load(table savegame)
Arguments
tablesavegamesavegame
Code
35function 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
47end;

postLoad

Description
Called after loading
Definition
postLoad(table savegame)
Arguments
tablesavegamesavegame
Code
52function 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;
62end

readStream

Description
Called on client side on join
Definition
readStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
71function Pickup:readStream(streamId, connection)
72 local isPickupLowered = streamReadBool(streamId);
73 self:setPickupState(isPickupLowered, true);
74end;

writeStream

Description
Called on server side on join
Definition
writeStream(integer streamId, integer connection)
Arguments
integerstreamIdstreamId
integerconnectionconnection
Code
80function Pickup:writeStream(streamId, connection)
81 streamWriteBool(streamId, self.isPickupLowered);
82end;

update

Description
Called on update
Definition
update(float dt)
Arguments
floatdttime since last call in ms
Code
93function 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;
101end;

draw

Description
Called on draw
Definition
draw()
Code
105function 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;
117end;

setPickupState

Description
Set pickup state
Definition
setPickupState(boolean isPickupLowered, boolean noEventSend)
Arguments
booleanisPickupLowerednew is pickup lowered state
booleannoEventSendno event send
Code
123function 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;
138end;

allowPickingUp

Description
Return if pickup can pick up
Definition
allowPickingUp()
Return Values
booleancanPickUppickup can pick up
Code
143function Pickup:allowPickingUp()
144 return self.isPickupLowered;
145end;

isLowered

Description
Returns if vehicle is lowered
Definition
isLowered(boolean default)
Arguments
booleandefaultdefault value
Return Values
booleanisLoweredvehicle is lowered
Code
151function 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;
160end;

onLowerAll

Description
Called on lower
Definition
onLowerAll(boolean doLowering, integer jointIndex)
Arguments
booleandoLoweringdo lowering
integerjointIndexindex of attacher joint
Code
166function Pickup:onLowerAll(doLowering, jointDescIndex)
167 self:setPickupState(doLowering);
168end;