@@ -60,38 +60,41 @@ function CpCourseGeneratorSettings.registerFunctions(vehicleType)
6060 SpecializationUtil .registerFunction (vehicleType , ' validateCourseGeneratorSettings' , CpCourseGeneratorSettings .validateSettings )
6161end
6262
63+ -- shortcut to access the spec
64+ function CpCourseGeneratorSettings .getSpec (self )
65+ return self [" spec_" .. CpCourseGeneratorSettings .SPEC_NAME ]
66+ end
67+
6368--- Gets all settings.
6469--- @return table
6570function CpCourseGeneratorSettings :getSettings ()
66- local spec = self . spec_cpCourseGeneratorSettings
71+ local spec = CpCourseGeneratorSettings . getSpec ( self )
6772 return spec
6873end
6974
7075--- Gets all settings.
7176--- @return table
7277function CpCourseGeneratorSettings :getSettingsTable ()
73- local spec = self . spec_cpCourseGeneratorSettings
78+ local spec = CpCourseGeneratorSettings . getSpec ( self )
7479 return spec .settings
7580end
7681
7782--- Gets all vine settings.
7883--- @return table
7984function CpCourseGeneratorSettings :getCpVineSettings ()
80- local spec = self . spec_cpCourseGeneratorSettings
85+ local spec = CpCourseGeneratorSettings . getSpec ( self )
8186 return spec .vineSettings
8287end
8388
8489--- Gets all settings.
8590--- @return table
8691function CpCourseGeneratorSettings :getCpVineSettingsTable ()
87- local spec = self . spec_cpCourseGeneratorSettings
92+ local spec = CpCourseGeneratorSettings . getSpec ( self )
8893 return spec .vineSettings .settings
8994end
9095
9196function CpCourseGeneratorSettings :onLoad (savegame )
92- --- Register the spec: spec_cpCourseGeneratorSettings
93- self .spec_cpCourseGeneratorSettings = self [" spec_" .. CpCourseGeneratorSettings .SPEC_NAME ]
94- local spec = self .spec_cpCourseGeneratorSettings
97+ local spec = CpCourseGeneratorSettings .getSpec (self )
9598
9699 --- Clones the generic settings to create different settings containers for each vehicle.
97100 CpSettingsUtil .cloneSettingsTable (spec ,CpCourseGeneratorSettings .settings ,self ,CpCourseGeneratorSettings )
@@ -114,76 +117,76 @@ function CpCourseGeneratorSettings:onUpdate(savegame)
114117 if self .propertyState == VehiclePropertyState .SHOP_CONFIG then
115118 return
116119 end
117- local spec = self . spec_cpCourseGeneratorSettings
120+ local spec = CpCourseGeneratorSettings . getSpec ( self )
118121 if not spec .finishedFirstUpdate then
119122 spec .workWidth :resetToLoadedValue ()
120123 end
121124 spec .finishedFirstUpdate = true
122125end
123126
124127function CpCourseGeneratorSettings :onReadStream (streamId , connection )
125- local spec = self . spec_cpCourseGeneratorSettings
128+ local spec = CpCourseGeneratorSettings . getSpec ( self )
126129 for i , setting in ipairs (spec .settings ) do
127130 setting :readStream (streamId , connection )
128131 end
129132end
130133
131134function CpCourseGeneratorSettings :onWriteStream (streamId , connection )
132- local spec = self . spec_cpCourseGeneratorSettings
135+ local spec = CpCourseGeneratorSettings . getSpec ( self )
133136 for i , setting in ipairs (spec .settings ) do
134137 setting :writeStream (streamId , connection )
135138 end
136139end
137140
138141function CpCourseGeneratorSettings :isRowsToSkipVisible ()
139- local spec = self . spec_cpCourseGeneratorSettings
142+ local spec = CpCourseGeneratorSettings . getSpec ( self )
140143 local rowPatternNumber = spec .centerMode :getValue ()
141144 return rowPatternNumber == CourseGenerator .RowPattern .ALTERNATING
142145end
143146
144147function CpCourseGeneratorSettings :isNumberOfCirclesVisible ()
145- local spec = self . spec_cpCourseGeneratorSettings
148+ local spec = CpCourseGeneratorSettings . getSpec ( self )
146149 local rowPatternNumber = spec .centerMode :getValue ()
147150 return rowPatternNumber == CourseGenerator .RowPattern .RACETRACK
148151end
149152
150153function CpCourseGeneratorSettings :isRowsPerLandVisible ()
151- local spec = self . spec_cpCourseGeneratorSettings
154+ local spec = CpCourseGeneratorSettings . getSpec ( self )
152155 local rowPatternNumber = spec .centerMode :getValue ()
153156 return rowPatternNumber == CourseGenerator .RowPattern .LANDS
154157end
155158
156159function CpCourseGeneratorSettings :isSpiralFromInsideVisible ()
157- local spec = self . spec_cpCourseGeneratorSettings
160+ local spec = CpCourseGeneratorSettings . getSpec ( self )
158161 local rowPatternNumber = spec .centerMode :getValue ()
159162 return rowPatternNumber == CourseGenerator .RowPattern .SPIRAL
160163end
161164
162165function CpCourseGeneratorSettings :isManualRowAngleVisible ()
163- local spec = self . spec_cpCourseGeneratorSettings
166+ local spec = CpCourseGeneratorSettings . getSpec ( self )
164167 return spec .autoRowAngle :getValue () == false
165168end
166169
167170--- Makes sure the automatic work width gets recalculated after the variable work width was changed by the user.
168171function CpCourseGeneratorSettings .onVariableWorkWidthSectionChanged (object )
169172 --- Object could be an implement, so make sure we use the root vehicle.
170173 local self = object .rootVehicle
171- if self :getIsSynchronized () and self . spec_cpCourseGeneratorSettings then
174+ if self :getIsSynchronized () then
172175 CpCourseGeneratorSettings .setAutomaticWorkWidthAndOffset (self )
173176 end
174177end
175178VariableWorkWidth .updateSections = Utils .appendedFunction (VariableWorkWidth .updateSections ,CpCourseGeneratorSettings .onVariableWorkWidthSectionChanged )
176179
177180function CpCourseGeneratorSettings :setAutomaticWorkWidthAndOffset ()
178- local spec = self . spec_cpCourseGeneratorSettings
181+ local spec = CpCourseGeneratorSettings . getSpec ( self )
179182 local width , offset , _ , _ = WorkWidthUtil .getAutomaticWorkWidthAndOffset (self )
180183 spec .workWidth :refresh ()
181184 spec .workWidth :setFloatValue (width , nil , true )
182185 self :getCpSettings ().toolOffsetX :setFloatValue (offset , nil , true )
183186end
184187
185188function CpCourseGeneratorSettings :setDefaultTurningRadius ()
186- local spec = self . spec_cpCourseGeneratorSettings
189+ local spec = CpCourseGeneratorSettings . getSpec ( self )
187190 spec .turningRadius :setFloatValue (AIUtil .getTurningRadius (self ), nil , true )
188191end
189192
208211
209212function CpCourseGeneratorSettings :loadSettings (savegame )
210213 if savegame == nil or savegame .resetVehicles then return end
211- local spec = self . spec_cpCourseGeneratorSettings
214+ local spec = CpCourseGeneratorSettings . getSpec ( self )
212215 --- Old save format
213216 savegame .xmlFile :iterate (savegame .key .. CpCourseGeneratorSettings .KEY , function (ix , key )
214217 local name = savegame .xmlFile :getValue (key .. " #name" )
@@ -229,7 +232,7 @@ function CpCourseGeneratorSettings:loadSettings(savegame)
229232end
230233
231234function CpCourseGeneratorSettings :saveToXMLFile (xmlFile , baseKey , usedModNames )
232- local spec = self . spec_cpCourseGeneratorSettings
235+ local spec = CpCourseGeneratorSettings . getSpec ( self )
233236
234237 --- Saves the normal course generator settings.
235238 CpSettingsUtil .saveToXmlFile (spec .settings , xmlFile ,
@@ -253,7 +256,7 @@ function CpCourseGeneratorSettings:raiseDirtyFlag(setting)
253256end
254257
255258function CpCourseGeneratorSettings :validateSettings ()
256- local spec = self . spec_cpCourseGeneratorSettings
259+ local spec = CpCourseGeneratorSettings . getSpec ( self )
257260 for i ,setting in ipairs (spec .settings ) do
258261 setting :refresh ()
259262 end
@@ -263,7 +266,7 @@ function CpCourseGeneratorSettings:validateSettings()
263266end
264267
265268function CpCourseGeneratorSettings :onCpUnitChanged ()
266- local spec = self . spec_cpCourseGeneratorSettings
269+ local spec = CpCourseGeneratorSettings . getSpec ( self )
267270 for i ,setting in ipairs (spec .settings ) do
268271 setting :validateTexts ()
269272 end
@@ -276,12 +279,12 @@ end
276279--- Callbacks for the settings to manipulate the gui elements.
277280---- --------------------------------------------------------------------------------------------------------------------
278281function CpCourseGeneratorSettings :hasMoreThenOneVehicle ()
279- local spec = self . spec_cpCourseGeneratorSettings
282+ local spec = CpCourseGeneratorSettings . getSpec ( self )
280283 return spec .multiTools :getValue () > 1
281284end
282285
283286function CpCourseGeneratorSettings :hasHeadlandsSelected ()
284- local spec = self . spec_cpCourseGeneratorSettings
287+ local spec = CpCourseGeneratorSettings . getSpec ( self )
285288 return spec .numberOfHeadlands :getValue () > 0
286289end
287290
@@ -292,7 +295,7 @@ function CpCourseGeneratorSettings:isNarrowFieldEnabled()
292295end
293296
294297function CpCourseGeneratorSettings :canStartOnRows ()
295- local spec = self . spec_cpCourseGeneratorSettings
298+ local spec = CpCourseGeneratorSettings . getSpec ( self )
296299 -- start on rows does not work for narrow field patterns
297300 return spec .numberOfHeadlands :getValue () > 0 and not spec .narrowField :getValue ()
298301end
@@ -333,7 +336,7 @@ function CpCourseGeneratorSettings:consoleCommandPrintSetting(name)
333336 CpUtil .info (" Not entered a valid vehicle!" )
334337 return
335338 end
336- local spec = vehicle . spec_cpCourseGeneratorSettings
339+ local spec = CpCourseGeneratorSettings . getSpec ( self )
337340 if not spec then
338341 CpUtil .infoVehicle (vehicle , " has no course generator settings!" )
339342 return
0 commit comments