LUADOC - Farming Simulator 17

Printable Version

Script v1.4.4.0

Engine v7.0.0.2

Foundation Reference

Mountable

Description
This is the specialization for all vehicles that may be mounted
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
17function Mountable.prerequisitesPresent(specializations)
18 return true;
19end;

load

Description
Called on loading
Definition
load(table savegame)
Arguments
tablesavegamesavegame
Code
24function Mountable:load(savegame)
25
26 self.getSupportsMountDynamic = Mountable.getSupportsMountDynamic;
27 self.mountDynamic = Mountable.mountDynamic;
28 self.unmountDynamic = Mountable.unmountDynamic;
29 self.onDynamicMountJointBreak = Mountable.onDynamicMountJointBreak;
30
31 self.dynamicMountJointIndex = nil;
32 self.dynamicMountObject = nil;
33 self.dynamicMountObjectActorId = nil;
34 self.dynamicMountForceLimitScale = Utils.getNoNil(getXMLFloat(self.xmlFile, "vehicle.dynamicMount#forceLimitScale"), 1);
35end;

delete

Description
Called on deleting
Definition
delete()
Code
39function Mountable:delete()
40 if self.dynamicMountJointIndex ~= nil then
41 removeJointBreakReport(self.dynamicMountJointIndex);
42 removeJoint(self.dynamicMountJointIndex);
43 end
44 if self.dynamicMountObject ~= nil then
45 self.dynamicMountObject:removeDynamicMountedObject(self, true);
46 end
47end;

onEnter

Description
Called on enter vehicle
Definition
onEnter(boolean isControlling)
Arguments
booleanisControllingis player controlling the vehicle
Code
67function Mountable:onEnter(isControlling)
68 self:unmountDynamic();
69end;

onAttach

Description
Called if vehicle gets attached
Definition
onAttach(table attacherVehicle, integer jointDescIndex)
Arguments
tableattacherVehicleattacher vehicle
integerjointDescIndexindex of attacher joint it gets attached to
Code
75function Mountable:onAttach(attacherVehicle, jointDescIndex)
76 self:unmountDynamic();
77end;

mountDynamic

Description
Mount to object
Definition
mountDynamic(table object, integer objectActorId, integer jointNode, integer mountType, float forceAcceleration, boolean isBreakable)
Arguments
tableobjectobject to mount at
integerobjectActorIdid of actor
integerjointNodejoint node
integermountTypemount type
floatforceAccelerationacceleration force
booleanisBreakablejoint is brakeable
Return Values
booleansuccesssuccess
Code
88function Mountable:mountDynamic(object, objectActorId, jointNode, mountType, forceAcceleration, isBreakable)
89 if not self:getSupportsMountDynamic() or self.mountObject ~= nil or self.attacherVehicle ~= nil or self.isControlled then
90 return false;
91 end
92 return DynamicMountUtil.mountDynamic(self, self.rootNode, object, objectActorId, jointNode, mountType, forceAcceleration*self.dynamicMountForceLimitScale, isBreakable);
93end

unmountDynamic

Description
Unmount
Definition
unmountDynamic()
Code
97function Mountable:unmountDynamic()
98 DynamicMountUtil.unmountDynamic(self);
99end

getSupportsMountDynamic

Description
Return if vehicle supports dynamic mounting
Definition
getSupportsMountDynamic()

onDynamicMountJointBreak

Description
Called on dynamic mount joint break
Definition
onDynamicMountJointBreak(integer jointIndex, float breakingImpulse)
Arguments
integerjointIndexindex of broken joint
floatbreakingImpulsebreak impulse
Code
110function Mountable:onDynamicMountJointBreak(jointIndex, breakingImpulse)
111 if jointIndex == self.dynamicMountJointIndex then
112 self:unmountDynamic();
113 end
114 -- Do not delete the joint internally, we already deleted it with unmountDynamic
115 return false;
116end