LUADOC - Farming Simulator 19

FarmManager

Description
Handles everything farms
Parent
AbstractManager
Functions

delete

Description
Deletes field mission manager
Definition
delete()
Code
234function FarmManager:delete()
235end

loadFromXMLFile

Description
Load fieldjob data from xml savegame file
Definition
loadFromXMLFile(string filename)
Arguments
stringfilenamexml filename
Code
101function FarmManager:loadFromXMLFile(xmlFilename)
102 if xmlFilename == nil then
103 self:loadDefaults()
104 return false
105 end
106
107 local xmlFile = loadXMLFile("TempXML", xmlFilename)
108 if not xmlFile then
109 return false
110 end
111
112 local i = 0
113 while true do
114 local key = string.format("farms.farm(%d)", i)
115 if not hasXMLProperty(xmlFile, key) then
116 break
117 end
118
119 local farm = Farm:new(true, g_client ~= nil)
120
121 if not farm:loadFromXMLFile(xmlFile, key) then
122 farm:delete()
123 else
124 farm:register()
125
126 table.insert(self.farms, farm)
127 self.farmIdToFarm[farm.farmId] = farm
128 end
129
130 i = i + 1
131 end
132
133 self:mergeFarmsForSingleplayer()
134
135 -- Emulate an MP player join for local MP or SP game
136 if g_currentMission:getIsClient() then
137 local uniqueUserId = g_currentMission.missionDynamicInfo.isMultiplayer and getUniqueUserId() or FarmManager.SINGLEPLAYER_UUID
138 self:playerJoinedGame(uniqueUserId, g_currentMission:getServerUserId())
139 end
140
141 g_fieldManager:updateFieldOwnership()
142
143 delete(xmlFile)
144
145 return true
146end

loadMapData

Description
Load data on map load
Definition
loadMapData()
Return Values
booleantrueif loading was successful else false
Code
44function FarmManager:loadMapData(xmlFile)
45 FarmManager:superClass().loadMapData(self)
46
47 if g_currentMission:getIsServer() then
48 g_currentMission:addUpdateable(self)
49
50 -- Create spectator farm
51 local spectatorFarm = Farm:new(true, g_client ~= nil, nil, true)
52 spectatorFarm.farmId = FarmManager.SPECTATOR_FARM_ID
53 spectatorFarm.isSpectator = true
54 spectatorFarm.stats.updatePlayTime = false
55 spectatorFarm:register()
56
57 table.insert(self.farms, spectatorFarm)
58 self.farmIdToFarm[spectatorFarm.farmId] = spectatorFarm
59 end
60
61 addConsoleCommand("gsSetFarm", "Set farm for current player or vehicle", "consoleCommandSetFarm", self)
62end

new

Description
Creating manager
Definition
new()
Return Values
tableinstanceinstance of object
Code
28function FarmManager:new(customMt)
29 local self = AbstractManager:new(customMt or FarmManager_mt)
30
31 return self
32end

saveToXMLFile

Description
Write field mission data to savegame file
Definition
saveToXMLFile(string xmlFilename)
Arguments
stringxmlFilenamefile path
Return Values
booleantrueif loading was successful else false
Code
81function FarmManager:saveToXMLFile(xmlFilename)
82 local xmlFile = createXMLFile("farmsXML", xmlFilename, "farms");
83
84 local index = 0
85 for i, farm in ipairs(self.farms) do
86 if farm.farmId ~= 0 then
87 local key = string.format("farms.farm(%d)", index)
88
89 farm:saveToXMLFile(xmlFile, key)
90 index = index + 1
91 end
92 end
93
94 saveXMLFile(xmlFile)
95 delete(xmlFile)
96end

unloadMapData

Description
Unload data on mission delete
Definition
unloadMapData()
Code
66function FarmManager:unloadMapData()
67 g_currentMission:removeUpdateable(self)
68
69 removeConsoleCommand("gsSetFarm")
70 if g_addTestCommands then
71 removeConsoleCommand("debugCreateFarm")
72 end
73
74 FarmManager:superClass().unloadMapData(self)
75end

update

Description
Updates field mission ownage data from xml savegame file
Definition
update(string filename)
Arguments
stringfilenamexml filename
Code
240function FarmManager:update(dt)
241 if g_currentMission:getIsClient() then
242 if self.spFarmWasMerged and not self.mergedMessageShown then
243 g_gui:showInfoDialog({visible=true, text=g_i18n:getText("ui_farmedMergedSP"), dialogType=DialogElement.TYPE_INFO, isCloseAllowed=true})
244 self.mergedMessageShown = true
245 end
246 end
247end