LUADOC - Farming Simulator 22

EnvironmentalScoreSoilSample

Parent
EnvironmentalScoreValue
Functions

getScore

Description
Definition
getScore()
Code
50function EnvironmentalScoreSoilSample:getScore(farmlandId)
51 local farmlandData = self:getFarmlandData(farmlandId)
52
53 if farmlandData.clientScore ~= nil then
54 return farmlandData.clientScore
55 end
56
57 if farmlandData.samplePercentage < 0 then
58 return 0.5
59 end
60
61 return farmlandData.samplePercentage
62end

initFarmlandData

Description
Definition
initFarmlandData()
Code
66function EnvironmentalScoreSoilSample:initFarmlandData()
67 return {
68 samplePercentage = -1
69 }
70end

loadFarmlandData

Description
Definition
loadFarmlandData()
Code
74function EnvironmentalScoreSoilSample:loadFarmlandData(data, xmlFile, key)
75 data.samplePercentage = xmlFile:getFloat(key .. "#samplePercentage", data.samplePercentage)
76end

loadFromXML

Description
Definition
loadFromXML()
Code
35function EnvironmentalScoreSoilSample:loadFromXML(xmlFile, key, baseDirectory, configFileName, mapFilename)
36 if not EnvironmentalScoreTillage:superClass().loadFromXML(self, xmlFile, key, baseDirectory, configFileName, mapFilename) then
37 return false
38 end
39
40 return true
41end

new

Description
Definition
new()
Code
20function EnvironmentalScoreSoilSample.new(pfModule, customMt)
21 local self = EnvironmentalScoreValue.new(pfModule, customMt or EnvironmentalScoreSoilSample_mt)
22
23 self.xmlKey = "soilSample"
24
25 self.typeWeights = {
26 [EnvironmentalScoreSoilSample.TYPE_NONE] = 0,
27 [EnvironmentalScoreSoilSample.TYPE_SAMPLED] = 1,
28 }
29
30 return self
31end

onHarvestScoreReset

Description
Definition
onHarvestScoreReset()
Code
100function EnvironmentalScoreSoilSample:onHarvestScoreReset(farmlandId)
101 self:updateFarmlandSampleState(farmlandId)
102end

overwriteGameFunctions

Description
Definition
overwriteGameFunctions()
Code
115function EnvironmentalScoreSoilSample:overwriteGameFunctions(pfModule)
116 if g_server ~= nil then
117 -- soil sampling
118 pfModule:overwriteGameFunction(SoilSampler, "processSoilSampling", function(superFunc, vehicle, ...)
119 superFunc(vehicle, ...)
120
121 local spec = vehicle.spec_soilSampler
122 if spec.coverMap ~= nil then
123 local x, _, z = getWorldTranslation(spec.samplingNode)
124 local farmlandId = g_farmlandManager:getFarmlandIdAtWorldPosition(x, z)
125 self:updateFarmlandSampleState(farmlandId)
126 end
127 end)
128
129 -- soil map purchase
130 pfModule:overwriteGameFunction(CoverMap, "uncoverFarmlandArea", function(superFunc, coverMap, farmlandId)
131 superFunc(coverMap, farmlandId)
132 self:updateFarmlandSampleState(farmlandId)
133 end)
134
135 -- only for cheat command
136 pfModule:overwriteGameFunction(CoverMap, "analyseArea", function(superFunc, coverMap, startWorldX, startWorldZ, widthWorldX, widthWorldZ, heightWorldX, heightWorldZ, state, farmId, farmlandId)
137 superFunc(coverMap, startWorldX, startWorldZ, widthWorldX, widthWorldZ, heightWorldX, heightWorldZ, state, farmId, farmlandId)
138
139 if farmlandId ~= nil then
140 self:updateFarmlandSampleState(farmlandId)
141 end
142 end)
143 end
144end

readFarmlandDataFromStream

Description
Definition
readFarmlandDataFromStream()
Code
86function EnvironmentalScoreSoilSample:readFarmlandDataFromStream(data, streamId, connection)
87 local score = MathUtil.round(streamReadUIntN(streamId, 8) / 255, 2)
88 data.clientScore = score
89end

saveFarmlandData

Description
Definition
saveFarmlandData()
Code
80function EnvironmentalScoreSoilSample:saveFarmlandData(data, xmlFile, key)
81 xmlFile:setFloat(key .. "#samplePercentage", data.samplePercentage)
82end

update

Description
Definition
update()
Code
45function EnvironmentalScoreSoilSample:update(dt)
46end

updateFarmlandSampleState

Description
Definition
updateFarmlandSampleState()
Code
106function EnvironmentalScoreSoilSample:updateFarmlandSampleState(farmlandId)
107 local farmlandData = self:getFarmlandData(farmlandId)
108
109 local percentage = self.pfModule.coverMap:getFarmlandSampleState(farmlandId)
110 farmlandData.samplePercentage = MathUtil.clamp(percentage, 0, 1)
111end

writeFarmlandDataToStream

Description
Definition
writeFarmlandDataToStream()
Code
93function EnvironmentalScoreSoilSample:writeFarmlandDataToStream(data, streamId, connection)
94 local score = self:getScore(data.farmlandId)
95 streamWriteUIntN(streamId, score * 255, 8)
96end