fix(ejerskab): jord-bundne kortanlæg (boughtWithFarmland / ejer 15) er gårdens når jorden under dem er købt — Dakotas BGA500kw på jordlod 69 (v1.17.7.0)
This commit is contained in:
@@ -84,19 +84,49 @@ function ADPrices.isSellingStation(station)
|
||||
return true
|
||||
end
|
||||
|
||||
function ADPrices.isOwnedByPlayer(placeable)
|
||||
local owner = nil
|
||||
-- Placeable-ejeren (nil = ukendt).
|
||||
local function getOwner(placeable)
|
||||
if placeable.getOwnerFarmId ~= nil then
|
||||
local ok, value = pcall(placeable.getOwnerFarmId, placeable)
|
||||
if ok then owner = value end
|
||||
elseif placeable.ownerFarmId ~= nil then
|
||||
owner = placeable.ownerFarmId
|
||||
if ok then return value end
|
||||
return nil
|
||||
end
|
||||
if owner == nil then
|
||||
return placeable.ownerFarmId
|
||||
end
|
||||
|
||||
-- Ejeren af jorden under en placeable (nil = ukendt).
|
||||
local function getLandOwner(placeable)
|
||||
local manager = g_farmlandManager
|
||||
if manager == nil or manager.getFarmlandIdAtWorldPosition == nil or manager.getFarmlandOwner == nil or placeable.rootNode == nil or getWorldTranslation == nil then
|
||||
return nil
|
||||
end
|
||||
local ok, x, _, z = pcall(getWorldTranslation, placeable.rootNode)
|
||||
if not ok or x == nil then return nil end
|
||||
local okId, farmlandId = pcall(manager.getFarmlandIdAtWorldPosition, manager, x, z)
|
||||
if not okId or farmlandId == nil then return nil end
|
||||
local okOwner, owner = pcall(manager.getFarmlandOwner, manager, farmlandId)
|
||||
return okOwner and owner or nil
|
||||
end
|
||||
|
||||
-- Gårdens bygning? Ejer = farmId, ELLER et kortanlæg der følger jorden (boughtWithFarmland / ejer 15)
|
||||
-- og jorden under det er gårdens — Dakotas BGA500kw står med ejer 15 selv på købt jord.
|
||||
function ADPrices.isOwnedBy(placeable, farmId)
|
||||
if placeable == nil then return false end
|
||||
local owner = getOwner(placeable)
|
||||
if owner == farmId then return true end
|
||||
if placeable.boughtWithFarmland == true or owner == 15 then
|
||||
return getLandOwner(placeable) == farmId
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- Spillerens gård ejer placeablen; ukendt ejer = regnes som egen (afleveringer til egne anlæg er ikke salg).
|
||||
function ADPrices.isOwnedByPlayer(placeable)
|
||||
local farmId = g_currentMission ~= nil and g_currentMission.getFarmId ~= nil and g_currentMission:getFarmId() or 1
|
||||
if getOwner(placeable) == nil then
|
||||
return true
|
||||
end
|
||||
local farmId = g_currentMission ~= nil and g_currentMission.getFarmId ~= nil and g_currentMission:getFarmId() or 1
|
||||
return owner == farmId
|
||||
return ADPrices.isOwnedBy(placeable, farmId)
|
||||
end
|
||||
|
||||
local function getCurrentPeriod()
|
||||
|
||||
Reference in New Issue
Block a user