Skip to content

Commit 6eb5dcc

Browse files
author
Peter Vaiko
committed
fix: unloader uses harvester course offset
#599
1 parent 1f33ae0 commit 6eb5dcc

1 file changed

Lines changed: 17 additions & 10 deletions

File tree

scripts/ai/strategies/AIDriveStrategyUnloadCombine.lua

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ function AIDriveStrategyUnloadCombine:init(task, job)
204204
self.debugChannel = CpDebug.DBG_UNLOAD_COMBINE
205205
---@type ImplementController[]
206206
self.controllers = {}
207-
self.combineOffset = 0
207+
self.followingCourseOffset = 0
208208
self.distanceToCombine = math.huge
209209
self.distanceToFront = 0
210210
self.combineToUnloadReversing = 0
@@ -690,8 +690,8 @@ end
690690
function AIDriveStrategyUnloadCombine:unloadMovingChopper()
691691

692692
-- recalculate offset, just in case
693-
self.combineOffset = self:getPipeOffset(self.combineToUnload)
694-
self.followCourse:setOffset(-self.combineOffset, 0)
693+
self.followingCourseOffset = self:getFollowingCourseOffset(self.combineToUnload)
694+
self.followCourse:setOffset(self.followingCourseOffset, 0)
695695

696696
if self:changeToUnloadWhenTrailerFull() then
697697
return
@@ -1094,6 +1094,13 @@ function AIDriveStrategyUnloadCombine:getPipeOffset(combine)
10941094
end
10951095
end
10961096

1097+
---@return number offset X for the course to follow the combine, this is the pipe offset and the combine courser offset
1098+
function AIDriveStrategyUnloadCombine:getFollowingCourseOffset(combine)
1099+
local pipeOffset = self:getPipeOffset()
1100+
local courseOffset = combine:getCpDriveStrategy():getFieldworkCourse():getOffset()
1101+
return -pipeOffset + courseOffset
1102+
end
1103+
10971104
function AIDriveStrategyUnloadCombine:getAutoAimPipeOffsetX()
10981105
return self.autoAimPipeOffsetX and self.autoAimPipeOffsetX:get() or 0
10991106
end
@@ -1402,8 +1409,8 @@ end
14021409
function AIDriveStrategyUnloadCombine:startCourseFollowingCombine()
14031410
local startIx
14041411
self.followCourse, startIx = self:setupFollowCourse()
1405-
self.combineOffset = self:getPipeOffset(self.combineToUnload)
1406-
self.followCourse:setOffset(-self.combineOffset, 0)
1412+
self.followingCourseOffset = self:getFollowingCourseOffset(self.combineToUnload)
1413+
self.followCourse:setOffset(self.followingCourseOffset, 0)
14071414
self.reverseForTurnCourse = nil
14081415
self:debug('Will follow combine\'s course at waypoint %d, side offset %.1f', startIx, self.followCourse.offsetX)
14091416
self:startCourse(self.followCourse, startIx)
@@ -1988,8 +1995,8 @@ end
19881995
function AIDriveStrategyUnloadCombine:unloadMovingCombine()
19891996

19901997
-- allow on the fly offset changes
1991-
self.combineOffset = self:getPipeOffset(self.combineToUnload)
1992-
self.followCourse:setOffset(-self.combineOffset, 0)
1998+
self.followingCourseOffset = self:getFollowingCourseOffset(self.combineToUnload)
1999+
self.followCourse:setOffset(self.followingCourseOffset, 0)
19932000

19942001
if self:changeToUnloadWhenTrailerFull() then
19952002
return
@@ -2046,8 +2053,8 @@ function AIDriveStrategyUnloadCombine:unloadMovingCombine()
20462053
self.followCourse:getCurrentWaypointIx(),
20472054
self.followCourse:getCurrentWaypointIx() - 10,
20482055
true)
2049-
self.followCourse = Course.createStraightForwardCourse(self.vehicle, 20, -self.combineOffset)
2050-
self.followCourse:setOffset(-self.combineOffset, 0)
2056+
self.followCourse = Course.createStraightForwardCourse(self.vehicle, 20, self.followingCourseOffset)
2057+
self.followCourse:setOffset(self.followingCourseOffset, 0)
20512058
self:startCourse(self.followCourse, 1)
20522059
elseif not self:isBehindAndAlignedToCombine() and not self:isInFrontAndAlignedToMovingCombine() then
20532060
-- call these again just to log the reason
@@ -2344,7 +2351,7 @@ function AIDriveStrategyUnloadCombine:startMakingRoomForCombineTurningOnHeadland
23442351
self.ppc:setNormalLookaheadDistance()
23452352
if self.reverseForTurnCourse then
23462353
-- if we have a follow course from before the turn, then use that
2347-
self.reverseForTurnCourse:setOffset(-self.combineOffset, 0)
2354+
self.reverseForTurnCourse:setOffset(self.followingCourseOffset, 0)
23482355
self:startCourse(self.reverseForTurnCourse, 1)
23492356
else
23502357
local reverseCourse = Course.createStraightReverseCourse(self.vehicle,

0 commit comments

Comments
 (0)