fix: brakmarker (groundType NONE) med i marklisten når punkterne viser markjord (v1.62.10)

This commit is contained in:
2026-10-03 12:02:26 +02:00
parent 82eb12fb17
commit 7a2bb58493
3 changed files with 17 additions and 8 deletions
+15 -7
View File
@@ -253,10 +253,16 @@ end
-- Kan marken dyrkes? Nej hvis spillet siger "ingen markjord" (groundType NONE: bygget over — gårdsplads,
-- stald, biogasanlæg), eller hvis intet prøvepunkt ligger på markjord. En markensilo i et hjørne ændrer
-- intet: resten af marken er stadig markjord.
function ADFields.isCultivable(state, onFieldPoints)
if state ~= nil and state.noFieldGround then return false end
return (onFieldPoints or 0) > 0
-- intet: resten af marken er stadig markjord. groundPoints = prøvepunkter hvor jorden selv er markjord: en
-- brakmark (FALLOW) har også groundType NONE i marktilstanden (Chipping Norton in-game 3/10), men markjord i
-- punkterne — viser mindst halvdelen markjord, er marken med.
function ADFields.isCultivable(state, onFieldPoints, groundPoints)
local points = onFieldPoints or 0
if points <= 0 then return false end
if state ~= nil and state.noFieldGround then
return groundPoints ~= nil and groundPoints * 2 >= points
end
return true
end
-- Markens omrids som {{x, z}, ...}. FS25: field:getDensityMapPolygon():getVerticesList() (flad liste
@@ -551,13 +557,15 @@ local function finishScan(adEnv, scan)
-- markens form: ændret mark (anden signatur end kursus-registret) -> gemte kurser til marken glemmes
info.shapeSig = ADFields.shapeSignature(info.verts)
if ADCourseCache ~= nil and ADCourseCache.checkField ~= nil then pcall(ADCourseCache.checkField, info.id, info.shapeSig) end
-- jorden i punkterne er nu læst: afgør "kan dyrkes" igen (brakmark vs. bygget over)
info.cultivable = ADFields.isCultivable(ADFields.readFieldState(info.field), #scan.points, scan.soil.prepared[2])
ADFields.cache[info.id] = info
ADFields.listCache = nil
-- diagnose: første scanning af hver mark (og når den skifter til/fra "kan ikke dyrkes") i loggen
local state = ADFields.readFieldState(info.field)
local summary = string.format("F%s scannet: %d af %d punkter på mark, polygon %d hjørner, markjord %s, afgrøde %s, med i listen %s",
tostring(info.id), #scan.points, scan.candidates or 0, #(info.verts or {}),
state == nil and "ukendt" or (state.noFieldGround and "NEJ (groundType NONE)" or "ja"),
local summary = string.format("F%s scannet: %d af %d punkter på mark (%d med markjord), polygon %d hjørner, marktilstand %s, afgrøde %s, med i listen %s",
tostring(info.id), #scan.points, scan.candidates or 0, scan.soil.prepared[2], #(info.verts or {}),
state == nil and "ukendt" or (state.noFieldGround and "groundType NONE" or "markjord"),
tostring(info.fruitName or "-"), info.cultivable == false and "NEJ" or "ja")
ADFields.scanLog = ADFields.scanLog or {}
local key = tostring(info.cultivable ~= false)
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<modDesc descVersion="107">
<author>masterdraco</author>
<version>1.62.9.0</version>
<version>1.62.10.0</version>
<title>
<en>AD Smart Pickup</en>
</title>