Skip to main content
Skip to main content

PrecisionFarmingStatistic

PrecisionFarmingStatistic

Description

Specialization to save is on field state and current farmland id on a central spot

Functions

getPFStatisticInfo

Description

Definition

getPFStatisticInfo()

Code

function PrecisionFarmingStatistic:getPFStatisticInfo()
local spec = self [ PrecisionFarmingStatistic.SPEC_TABLE_NAME]
return spec.farmlandStatistics, spec.isOnField, spec.farmlandId, spec.isOnFieldSmoothed, spec.mission
end

getPFYieldMap

Description

Definition

getPFYieldMap()

Code

function PrecisionFarmingStatistic:getPFYieldMap()
local spec = self [ PrecisionFarmingStatistic.SPEC_TABLE_NAME]
return spec.yieldMap
end

onUpdateTick

Description

Definition

onUpdateTick()

Arguments

anydt
anyisActiveForInput
anyisActiveForInputIgnoreSelection
anyisSelected

Code

function PrecisionFarmingStatistic:onUpdateTick(dt, isActiveForInput, isActiveForInputIgnoreSelection, isSelected)
local spec = self [ PrecisionFarmingStatistic.SPEC_TABLE_NAME]

spec.lastUpdateDistance = spec.lastUpdateDistance + self.lastMovedDistance
if spec.lastUpdateDistance > spec.updateDistance or spec.farmlandId = = 0 then
spec.lastUpdateDistance = 0
local x, _, z = getWorldTranslation( self.rootNode)
spec.farmlandId = g_farmlandManager:getFarmlandIdAtWorldPosition(x, z)

if spec.farmlandId ~ = 0 then
local landOwner = g_farmlandManager:getFarmlandOwner(spec.farmlandId)
spec.farmlandAccess = (landOwner ~ = 0 and g_currentMission.accessHandler:canFarmAccessOtherId( self:getActiveFarm(), landOwner))
else
spec.farmlandAccess = false
end

spec.mission = g_missionManager:getMissionAtWorldPosition(x, z)

local isOnField = self.isOnField
if isOnField ~ = spec.isOnField then
if isOnField then
spec.isOnFieldSmoothed = true
else
spec.isOnFieldLastPos[ 1 ] = x
spec.isOnFieldLastPos[ 2 ] = z
end
end

if spec.isOnFieldSmoothed ~ = isOnField then
local distance = MathUtil.vector2Length(x - spec.isOnFieldLastPos[ 1 ], z - spec.isOnFieldLastPos[ 2 ])
if distance > 20 then
spec.isOnFieldSmoothed = isOnField
end
end

spec.isOnField = isOnField
end
end

prerequisitesPresent

Description

Checks if all prerequisite specializations are loaded

Definition

prerequisitesPresent(table specializations)

Arguments

tablespecializationsspecializations

Return Values

tablehasPrerequisitetrue if all prerequisite specializations are loaded

Code

function PrecisionFarmingStatistic.prerequisitesPresent(specializations)
return true
end

updatePFStatistic

Description

Definition

updatePFStatistic()

Arguments

anyname
anyvalue

Code

function PrecisionFarmingStatistic:updatePFStatistic(name, value)
local spec = self [ PrecisionFarmingStatistic.SPEC_TABLE_NAME]
if spec.farmlandStatistics ~ = nil then
if (spec.farmlandId ~ = nil and spec.farmlandAccess) and spec.mission = = nil then
spec.farmlandStatistics:updateStatistic(spec.farmlandId, name, value)
end
end
end