feat(markarbejde): manuel transport af brede høstere — flueben pr. høster i markflåden; moden beder spilleren køre den til marken og montere skærebordet (dialog + påmindelse hvert 5. min), overtager når den står på marken med passende skærebord og spilleren er steget ud (eller ved Start nu), tømmevogne først når høsten kører, ingen AD-parkering bagefter (v1.38.0.0)
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
-- Funktionerne lægges på SmartPickupFrame (indlæses efter SmartPickupFrame.lua).
|
||||
|
||||
-- Markflådens rækker (vehiclePrefab/ingredientPrefab) routes til onClickFieldRow.
|
||||
SmartPickupFrame.FIELD_ROW_KINDS = {fleetVehicle = true, fleetMode = true}
|
||||
SmartPickupFrame.FIELD_ROW_KINDS = {fleetVehicle = true, fleetMode = true, fleetManual = true}
|
||||
SmartPickupFrame.ROLE_KEYS = {
|
||||
mower = "spu_field_role_mower", tedder = "spu_field_role_tedder", rake = "spu_field_role_rake",
|
||||
collector = "spu_field_role_collector", harvester = "spu_field_role_harvester", unloader = "spu_field_role_unloader",
|
||||
@@ -238,6 +238,12 @@ function SmartPickupFrame:fillFleetRows(adEnv)
|
||||
local title = string.format(" %s — %s, %.1f m%s", tostring(rig.label), self:roleText(rig.role), rig.width or 0, self:rigDetails(rig))
|
||||
row:getDescendantByName("title"):setText(title)
|
||||
row:getDescendantByName("option"):setState(rig.enabled and SmartPickupFrame.STATE_ON or SmartPickupFrame.STATE_OFF, false)
|
||||
if rig.role == "harvester" then
|
||||
-- for bred til vejene med skærebord: spilleren kører den til marken, moden overtager derfra
|
||||
local option = self:addToggleRow("fleetManual", string.format(i18n:getText("spu_field_manualTransport"), tostring(rig.label)),
|
||||
{i18n:getText("ui_no"), i18n:getText("ui_yes")}, rig.manual)
|
||||
self.rowData[option] = {kind = "fleetManual", vehicleId = rig.id}
|
||||
end
|
||||
end
|
||||
if #rigs == 0 then
|
||||
self:addTextRow(" " .. i18n:getText("spu_field_noRigs"))
|
||||
@@ -266,7 +272,9 @@ function SmartPickupFrame:refreshFieldRows(adEnv)
|
||||
local selected = self.selectedFieldId ~= nil and ADFieldJobs.getField(self.selectedFieldId) or nil
|
||||
local info = self.selectedFieldId ~= nil and ADFields.getInfo(self.selectedFieldId) or nil
|
||||
local isWorking = selected ~= nil and ADFieldModel.isWorking(selected)
|
||||
self.fieldStartButtonInfo.text = self.i18n:getText(isWorking and "spu_field_button_stop" or "spu_field_button_start")
|
||||
local awaiting = self.selectedFieldId ~= nil and ADFieldJobs.awaitingPlayer(self.selectedFieldId) ~= nil
|
||||
self.fieldStartButtonInfo.text = self.i18n:getText(awaiting and "spu_field_button_takeover"
|
||||
or (isWorking and "spu_field_button_stop" or "spu_field_button_start"))
|
||||
self.fieldStartButtonInfo.disabled = selected == nil or info == nil or (not isWorking and info.markerId == nil)
|
||||
end
|
||||
|
||||
@@ -279,6 +287,8 @@ function SmartPickupFrame:onClickFieldRow(state, data)
|
||||
ADFieldJobs.toggleFleet(data.vehicleId)
|
||||
elseif data.kind == "fleetMode" then
|
||||
ADFieldJobs.setFleetMode(isOn and "all" or "ticked")
|
||||
elseif data.kind == "fleetManual" then
|
||||
if ((ADFieldJobs.state.manual or {})[data.vehicleId] == true) ~= isOn then ADFieldJobs.toggleManual(data.vehicleId) end
|
||||
end
|
||||
frame:requestRebuild()
|
||||
end)
|
||||
@@ -290,7 +300,12 @@ function SmartPickupFrame:onClickFieldStartStop()
|
||||
local id = frame.selectedFieldId
|
||||
if id == nil then return end
|
||||
local field = ADFieldJobs.getField(id)
|
||||
if ADFieldModel.isWorking(field) then
|
||||
if ADFieldJobs.awaitingPlayer(id) ~= nil then
|
||||
-- manuel transport: overtag nu (skærebordet tjekkes stadig)
|
||||
ADFieldJobs.requestTakeover(id)
|
||||
frame.statusOverride = string.format(frame.i18n:getText("spu_field_takeoverRequested"), id)
|
||||
frame.statusOverrideTicks = SmartPickupFrame.STATUS_OVERRIDE_TICKS
|
||||
elseif ADFieldModel.isWorking(field) then
|
||||
ADFieldJobs.stopField(frame.getAdEnv(), id)
|
||||
else
|
||||
local decision = ADFieldJobs.lastDecision[id]
|
||||
|
||||
Reference in New Issue
Block a user