From 6dd1b5cac095921bf561e1612ac21dec0939c893 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Wed, 30 Sep 2026 13:32:48 +0200 Subject: [PATCH] =?UTF-8?q?feat(k=C3=A6de):=20marker=20kan=20markeres=20fr?= =?UTF-8?q?i=20til=20k=C3=A6den;=20m=C3=A5lafgr=C3=B8dens=20kilde=20huskes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/adFieldGuide.lua | 5 ++++- FS25_ADSmartPickup/adFieldJobs.lua | 4 ++-- FS25_ADSmartPickup/adFieldModel.lua | 10 +++++++++- FS25_ADSmartPickup/adFieldStorage.lua | 1 + FS25_ADSmartPickup/l10n/l10n_da.xml | 1 + FS25_ADSmartPickup/l10n/l10n_en.xml | 1 + 6 files changed, 18 insertions(+), 4 deletions(-) diff --git a/FS25_ADSmartPickup/adFieldGuide.lua b/FS25_ADSmartPickup/adFieldGuide.lua index 9a88741..4b1efbb 100644 --- a/FS25_ADSmartPickup/adFieldGuide.lua +++ b/FS25_ADSmartPickup/adFieldGuide.lua @@ -146,7 +146,7 @@ end local PLAN_VALUES = { targetFruit = true, sow = true, rake = true, mulch = true, lime = true, roll = true, - fertilize = true, weed = true, straw = true, soil = true, rigs = true, unloaders = true, + fertilize = true, weed = true, straw = true, chainFree = true, soil = true, rigs = true, unloaders = true, } function ADFieldGuide.choose(guide, id, value) @@ -206,6 +206,7 @@ local function rowsCrop(guide) if target(guide.draft) == "" and info(guide).kind ~= "mowable" then table.insert(rows, toggle("sow", L("spu_guide_crop_sowAgain"), plan.sow)) end + table.insert(rows, toggle("chainFree", L("spu_field_chainFree"), plan.chainFree)) return rows end @@ -442,6 +443,8 @@ end function ADFieldGuide.result(guide, start) local draft = guide.draft local plan = ADGuide.deepCopy(draft.plan) + -- kilden ejes af setTarget; kladdens gamle værdi må ikke overskrive den + plan.targetSource = nil local t = plan.targetFruit or "" if t ~= "" then plan.mode = "auto" diff --git a/FS25_ADSmartPickup/adFieldJobs.lua b/FS25_ADSmartPickup/adFieldJobs.lua index 80301eb..6db2d8f 100644 --- a/FS25_ADSmartPickup/adFieldJobs.lua +++ b/FS25_ADSmartPickup/adFieldJobs.lua @@ -309,8 +309,8 @@ function ADFieldJobs.forceReady(id) ADFieldJobs.setField(ADFieldModel.forceReady(ADFieldJobs.getField(id))) end -function ADFieldJobs.setTarget(id, fruitName) - ADFieldJobs.setField(ADFieldModel.setTarget(ADFieldJobs.getField(id), fruitName)) +function ADFieldJobs.setTarget(id, fruitName, source) + ADFieldJobs.setField(ADFieldModel.setTarget(ADFieldJobs.getField(id), fruitName, source)) ADFieldJobs.log(id, "mål-afgrøde: %s", fruitName ~= "" and fruitName or "ingen") ADFieldJobs.save() end diff --git a/FS25_ADSmartPickup/adFieldModel.lua b/FS25_ADSmartPickup/adFieldModel.lua index 591fb7c..ed5358b 100644 --- a/FS25_ADSmartPickup/adFieldModel.lua +++ b/FS25_ADSmartPickup/adFieldModel.lua @@ -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) diff --git a/FS25_ADSmartPickup/adFieldStorage.lua b/FS25_ADSmartPickup/adFieldStorage.lua index 1b576c9..625e269 100644 --- a/FS25_ADSmartPickup/adFieldStorage.lua +++ b/FS25_ADSmartPickup/adFieldStorage.lua @@ -12,6 +12,7 @@ ADFieldStorage.FIELD_TYPES = { rigs = "Int", unloaders = "Int", mulch = "Int", lime = "Int", soil = "String", sow = "Int", sowFruit = "String", roll = "Int", fertilize = "Int", weed = "Int", kind = "String", lastFruit = "String", care = "String", targetFruit = "String", prepAfterMow = "Int", straw = "String", + chainFree = "Int", targetSource = "String", mowWidth = "Float", mowVehicle = "String", rakeVehicle = "String", harvestVehicle = "String", windrowOffset = "String", dedicated = "String", } diff --git a/FS25_ADSmartPickup/l10n/l10n_da.xml b/FS25_ADSmartPickup/l10n/l10n_da.xml index 21cd4fa..7a1f33f 100644 --- a/FS25_ADSmartPickup/l10n/l10n_da.xml +++ b/FS25_ADSmartPickup/l10n/l10n_da.xml @@ -167,6 +167,7 @@ + diff --git a/FS25_ADSmartPickup/l10n/l10n_en.xml b/FS25_ADSmartPickup/l10n/l10n_en.xml index aacf6bc..afe75ac 100644 --- a/FS25_ADSmartPickup/l10n/l10n_en.xml +++ b/FS25_ADSmartPickup/l10n/l10n_en.xml @@ -167,6 +167,7 @@ +