Skip to content

Commit f296f37

Browse files
author
Peter Vaiko
committed
fix: fill level for harvesters
At many harvesters, especially potato and other root vegetable harvesters, the fruit needs a long time to get from the ground to the tank. This means there's a significant amount of fruit harvested but not showing up in the tank's fill level. Add all fruit already harvested to the fill level so we stop the moment enough fruit is harvested to reach 100%. #357
1 parent 814c129 commit f296f37

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

scripts/ai/controllers/CombineController.lua

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,20 @@ function CombineController:getDriveData()
2727
end
2828

2929
function CombineController:getFillLevel()
30-
return self.implement:getFillUnitFillLevel(self.combineSpec.fillUnitIndex)
30+
local fillLevel = self.implement:getFillUnitFillLevel(self.combineSpec.fillUnitIndex)
31+
if self.combineSpec.loadingDelay > 0 then
32+
for i=1, #self.combineSpec.loadingDelaySlots do
33+
local slot = self.combineSpec.loadingDelaySlots[i]
34+
if slot.valid then
35+
fillLevel = fillLevel + slot.fillLevelDelta
36+
end
37+
end
38+
end
39+
return fillLevel
3140
end
3241

3342
function CombineController:getFillLevelPercentage()
34-
return 100 * self.implement:getFillUnitFillLevel(self.combineSpec.fillUnitIndex) /
35-
self.implement:getFillUnitCapacity(self.combineSpec.fillUnitIndex)
43+
return 100 * self:getFillLevel() / self:getCapacity()
3644
end
3745

3846
function CombineController:getCapacity()

scripts/ai/strategies/AIDriveStrategyCombineCourse.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,8 +806,8 @@ function AIDriveStrategyCombineCourse:estimateDistanceUntilFull(ix)
806806
self.litersPerMeter = 0
807807
self.litersPerSecond = 0
808808
end
809-
self:debug('Fill rate is %.1f l/m, %.1f l/s (fill level %.1f, last %.1f, dToNext = %.1f)',
810-
self.litersPerMeter, self.litersPerSecond, fillLevel, self.fillLevelAtLastWaypoint, dToNext)
809+
self:debug('Fill rate is %.1f l/m, %.1f l/s (fill level %.1f of %.1f, last %.1f, dToNext = %.1f)',
810+
self.litersPerMeter, self.litersPerSecond, fillLevel, capacity, self.fillLevelAtLastWaypoint, dToNext)
811811
self.fillLevelLastCheckedTime = g_currentMission.time
812812
self.fillLevelAtLastWaypoint = fillLevel
813813
end

0 commit comments

Comments
 (0)