Script v1.7.1.0
- AI
- Animals
- Contracts
- Debug
- Economy
- Effects
- Events
- Farms
- GUI
- Handtools
- I3d
- Materials
- Misc
- Objects
- Placeables
- Player
- Shop
- Sounds
- Specializations
- Triggers
- Utils
- Vehicles
- Weather
Engine v1.7.1.0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- XML
- general
Foundation Reference
FarmManager
DescriptionHandles everything farmsParent
AbstractManagerFunctions
delete
DescriptionDeletes field mission managerDefinition
delete()Code
234 | function FarmManager:delete() |
235 | end |
loadFromXMLFile
DescriptionLoad fieldjob data from xml savegame fileDefinition
loadFromXMLFile(string filename)Arguments
string | filename | xml filename |
101 | function 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 |
146 | end |
loadMapData
DescriptionLoad data on map loadDefinition
loadMapData()Return Values
boolean | true | if loading was successful else false |
44 | function 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) |
62 | end |
new
DescriptionCreating managerDefinition
new()Return Values
table | instance | instance of object |
28 | function FarmManager:new(customMt) |
29 | local self = AbstractManager:new(customMt or FarmManager_mt) |
30 | |
31 | return self |
32 | end |
saveToXMLFile
DescriptionWrite field mission data to savegame fileDefinition
saveToXMLFile(string xmlFilename)Arguments
string | xmlFilename | file path |
boolean | true | if loading was successful else false |
81 | function 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) |
96 | end |
unloadMapData
DescriptionUnload data on mission deleteDefinition
unloadMapData()Code
66 | function 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) |
75 | end |
update
DescriptionUpdates field mission ownage data from xml savegame fileDefinition
update(string filename)Arguments
string | filename | xml filename |
240 | function 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 |
247 | end |