LUADOC - Farming Simulator 17

Printable Version

Script v1.4.4.0

Engine v7.0.0.2

Foundation Reference

ManureSpreader

Description
Class for all sprayers
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 ManureSpreader.prerequisitesPresent(specializations)
18 return SpecializationUtil.hasSpecialization(Sprayer, specializations) and SpecializationUtil.hasSpecialization(AnimatedVehicle, specializations);
19end;

load

Description
Called on loading
Definition
load(table savegame)
Arguments
tablesavegamesavegame
Code
24function ManureSpreader:load(savegame)
25
26 self.getTipScrollerSpeed = Utils.overwrittenFunction(self.getTipScrollerSpeed, ForageWagon.getTipScrollerSpeed);
27
28 self.manureSpreaderTurnedOnRotationNodes = Utils.loadRotationNodes(self.xmlFile, {}, "vehicle.turnedOnRotationNodes.turnedOnRotationNode", "manureSpreader", self.components);
29 self.manureSpreaderScrollers = Utils.loadScrollers(self.components, self.xmlFile, "vehicle.manureSpreaderScrollers.scrollerNode", {}, false);
30
31 self.turnedOnTipScrollerSpeedFactor = Utils.getNoNil(getXMLFloat(self.xmlFile, "vehicle.turnedOnTipScrollerSpeedFactor#value"), 0.25);
32
33 local fillVolumeHeightRefNodeString = getXMLString(self.xmlFile, "vehicle.fillVolumeHeightRefNode#index");
34 if fillVolumeHeightRefNodeString ~= nil then
35 self.fillVolumeHeightRefNode = Utils.indexToObject(self.components, fillVolumeHeightRefNodeString);
36 end;
37end;

update

Description
Called on update
Definition
update(float dt)
Arguments
floatdttime since last call in ms
Code
63function ManureSpreader:update(dt)
64 if self.isClient then
65 Utils.updateRotationNodes(self, self.manureSpreaderTurnedOnRotationNodes, dt, self:getIsActive() and self:getIsTurnedOn() );
66 Utils.updateScrollers(self.manureSpreaderScrollers, dt, self:getIsActive() and self:getIsTurnedOn());
67
68 if self:getIsTurnedOn() then
69 if self.fillVolumeHeightRefNode ~= nil and self.fillVolumeHeightRefNodeToFillVolumeHeight[self.fillVolumeHeightRefNode] ~= nil then
70 self.fillVolumeHeightRefNodeToFillVolumeHeight[self.fillVolumeHeightRefNode].volumeHeightIsDirty = true;
71 end;
72
73 if self.fillUnits ~= nil then
74 local fillUnit = self.fillUnits[self.sprayer.fillUnitIndex];
75 if fillUnit ~= nil then
76 local fillVolume = self.fillVolumes[fillUnit.fillVolumeIndex];
77 if fillVolume ~= nil then
78 if fillVolume.scrollSpeedDischarge[1] ~= 0 or fillVolume.scrollSpeedDischarge[2] ~= 0 or fillVolume.scrollSpeedDischarge[3] ~= 0 then
79 fillVolume.uvPosition[1] = fillVolume.uvPosition[1] + fillVolume.scrollSpeedDischarge[1]*dt;
80 fillVolume.uvPosition[2] = fillVolume.uvPosition[2] + fillVolume.scrollSpeedDischarge[2]*dt;
81 fillVolume.uvPosition[3] = fillVolume.uvPosition[3] + fillVolume.scrollSpeedDischarge[3]*dt;
82 setShaderParameter(fillVolume.volume, "uvOffset", fillVolume.uvPosition[1], fillVolume.uvPosition[2], fillVolume.uvPosition[3], 0, false);
83 end
84 end
85 end
86 end
87 end;
88 end;
89end;

getTipScrollerSpeed

Description
Returns tip scroller speed
Definition
getTipScrollerSpeed()
Return Values
floattipScrollerSpeedtip scroller speed
Code
118function ManureSpreader:getTipScrollerSpeed(superFunc)
119 local value = 0;
120 if self:getIsTurnedOn() then
121 value = self.turnedOnTipScrollerSpeedFactor;
122 end;
123 value = math.max(value, superFunc(self));
124end;