feat(kobling): Connect-markøren virker begge veje — med redskab bag sig kobles det af på sin parkeringsplads (v1.47.2.0)
This commit is contained in:
@@ -68,6 +68,13 @@ function ADHitch.stepAction(name)
|
|||||||
return ADHitch.parseMarker(name) or "arrive"
|
return ADHitch.parseMarker(name) or "arrive"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Connect-markøren virker begge veje: ankommer traktoren med et redskab bag sig, kobles det af igen — markøren
|
||||||
|
-- ligger under trækøjet, så vognen står da præcis på sin parkeringsplads.
|
||||||
|
function ADHitch.resolveAction(action, hasRearImplement)
|
||||||
|
if action == "attach" and hasRearImplement then return "detach" end
|
||||||
|
return action
|
||||||
|
end
|
||||||
|
|
||||||
-- pause efter et trin: ved almindelige markører undervejs holdes der, ikke efter sidste trin
|
-- pause efter et trin: ved almindelige markører undervejs holdes der, ikke efter sidste trin
|
||||||
function ADHitch.waitAfter(action, index, count)
|
function ADHitch.waitAfter(action, index, count)
|
||||||
if action == "arrive" and index < count then return ADHitch.ROUTE_WAIT_MS end
|
if action == "arrive" and index < count then return ADHitch.ROUTE_WAIT_MS end
|
||||||
@@ -181,6 +188,10 @@ local function attachedImplements(vehicle)
|
|||||||
return list
|
return list
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function hasRearImplement(vehicle)
|
||||||
|
return #ADHitch.rearImplements(attachedImplements(vehicle)) > 0
|
||||||
|
end
|
||||||
|
|
||||||
-- Kobler redskaberne bag traktoren af. -> ok, navne eller årsag
|
-- Kobler redskaberne bag traktoren af. -> ok, navne eller årsag
|
||||||
function ADHitch.tryDetach(vehicle)
|
function ADHitch.tryDetach(vehicle)
|
||||||
local rear = ADHitch.rearImplements(attachedImplements(vehicle))
|
local rear = ADHitch.rearImplements(attachedImplements(vehicle))
|
||||||
@@ -229,7 +240,8 @@ function ADHitch.route(adEnv, vehicle, markerIds, onDone)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
local marker = adEnv.ADGraphManager:getMapMarkerByWayPointId(markerIds[index])
|
local marker = adEnv.ADGraphManager:getMapMarkerByWayPointId(markerIds[index])
|
||||||
local action = ADHitch.stepAction(marker ~= nil and marker.name or nil)
|
local action = ADHitch.resolveAction(ADHitch.stepAction(marker ~= nil and marker.name or nil),
|
||||||
|
hasRearImplement(vehicle))
|
||||||
start(adEnv, vehicle, markerIds[index], action, function(_, ok, detail)
|
start(adEnv, vehicle, markerIds[index], action, function(_, ok, detail)
|
||||||
if not ok then
|
if not ok then
|
||||||
Logging.warning(ADHitch.LOG_PREFIX .. "'%s' stopper turen ved trin %d", vehicleName(vehicle), index)
|
Logging.warning(ADHitch.LOG_PREFIX .. "'%s' stopper turen ved trin %d", vehicleName(vehicle), index)
|
||||||
@@ -268,7 +280,9 @@ local function watchManualTrips(adEnv)
|
|||||||
and module:getMode() == adEnv.AutoDrive.MODE_DRIVETO then
|
and module:getMode() == adEnv.AutoDrive.MODE_DRIVETO then
|
||||||
local marker = module:getFirstMarker()
|
local marker = module:getFirstMarker()
|
||||||
local action = marker ~= nil and ADHitch.parseMarker(marker.name) or nil
|
local action = marker ~= nil and ADHitch.parseMarker(marker.name) or nil
|
||||||
if action ~= nil then jobs[vehicle] = ADHitch.newJob(marker.id, marker.name, action) end
|
if action ~= nil then
|
||||||
|
jobs[vehicle] = ADHitch.newJob(marker.id, marker.name, ADHitch.resolveAction(action, hasRearImplement(vehicle)))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -337,7 +351,7 @@ function ADHitch:consoleDetach()
|
|||||||
return "spuDetach: intet koblet af (" .. tostring(detail) .. ")"
|
return "spuDetach: intet koblet af (" .. tostring(detail) .. ")"
|
||||||
end
|
end
|
||||||
|
|
||||||
-- "spuTrip Connect Bredal > Start > Afkobl Bredal > Start": maskinen spilleren sidder i kører turen
|
-- "spuTrip Connect Bredal > Start > Connect Bredal > Start": maskinen spilleren sidder i kører turen
|
||||||
-- (spilleren kan blive siddende; AD kører også med spilleren i førerhuset).
|
-- (spilleren kan blive siddende; AD kører også med spilleren i førerhuset).
|
||||||
function ADHitch:consoleTrip(...)
|
function ADHitch:consoleTrip(...)
|
||||||
local vehicle = currentVehicle()
|
local vehicle = currentVehicle()
|
||||||
@@ -345,7 +359,7 @@ function ADHitch:consoleTrip(...)
|
|||||||
local adEnv = ADFieldSilos ~= nil and ADFieldSilos.adEnv or nil
|
local adEnv = ADFieldSilos ~= nil and ADFieldSilos.adEnv or nil
|
||||||
if adEnv == nil then return "spuTrip: AutoDrive er ikke klar endnu" end
|
if adEnv == nil then return "spuTrip: AutoDrive er ikke klar endnu" end
|
||||||
local names = ADHitch.parseTrip(...)
|
local names = ADHitch.parseTrip(...)
|
||||||
if #names == 0 then return "spuTrip: brug fx spuTrip Connect Bredal > Start > Afkobl Bredal > Start" end
|
if #names == 0 then return "spuTrip: brug fx spuTrip Connect Bredal > Start > Connect Bredal > Start" end
|
||||||
local markers, ids = adEnv.ADGraphManager:getMapMarkers(), {}
|
local markers, ids = adEnv.ADGraphManager:getMapMarkers(), {}
|
||||||
for _, name in ipairs(names) do
|
for _, name in ipairs(names) do
|
||||||
local marker = ADHitch.findMarker(markers, name)
|
local marker = ADHitch.findMarker(markers, name)
|
||||||
@@ -358,6 +372,6 @@ end
|
|||||||
|
|
||||||
if addConsoleCommand ~= nil then
|
if addConsoleCommand ~= nil then
|
||||||
addConsoleCommand("spuConnect", "Kobler nærmeste redskab på den maskine du sidder i", "consoleConnect", ADHitch)
|
addConsoleCommand("spuConnect", "Kobler nærmeste redskab på den maskine du sidder i", "consoleConnect", ADHitch)
|
||||||
addConsoleCommand("spuTrip", "Kør en tur: spuTrip Connect Bredal > Start > Afkobl Bredal > Start", "consoleTrip", ADHitch)
|
addConsoleCommand("spuTrip", "Kør en tur: spuTrip Connect Bredal > Start > Connect Bredal > Start", "consoleTrip", ADHitch)
|
||||||
addConsoleCommand("spuDetach", "Kobler redskaberne bag den maskine du sidder i af", "consoleDetach", ADHitch)
|
addConsoleCommand("spuDetach", "Kobler redskaberne bag den maskine du sidder i af", "consoleDetach", ADHitch)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<modDesc descVersion="107">
|
<modDesc descVersion="107">
|
||||||
<author>masterdraco</author>
|
<author>masterdraco</author>
|
||||||
<version>1.47.1.0</version>
|
<version>1.47.2.0</version>
|
||||||
<title>
|
<title>
|
||||||
<en>AD Smart Pickup</en>
|
<en>AD Smart Pickup</en>
|
||||||
</title>
|
</title>
|
||||||
|
|||||||
@@ -77,5 +77,10 @@ check("trin: ankom er færdig", arriveJob.state, "done")
|
|||||||
local markers = {{name = "Start", id = 1}, {name = "Connect Bredal", id = 9}}
|
local markers = {{name = "Start", id = 1}, {name = "Connect Bredal", id = 9}}
|
||||||
check("markør: navn uden hensyn til store/små", H.findMarker(markers, "connect bredal").id, 9)
|
check("markør: navn uden hensyn til store/små", H.findMarker(markers, "connect bredal").id, 9)
|
||||||
check("markør: ukendt", H.findMarker(markers, "Stald"), nil)
|
check("markør: ukendt", H.findMarker(markers, "Stald"), nil)
|
||||||
|
-- Connect-markøren virker begge veje: med redskab bag sig kobles det af (vognen står så på sin plads)
|
||||||
|
check("connect uden vogn: kobl på", H.resolveAction("attach", false), "attach")
|
||||||
|
check("connect med vogn: kobl af", H.resolveAction("attach", true), "detach")
|
||||||
|
check("afkobl forbliver afkobl", H.resolveAction("detach", false), "detach")
|
||||||
|
check("almindelig markør", H.resolveAction("arrive", true), "arrive")
|
||||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||||
os.exit(failures == 0 and 0 or 1)
|
os.exit(failures == 0 and 0 or 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user