fix: AD's 'AL unload' sættes til center ved Start af udkørsel med autoload-bil (stod på fra → ingen aflæsning ved salgssted); pris-% = kurven alene (v1.12.10.0)
This commit is contained in:
@@ -77,7 +77,9 @@ local function getCurrentPeriod()
|
||||
end
|
||||
|
||||
-- {price, top, percent} for varen ved stationen; nil hvis stationen ikke kan prissætte den.
|
||||
-- percent = kurve-% × (effektiv ÷ stationens grundpris nu); top = den pris der svarer til 100 %.
|
||||
-- percent = kurve-% (faktor nu ÷ årets højeste). Stationens `fillTypePrices` bruges IKKE som
|
||||
-- reference: in-game (23/9) gav effektiv 1602 mod grundpris 505 = 317 %, fordi grundprisen
|
||||
-- hverken indeholder sværhedsgrad eller prisskala. top = prisen der svarer til 100 % af kurven.
|
||||
function ADPrices.getQuote(station, fillType)
|
||||
if station == nil or station.getEffectiveFillTypePrice == nil then
|
||||
return nil
|
||||
@@ -88,10 +90,7 @@ function ADPrices.getQuote(station, fillType)
|
||||
end
|
||||
local fillTypeDesc = g_fillTypeManager ~= nil and g_fillTypeManager.getFillTypeByIndex ~= nil and g_fillTypeManager:getFillTypeByIndex(fillType) or nil
|
||||
local factors = fillTypeDesc ~= nil and fillTypeDesc.economy ~= nil and fillTypeDesc.economy.factors or nil
|
||||
local curve = ADPrices.curvePercent(factors, getCurrentPeriod())
|
||||
local baseNow = station.fillTypePrices ~= nil and tonumber(station.fillTypePrices[fillType]) or nil
|
||||
local stationRatio = (baseNow ~= nil and baseNow > 0) and (effective / baseNow) or 1
|
||||
local percent = math.floor(curve * stationRatio + 0.5)
|
||||
local percent = ADPrices.curvePercent(factors, getCurrentPeriod())
|
||||
local top = percent > 0 and (effective * 100 / percent) or effective
|
||||
return {price = effective, top = top, percent = percent}
|
||||
end
|
||||
|
||||
@@ -568,10 +568,37 @@ local function findNearestLoadMarker(adEnv, vehicle, farmId)
|
||||
return best
|
||||
end
|
||||
|
||||
local function getSettingValue(adEnv, vehicle, settingName)
|
||||
local global = adEnv.AutoDrive.settings[settingName]
|
||||
if global == nil then
|
||||
return nil
|
||||
end
|
||||
local setting = global
|
||||
if global.isVehicleSpecific and vehicle.ad.settings ~= nil and vehicle.ad.settings[settingName] ~= nil then
|
||||
setting = vehicle.ad.settings[settingName]
|
||||
end
|
||||
return setting.values ~= nil and setting.values[setting.current] or nil
|
||||
end
|
||||
|
||||
-- AutoDrives "AL unload" (aflæsning af autoload-vogn ved målet) står som standard på FRA (0):
|
||||
-- bilen ville holde ved salgsstedet uden at læsse af. "center" (1) løsner stropperne i triggeren,
|
||||
-- så salgsstedet tager pallerne; left/behind/right lader UAL sætte pallerne af ved siden af.
|
||||
-- Et valg brugeren selv har lavet, røres ikke.
|
||||
ADRunsController.AL_UNLOAD_CENTER = 1
|
||||
local function ensureAutoloadUnload(adEnv, vehicle)
|
||||
if getSettingValue(adEnv, vehicle, "ALUnload") == 0 then
|
||||
setSetting(adEnv, vehicle, "ALUnload", ADRunsController.AL_UNLOAD_CENTER)
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "'%s': AutoDrives 'AL unload' var fra — sat til 'center' (stropper løsnes i triggeren)", tostring(vehicle:getName()))
|
||||
end
|
||||
end
|
||||
|
||||
-- Udkørsel: 1. og 2. markør = første kilde (pladsholder — kilde og mål vælges pr. tur af
|
||||
-- ADOutbound), varevalg = run'ets varer vognen kan bære, rotation "kun pålæsning" (hook'en).
|
||||
local function applyOutboundRunToVehicle(adEnv, run, vehicle)
|
||||
local stateModule = vehicle.ad.stateModule
|
||||
if hasAutoload(adEnv, vehicle) then
|
||||
ensureAutoloadUnload(adEnv, vehicle)
|
||||
end
|
||||
stateModule:setMode(adEnv.AutoDrive.MODE_PICKUPANDDELIVER)
|
||||
local firstId = run.sourceWayPointIds[1]
|
||||
stateModule:setFirstMarkerByWayPointId(firstId)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.12.9.0</version>
|
||||
<version>1.12.10.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
Reference in New Issue
Block a user