fix(marksilo): siloer inden for 100 m af et gårdlager er gårdens (Farma-klynge deler lager) — sukkerroer blev kørt fra én Farma-silo til nabosiloen (v1.36.1.0)
This commit is contained in:
@@ -11,6 +11,9 @@ ADFieldSilos.STUCK_MS = 120000
|
||||
ADFieldSilos.PAUSE_MS = 600000
|
||||
ADFieldSilos.FAIL_MS = 30000 -- AD slukket inden for 30 s uden fremdrift = turen kunne ikke køres
|
||||
ADFieldSilos.CARGO_MIN_LITERS = 100 -- rest under dette tæller ikke som last
|
||||
-- Silo så tæt på et gårdlager er en del af gården (Farma-siloer deler lager inden for 50 m): ikke marksilo.
|
||||
-- (in-game 27/9: sukkerroer blev kørt fra én Farma-silo til nabosiloen i samme klynge)
|
||||
ADFieldSilos.FARM_RADIUS = 100
|
||||
ADFieldSilos.MOVING_SPEED = 0.00028 -- m/ms, samme grænse som AutoDrive
|
||||
ADFieldSilos.FILE_NAME = "ADSmartPickup_fieldsilos.xml"
|
||||
ADFieldSilos.ROOT = "ADSmartPickupFieldSilos"
|
||||
@@ -110,6 +113,13 @@ local function runBuildingIds()
|
||||
return ids
|
||||
end
|
||||
|
||||
local function nearStore(stores, x, z)
|
||||
for _, store in ipairs(stores) do
|
||||
if (store.x - x) ^ 2 + (store.z - z) ^ 2 <= ADFieldSilos.FARM_RADIUS ^ 2 then return true end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- Gårdlagre fra opsætningen + marksiloer (alle markers marksiloer, uden dubletter og uden gårdlagre).
|
||||
function ADFieldSilos.collectBuildings(adEnv)
|
||||
local fid = farmId()
|
||||
@@ -125,9 +135,9 @@ function ADFieldSilos.collectBuildings(adEnv)
|
||||
local silos, seen = {}, runBuildingIds()
|
||||
for _, info in ipairs(ADFields.list()) do
|
||||
for _, building in ipairs(ADFields.fieldSilos(adEnv, fid, info)) do
|
||||
if not seen[building.id] and not ADFieldSiloConfig.hasStore(ADFieldSilos.config, building.id) then
|
||||
seen[building.id] = true
|
||||
local x, z = position(building.placeable ~= nil and building.placeable.rootNode or nil)
|
||||
if not seen[building.id] and not ADFieldSiloConfig.hasStore(ADFieldSilos.config, building.id) and not nearStore(stores, x, z) then
|
||||
seen[building.id] = true
|
||||
table.insert(silos, {id = building.id, name = building.name, markerId = firstMarker(building, "load"),
|
||||
x = x, z = z, stock = siloStock(building.placeable)})
|
||||
end
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.36.0.0</version>
|
||||
<version>1.36.1.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
@@ -116,6 +116,15 @@ do
|
||||
check("I6 silo i et flow tømmes ikke", #silos, 0)
|
||||
ADRunsController.store.runs = {}
|
||||
|
||||
-- in-game 27/9: marksilo-flowet flyttede sukkerroer fra en Farma-silo til nabo-Farma-siloen (samme lagerklynge)
|
||||
local neighbour = {id = "nb", name = "Nabo-Farma", kind = "silo", placeable = {rootNode = {x = 40, z = 0}, spec_silo = {storages = {storage({[WHEAT] = 60000}, 0)}}}}
|
||||
ADFields.fieldSilos = function() return {fieldSilo, farm, neighbour} end
|
||||
local withNeighbour = S.collectBuildings(adEnv)
|
||||
local names = {}
|
||||
for _, silo in ipairs(withNeighbour) do table.insert(names, silo.id) end
|
||||
check("gårdens nabosilo (40 m fra gårdlager) er ikke marksilo", table.concat(names, ","), "fs")
|
||||
ADFields.fieldSilos = function() return {fieldSilo, farm} end
|
||||
|
||||
-- M5: rest under 100 l tæller ikke som last
|
||||
residue = 50
|
||||
local vehicles = S.collectVehicles(adEnv)
|
||||
|
||||
Reference in New Issue
Block a user