LUADOC - Farming Simulator 19

Field

Description
This class wraps all Field data
Functions

delete

Description
Delete field definition object
Definition
delete()
Code
84function Field:delete()
85 if self.mapHotspot ~= nil then
86 g_currentMission:removeMapHotspot(self.mapHotspot)
87 self.mapHotspot:delete()
88 self.mapHotspot = nil
89 end
90end

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
48function Field:load(id)
49 self.rootNode = id
50 self.name = Utils.getNoNil(getUserAttribute(id, "name"), "")
51
52 self.fieldMissionAllowed = Utils.getNoNil(getUserAttribute(id, "fieldMissionAllowed"), true)
53 self.fieldGrassMission = Utils.getNoNil(getUserAttribute(id, "fieldGrassMission"), false)
54
55 local fieldDimensions = I3DUtil.indexToObject(id, getUserAttribute(id, "fieldDimensionIndex"))
56 if fieldDimensions == nil then
57 print("Warning: No fieldDimensionIndex defined for Field '"..getName(id).."'!")
58 return false
59 end
60 local angleRad = math.rad(Utils.getNoNil(tonumber(getUserAttribute(id, "fieldAngle")), 0))
61
62 self.fieldAngle = FSDensityMapUtil.convertToDensityMapAngle(angleRad, g_currentMission.terrainDetailAngleMaxValue)
63 self.fieldDimensions = fieldDimensions
64
65 FieldUtil.updateFieldPartitions(self, self.getFieldStatusPartitions, 900)
66 FieldUtil.updateFieldPartitions(self, self.setFieldStatusPartitions, 400)
67 FieldUtil.updateFieldPartitions(self, self.maxFieldStatusPartitions, 10000000)
68
69 self.posX, self.posZ = FieldUtil.getCenterOfField(self)
70
71 self.nameIndicator = I3DUtil.indexToObject(id, getUserAttribute(id, "nameIndicatorIndex")) -- this is where the field number appears on the ingamemap
72 if self.nameIndicator ~= nil then
73 local x, _, z = getWorldTranslation(self.nameIndicator)
74 self.posX, self.posZ = x, z
75 end
76
77 self.farmland = nil
78
79 return true
80end

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
39 self.currentMission = nil
40
41 return self
42end