Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 1 addition & 16 deletions config/jobParameters/FieldWorkJobParameterSetup.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,6 @@
</SettingSubTitle>
<SettingSubTitle title="laneOffset">
<Setting classType="AIParameterSettingList" name="laneOffset" default="0" isDisabled ="isLaneOffsetDisabled"
isVisible="isLaneOffsetVisible" onChangeCallback="onLaneOffsetChanged">
<Values>
<Value name="LANE_LEFT_2" isDisabled ="lessThanThreeMultiTools">-2</Value>
<Value name="LANE_LEFT" isDisabled = "noMultiToolsCourseSelected">-1</Value>
<Value name="LANE_CENTER" isDisabled ="evenNumberOfMultiTools">0</Value>
<Value name="LANE_RIGHT" isDisabled = "noMultiToolsCourseSelected">1</Value>
<Value name="LANE_RIGHT_2" isDisabled ="lessThanThreeMultiTools">2</Value>
</Values>
<Texts>
<Text>left_2</Text>
<Text>left</Text>
<Text>center</Text>
<Text>right</Text>
<Text>right_2</Text>
</Texts>
</Setting>
isVisible="isLaneOffsetVisible" onChangeCallback="onLaneOffsetChanged" generateValuesFunction="generateMultiToolLaneOffset"/>
</SettingSubTitle>
</Settings>
1 change: 1 addition & 0 deletions scripts/CpSettingsUtil.lua
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ function CpSettingsUtil.loadSettingsFromSetup(class, filePath)
local settingParameters = {}
settingParameters.classType = xmlFile:getValue(baseKey.."#classType")
settingParameters.name = xmlFile:getValue(baseKey.."#name")
settingParameters.setupName = setupKey..settingParameters.name
local title = xmlFile:getValue(baseKey.."#title")
if title then
settingParameters.title = title
Expand Down
32 changes: 30 additions & 2 deletions scripts/ai/jobs/CpJobParameters.lua
Original file line number Diff line number Diff line change
Expand Up @@ -152,12 +152,14 @@ function CpFieldWorkJobParameters.getSettings(vehicle)
return vehicle.spec_cpAIFieldWorker.cpJob:getCpJobParameters()
end

---@return number
---@return Course.MultiVehicleData|nil
function CpFieldWorkJobParameters:getMultiTools()
local vehicle = self.job:getVehicle()
local vehicle = self.job and self.job:getVehicle()
if vehicle then
local course = vehicle:getFieldWorkCourse()
if course then
return course:getMultiTools() or 1
return course:getMultiTools(), course.multiVehicleData
else
return 1
end
Expand All @@ -166,6 +168,32 @@ function CpFieldWorkJobParameters:getMultiTools()
return 5
end

function CpFieldWorkJobParameters:generateMultiToolLaneOffset(setting, oldIx)
local ntools, toolData = self:getMultiTools()
local values, texts = {}, {}
if ntools > 3 then
table.insert(values, -2)
table.insert(texts, setting:getSubText("left_2"))
end
if ntools > 1 then
table.insert(values, -1)
table.insert(texts, setting:getSubText("left"))
end
if ntools % 2 > 0 then
table.insert(values, 0)
table.insert(texts, setting:getSubText("center"))
end
if ntools > 1 then
table.insert(values, 1)
table.insert(texts, setting:getSubText("right"))
end
if ntools > 3 then
table.insert(values, 2)
table.insert(texts, setting:getSubText("right_2"))
end
return values, texts, toolData and toolData.position or oldIx
end

function CpFieldWorkJobParameters:noMultiToolsCourseSelected()
return self:getMultiTools() <= 1
end
Expand Down
8 changes: 8 additions & 0 deletions scripts/ai/parameters/AIParameterSetting.lua
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,14 @@ function AIParameterSetting:getTitle()
return g_i18n:getText(self.title)
end

--- Gets a translation text for texts like these: "CP_fieldWorkJobParameters_startAt_nearest",
--- where "nearest" the sub name is.
---@param subName string
---@return string
function AIParameterSetting:getSubText(subName)
return g_i18n:getText(self.data.setupName .. "_" .. subName)
end

function AIParameterSetting:getType()
return self.guiParameterType
end
Expand Down
4 changes: 3 additions & 1 deletion scripts/gui/pages/CpCourseGeneratorFrame.lua
Original file line number Diff line number Diff line change
Expand Up @@ -974,6 +974,8 @@ function CpCourseGeneratorFrame:generateFieldworkCourse()
nil, nil, DialogElement.TYPE_ERROR)
return
end
self:validateParameters()
self:updateParameterValueTexts()
end)
return true
end
Expand Down Expand Up @@ -1596,8 +1598,8 @@ function CpCourseGeneratorFrame:setActiveJobTypeSelection(jobTypeIndex)
end
end
end
self:updateParameterValueTexts()
self:validateParameters()
self:updateParameterValueTexts()
self.jobMenuLayout:invalidateLayout()
FocusManager:setFocus(self.jobTypeElement)
self:updateCourseGenerator(self.currentJob.is_a and self.currentJob:is_a(CpAIJobFieldWork), self.currentJobVehicle)
Expand Down
Loading