Script v1_7_1_0
- AI
- Animals
- Collections
- Contracts
- Debug
- Economy
- Elements
- EnvironmentalScore
- EnvironmentalScore
- EnvironmentalScoreHerbici...
- EnvironmentalScoreNitroge...
- EnvironmentalScorePH
- EnvironmentalScoreSoilSam...
- EnvironmentalScoreTillage
- EnvironmentalScoreValue
- Errors
- Events
- GUI
- Handtools
- Hud
- I3d
- Input
- Jobs
- Maps
- Materials
- Misc
- Objects
- Parameters
- Placeables
- Placement
- Player
- Shop
- Sounds
- Specialization
- Specializations
- StateMachine
- Statistics
- Tasks
- Triggers
- Utils
- Vehicles
Engine v1_7_1_0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- general
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- NoteNode
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- VoiceChat
- XML
Foundation Reference
EnvironmentalScoreValue
Functions- getFarmlandData
- getScore
- initFarmlandData
- loadFarmlandData
- loadFromItemsXML
- loadFromXML
- new
- overwriteGameFunctions
- readFarmlandDataFromStream
- readStream
- saveFarmlandData
- saveToXMLFile
- update
- writeFarmlandDataToStream
- writeStream
getFarmlandData
DescriptionDefinitiongetFarmlandData()Code
33 | function EnvironmentalScoreValue:getFarmlandData(farmlandId) |
34 | if farmlandId ~= nil and self.farmlandDatas[farmlandId] == nil then |
35 | self.farmlandDatas[farmlandId] = self:initFarmlandData() |
36 | self.farmlandDatas[farmlandId].farmlandId = farmlandId |
37 | end |
38 | |
39 | return self.farmlandDatas[farmlandId] |
40 | end |
getScore
DescriptionDefinitiongetScore()Code
136 | function EnvironmentalScoreValue:getScore() |
137 | return 0.5 |
138 | end |
initFarmlandData
DescriptionDefinitioninitFarmlandData()Code
27 | function EnvironmentalScoreValue:initFarmlandData() |
28 | return {} |
29 | end |
loadFarmlandData
DescriptionDefinitionloadFarmlandData()Code
76 | function EnvironmentalScoreValue:loadFarmlandData(data, xmlFile, key) |
77 | end |
loadFromItemsXML
DescriptionDefinitionloadFromItemsXML()Code
52 | function EnvironmentalScoreValue:loadFromItemsXML(xmlFile, key) |
53 | xmlFile:iterate(string.format("%s.%s.farmland", key, self.xmlKey), function(index, dataKey) |
54 | local farmlandId = xmlFile:getInt(dataKey .. "#farmlandId") |
55 | if farmlandId ~= nil then |
56 | local data = self:getFarmlandData(farmlandId) |
57 | self:loadFarmlandData(data, xmlFile, dataKey) |
58 | end |
59 | end) |
60 | end |
loadFromXML
DescriptionDefinitionloadFromXML()Code
44 | function EnvironmentalScoreValue:loadFromXML(xmlFile, key, baseDirectory, configFileName, mapFilename) |
45 | self.farmlandDatas = {} |
46 | |
47 | return true |
48 | end |
new
DescriptionDefinitionnew()Code
16 | function EnvironmentalScoreValue.new(pfModule, customMt) |
17 | local self = setmetatable({}, customMt or EnvironmentalScoreValue_mt) |
18 | |
19 | self.pfModule = pfModule |
20 | self.xmlKey = "default" |
21 | |
22 | return self |
23 | end |
overwriteGameFunctions
DescriptionDefinitionoverwriteGameFunctions()Code
142 | function EnvironmentalScoreValue:overwriteGameFunctions(pfModule) |
143 | pfModule:overwriteGameFunction(FertilizingSowingMachine, "processSowingMachineArea", function(superFunc, vehicle, ...) |
144 | local realArea, area = superFunc(vehicle, ...) |
145 | |
146 | if realArea > 0 and vehicle.getPFStatisticInfo ~= nil then |
147 | local _, _, farmlandId = vehicle:getPFStatisticInfo() |
148 | if farmlandId ~= nil then |
149 | if vehicle.spec_sowingMachine.useDirectPlanting then |
150 | self:addWorkedArea(farmlandId, realArea, EnvironmentalScoreTillage.TYPE_DIRECT_PLANTING) |
151 | end |
152 | end |
153 | end |
154 | |
155 | return realArea, area |
156 | end) |
157 | end |
readFarmlandDataFromStream
DescriptionDefinitionreadFarmlandDataFromStream()Code
121 | function EnvironmentalScoreValue:readFarmlandDataFromStream(data, streamId, connection) |
122 | end |
readStream
DescriptionRead data on client sideDefinition
readStream(integer streamId, integer connection)Arguments
integer | streamId | streamId |
integer | connection | connection |
88 | function EnvironmentalScoreValue:readStream(streamId, connection, farmId) |
89 | local numFarmlandDatas = streamReadUIntN(streamId, g_farmlandManager.numberOfBits) |
90 | for i=1, numFarmlandDatas do |
91 | local farmlandId = streamReadUIntN(streamId, g_farmlandManager.numberOfBits) |
92 | local data = self:getFarmlandData(farmlandId) |
93 | self:readFarmlandDataFromStream(data, streamId, connection) |
94 | end |
95 | end |
saveFarmlandData
DescriptionDefinitionsaveFarmlandData()Code
81 | function EnvironmentalScoreValue:saveFarmlandData(data, xmlFile, key) |
82 | end |
saveToXMLFile
DescriptionDefinitionsaveToXMLFile()Code
64 | function EnvironmentalScoreValue:saveToXMLFile(xmlFile, key, usedModNames) |
65 | local index = 0 |
66 | for farmlandId, data in pairs(self.farmlandDatas) do |
67 | local dataKey = string.format("%s.%s.farmland(%d)", key, self.xmlKey, index) |
68 | xmlFile:setInt(dataKey .. "#farmlandId", farmlandId) |
69 | self:saveFarmlandData(data, xmlFile, dataKey) |
70 | index = index + 1 |
71 | end |
72 | end |
update
DescriptionDefinitionupdate()Code
131 | function EnvironmentalScoreValue:update(dt) |
132 | end |
writeFarmlandDataToStream
DescriptionDefinitionwriteFarmlandDataToStream()Code
126 | function EnvironmentalScoreValue:writeFarmlandDataToStream(data, streamId, connection) |
127 | end |
writeStream
DescriptionWrite data to clientDefinition
writeStream(integer streamId, integer connection)Arguments
integer | streamId | streamId |
integer | connection | connection |
101 | function EnvironmentalScoreValue:writeStream(streamId, connection, farmId) |
102 | local numFarmlandDatas = 0 |
103 | for farmlandId, _ in pairs(self.farmlandDatas) do |
104 | if g_farmlandManager.farmlandMapping[farmlandId] == farmId then |
105 | numFarmlandDatas = numFarmlandDatas + 1 |
106 | end |
107 | end |
108 | |
109 | streamWriteUIntN(streamId, numFarmlandDatas, g_farmlandManager.numberOfBits) |
110 | |
111 | for farmlandId, data in pairs(self.farmlandDatas) do |
112 | if g_farmlandManager.farmlandMapping[farmlandId] == farmId then |
113 | streamWriteUIntN(streamId, farmlandId, g_farmlandManager.numberOfBits) |
114 | self:writeFarmlandDataToStream(data, streamId, connection) |
115 | end |
116 | end |
117 | end |