fix(flåde): plov før kultivator i rolle-tabellen (FS25-plove har også spec_cultivator); en plov må også tage kultivering (v1.48.2.0)

This commit is contained in:
2026-09-28 18:46:13 +02:00
parent 0e714d2968
commit 7730f68dec
5 changed files with 19 additions and 4 deletions
+9 -1
View File
@@ -18,8 +18,9 @@ ADFieldFleet.ROLE_SPECS = {
{role = "weeder", spec = "spec_weeder"}, {role = "weeder", spec = "spec_weeder"},
{role = "sprayRole"}, {role = "sprayRole"},
{role = "mulcher", spec = "spec_mulcher"}, {role = "mulcher", spec = "spec_mulcher"},
{role = "cultivator", spec = "spec_cultivator"}, -- plov før kultivator: FS25-plove har også spec_cultivator (in-game 28/9: POV 5 XL blev "kultivator")
{role = "plow", spec = "spec_plow"}, {role = "plow", spec = "spec_plow"},
{role = "cultivator", spec = "spec_cultivator"},
{role = "baleCollector", spec = "canBaleCollect"}, {role = "baleCollector", spec = "canBaleCollect"},
{role = "unloader", spec = "canUnload"}, {role = "unloader", spec = "canUnload"},
} }
@@ -35,6 +36,13 @@ function ADFieldFleet.roleFromSpecs(specs)
return nil return nil
end end
-- Ekstra opgaver en rolle kan tage: pløjning klargør jorden lige så godt som kultivering (ikke omvendt).
ADFieldFleet.EXTRA_ROLES = {plow = {plow = true, cultivator = true}}
function ADFieldFleet.rolesFor(role)
return ADFieldFleet.EXTRA_ROLES[role]
end
-- Kandidater med rollen, sorteret nærmest først, delt i brugbare og afviste (med første grund). -- Kandidater med rollen, sorteret nærmest først, delt i brugbare og afviste (med første grund).
local function sortCandidates(candidates, role, x, z, requiredWidth, accept) local function sortCandidates(candidates, role, x, z, requiredWidth, accept)
local usable, sawRole, sawAccepted = {}, false, false local usable, sawRole, sawAccepted = {}, false, false
+1 -1
View File
@@ -162,7 +162,7 @@ function ADFieldWork.getRigs(adEnv)
manual = (state.manual or {})[id] == true, manual = (state.manual or {})[id] == true,
width = ADCpBridge.getWorkWidth(vehicle), x = x, z = z, width = ADCpBridge.getWorkWidth(vehicle), x = x, z = z,
-- tom spreder kan flere ting (gødning og kalk): alle dens roller -- tom spreder kan flere ting (gødning og kalk): alle dens roller
roles = specs.sprayRoles, filledRole = specs.filledRole, dumpable = specs.dumpable, roles = specs.sprayRoles or ADFieldFleet.rolesFor(role), filledRole = specs.filledRole, dumpable = specs.dumpable,
} }
if role == "harvester" then rig.fruits = ADCpBridge.getHarvestFruits(vehicle) or {} end if role == "harvester" then rig.fruits = ADCpBridge.getHarvestFruits(vehicle) or {} end
if role == "seeder" then if role == "seeder" then
+1 -1
View File
@@ -231,7 +231,7 @@ function ADPool.collect(adEnv, isBusy)
local x, z = positionOf(vehicle) local x, z = positionOf(vehicle)
table.insert(implements, { table.insert(implements, {
id = ADRunsController.getVehicleId(vehicle), vehicle = vehicle, name = ADRuns.vehicleLabel(vehicle), id = ADRunsController.getVehicleId(vehicle), vehicle = vehicle, name = ADRuns.vehicleLabel(vehicle),
role = role, roles = specs.sprayRoles, x = x, z = z, width = ADCpBridge.getWorkWidth(vehicle), role = role, roles = specs.sprayRoles or ADFieldFleet.rolesFor(role), x = x, z = z, width = ADCpBridge.getWorkWidth(vehicle),
neededHp = neededHpOf(vehicle), connectId = connect.id, parkId = park.id, neededHp = neededHpOf(vehicle), connectId = connect.id, parkId = park.id,
}) })
end end
+1 -1
View File
@@ -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.48.1.0</version> <version>1.48.2.0</version>
<title> <title>
<en>AD Smart Pickup</en> <en>AD Smart Pickup</en>
</title> </title>
+7
View File
@@ -133,5 +133,12 @@ check("FLV F18 ser kun de frie", #vis .. "/" .. hid .. "/" .. tostring(flds[1]),
check("FLV F22 ser alle", #(F.visibleForField(vrigs, 22, {[22] = {"vogn", "harve"}})), 3) check("FLV F22 ser alle", #(F.visibleForField(vrigs, 22, {[22] = {"vogn", "harve"}})), 3)
check("FLV ingen valgt = alle", #(F.visibleForField(vrigs, nil, {[22] = {"vogn"}})), 3) check("FLV ingen valgt = alle", #(F.visibleForField(vrigs, nil, {[22] = {"vogn"}})), 3)
-- FL-plov: FS25-plove har også spec_cultivator — de er plove, men må også tage kultivering
check("FLP plov med kultivator-spec er plov", F.roleFromSpecs({spec_plow = true, spec_cultivator = true}), "plow")
check("FLP plov kan kultivere", F.rolesFor("plow").cultivator, true)
check("FLP plov kan pløje", F.rolesFor("plow").plow, true)
check("FLP kultivator kan ikke pløje", F.rolesFor("cultivator"), nil)
local plough = {id = "p", role = "plow", roles = F.rolesFor("plow"), enabled = true, x = 0, z = 0, width = 3}
check("FLP plov vælges til kultivering", (F.pick({plough}, "cultivator", 0, 0, nil)).id, "p")
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)