fix(kobling): plov o.l. foldes ud før afkobling (spillet kræver det) med 20 s frist; foldbare redskaber foldes sammen til vejen efter påkobling (v1.50.2.0)

This commit is contained in:
2026-09-28 19:08:22 +02:00
parent 5a2701fc62
commit 8d33499a37
5 changed files with 33 additions and 5 deletions
+21 -2
View File
@@ -23,7 +23,8 @@ ADHitch.TIMEOUT_REASON = {attach = "noAttachable", detach = "nothingToDetach", a
ADHitch.ARRIVE_DISTANCE = 5 -- m fra markøren, AD standser traktoren tæt på waypointet
ADHitch.STILL_SPEED = 1 -- km/t
ADHitch.START_GRACE_MS = 3000 -- så længe må AD være om at komme i gang efter fetch/drop
ADHitch.ACT_TIMEOUT_MS = 8000 -- så længe forsøges kobling/afkobling efter ankomst
ADHitch.ACT_TIMEOUT_MS = 8000 -- så længe forsøges kobling efter ankomst
ADHitch.DETACH_TIMEOUT_MS = 20000 -- afkobling: redskabet skal måske foldes ud først (plov: "unfold the tool")
ADHitch.TICK_MS = 250
ADHitch.ROUTE_WAIT_MS = 10000 -- pause ved almindelige markører midt i en tur
@@ -117,7 +118,8 @@ function ADHitch.step(job, state, dt, succeeded)
job.state = "done"
else
job.actElapsed = job.actElapsed + dt
if job.actElapsed >= ADHitch.ACT_TIMEOUT_MS then
local limit = job.action == "detach" and ADHitch.DETACH_TIMEOUT_MS or ADHitch.ACT_TIMEOUT_MS
if job.actElapsed >= limit then
job.state, job.reason = "failed", ADHitch.TIMEOUT_REASON[job.action]
end
end
@@ -217,6 +219,17 @@ local function isImplementPark(adEnv, vehicle, markerId)
return false
end
-- Efter påkobling: fold foldbare redskaber sammen til vejen (CP folder selv ud på marken).
function ADHitch.foldForTransport(vehicle)
for _, implement in ipairs(ADHitch.rearImplementsOf(vehicle)) do
local object = implement.object
local unfolded = object.getIsUnfolded ~= nil and object:getIsUnfolded()
if unfolded and object.spec_foldable ~= nil and object.setFoldDirection ~= nil then
object:setFoldDirection(-(object.spec_foldable.turnOnFoldDirection or 1))
end
end
end
function ADHitch.rearImplementsOf(vehicle)
return ADHitch.rearImplements(attachedImplements(vehicle))
end
@@ -236,6 +249,12 @@ function ADHitch.tryDetach(vehicle)
local object = implement.object
local allowed, warning = true, nil
if object.isDetachAllowed ~= nil then allowed, warning = object:isDetachAllowed() end
if not allowed and object.spec_foldable ~= nil and object.setFoldDirection ~= nil then
-- plove o.l. må kun kobles af udfoldet (in-game 28/9: "You first need to unfold the tool") — fold ud
-- og prøv igen ved næste tick, mens foldningen kører
object:setFoldDirection(object.spec_foldable.turnOnFoldDirection or 1)
return false, "unfolding: " .. tostring(warning)
end
if not allowed then return false, tostring(warning or "detachNotAllowed") end
vehicle:detachImplementByObject(object)
table.insert(names, implement.name)