feat(kæde): marker kan markeres fri til kæden; målafgrødens kilde huskes

This commit is contained in:
2026-09-30 13:32:48 +02:00
parent 217498aefa
commit 6dd1b5cac0
6 changed files with 18 additions and 4 deletions
+9 -1
View File
@@ -43,6 +43,8 @@ local DEFAULT_PLAN = {
mode = "manual", product = "auto", rake = false, rigs = 1, unloaders = 1,
mulch = false, lime = true, soil = "auto", sow = false, sowFruit = "", roll = false,
fertilize = true, weed = true, targetFruit = "", prepAfterMow = false, straw = "chop",
-- kæde: marken er frigivet til produktionskæden; hvem der valgte målafgrøden ("user"|"chain"|"")
chainFree = false, targetSource = "",
}
local STRAW_VALUES = {chop = true, collect = true, bale = true}
-- halm-trin efter høst (mejetærskeren lægger skår når halmen skal bruges)
@@ -158,9 +160,11 @@ end
-- Vælg mål-afgrøde fra menuen ("" = ingen). Med mål kører marken automatisk; en færdig/klar mark sættes
-- til venter, så den kan starte forfra. Uden mål: tilbage til manuel.
function ADFieldModel.setTarget(field, fruitName)
function ADFieldModel.setTarget(field, fruitName, source)
local copy = copyField(field)
copy.plan.targetFruit = fruitName or ""
-- kilden huskes kun mens der er et mål; standard er at spilleren valgte det
copy.plan.targetSource = copy.plan.targetFruit ~= "" and (source or "user") or ""
copy.held = nil
copy.plan.mode = copy.plan.targetFruit ~= "" and "auto" or "manual"
if not ADFieldModel.isWorking(field) and field.stage == "done" then
@@ -463,6 +467,7 @@ function ADFieldModel.toRecord(field)
soil = plan.soil, sow = flag(plan.sow), sowFruit = plan.sowFruit or "", roll = flag(plan.roll),
fertilize = flag(plan.fertilize), weed = flag(plan.weed),
targetFruit = plan.targetFruit or "", prepAfterMow = flag(plan.prepAfterMow), straw = plan.straw or "chop",
chainFree = flag(plan.chainFree), targetSource = plan.targetSource or "",
kind = field.kind or "", lastFruit = field.lastFruit or "", care = table.concat(care, " "),
mowWidth = field.mowWidth or 0,
mowVehicle = field.mowVehicleId or "",
@@ -503,6 +508,9 @@ function ADFieldModel.fromRecord(record)
plan.weed = readFlag(record.weed, true)
plan.targetFruit = record.targetFruit or ""
plan.prepAfterMow = readFlag(record.prepAfterMow, false)
plan.chainFree = readFlag(record.chainFree, false)
-- gamle saves: et eksisterende mål er valgt af spilleren
plan.targetSource = record.targetSource or (plan.targetFruit ~= "" and "user" or "")
plan.straw = STRAW_VALUES[record.straw] and record.straw or "chop"
field.kind = readText(record.kind)
field.lastFruit = readText(record.lastFruit)