LUADOC - Farming Simulator 22

Field

Description
This class wraps all Field data
Functions

delete

Description
Delete field definition object
Definition
delete()
Code
88function Field:delete()
89 if self.mapHotspot == nil then
90 g_currentMission:removeMapHotspot(self.mapHotspot)
91 self.mapHotspot:delete()
92 self.mapHotspot = nil
93 end
94end

load

Description
Load Field data from node
Definition
load(integer id)
Arguments
integeridai field node id
Return Values
booleantrueif loading was successful else false
Code
49function Field:load(id)
50 self.rootNode = id
51 local name = getUserAttribute(id, "name")
52 if name ~= nil then
53 self.name = g_i18n:convertText(name, g_currentMission.loadingMapModName)
54 end
55
56 self.fieldMissionAllowed = Utils.getNoNil(getUserAttribute(id, "fieldMissionAllowed"), true)
57 self.fieldGrassMission = Utils.getNoNil(getUserAttribute(id, "fieldGrassMission"), false)
58
59 local fieldDimensions = I3DUtil.indexToObject(id, getUserAttribute(id, "fieldDimensionIndex"))
60 if fieldDimensions == nil then
61 print("Warning: No fieldDimensionIndex defined for Field '"..getName(id).."'!")
62 return false
63 end
64 local angleRad = math.rad(Utils.getNoNil(tonumber(getUserAttribute(id, "fieldAngle")), 0))
65
66 self.fieldAngle = FSDensityMapUtil.convertToDensityMapAngle(angleRad, g_currentMission.fieldGroundSystem:getGroundAngleMaxValue())
67 self.fieldDimensions = fieldDimensions
68
69 FieldUtil.updateFieldPartitions(self, self.getFieldStatusPartitions, 900)
70 FieldUtil.updateFieldPartitions(self, self.setFieldStatusPartitions, 400)
71 FieldUtil.updateFieldPartitions(self, self.maxFieldStatusPartitions, 10000000)
72
73 self.posX, self.posZ = FieldUtil.getCenterOfField(self)
74
75 self.nameIndicator = I3DUtil.indexToObject(id, getUserAttribute(id, "nameIndicatorIndex")) -- this is where the field number appears on the ingamemap
76 if self.nameIndicator ~= nil then
77 local x, _, z = getWorldTranslation(self.nameIndicator)
78 self.posX, self.posZ = x, z
79 end
80
81 self.farmland = nil
82
83 return true
84end

new

Description
Create ai field definition object
Definition
new()
Return Values
tableinstanceInstance of object
Code
17function Field.new(customMt)
18 local self = {}
19 setmetatable(self, customMt or Field_mt)
20
21 self.fieldId = 0
22 self.posX = 0
23 self.posZ = 0
24 self.rootNode = nil
25 self.name = nil
26 self.mapHotspot = nil
27 self.fieldMissionAllowed = true
28 self.fieldGrassMission = false
29 self.fieldAngle = 0.0
30 self.fieldDimensions = nil
31 self.fieldArea = 1.0
32 self.getFieldStatusPartitions = {}
33 self.setFieldStatusPartitions = {}
34 self.maxFieldStatusPartitions = {}
35 self.isAIActive = true
36 self.fruitType = nil -- current fruit in the field, as seen by FJM
37 self.lastCheckedTime = nil
38 self.plannedFruit = 0
39
40 self.currentMission = nil
41
42 return self
43end