--[[
Name: Def Pack
Copyright (C) Levis, 2025
Author: Levis
All Rights Reserved
Date: 31.07.2025
Version: 1.0.0.3
]]

--[[
-- Important:
-- Not to be added to any mods / maps or modified from its current release form.
-- No modifications may be made to this script without written permission from Levis.

-- Wichtig:
-- Darf nicht zu Mods / Karten hinzugefügt oder in seiner aktuellen Veröffentlichungsform geändert werden.
-- Änderungen an diesem Skript dürfen nur mit schriftlicher Genehmigung von Levis vorgenommen werden.

-- Fontos:
-- Nem adható hozzá semmilyen modhoz / térképhez, és nem módosítható az aktuális kiadási formájában.
-- A szkript módosítása csak Levis írásos engedélyével történhet.

-- Important :
-- Ne doit pas être ajouté à des mods / cartes ou modifié sous sa forme de publication actuelle.
-- Aucune modification ne peut être apportée à ce script sans l'autorisation écrite de Levis.

-- Importante:
-- No debe añadirse a ningún mod / mapa ni modificarse desde su versión actual.
-- No se pueden hacer modificaciones a este script sin el permiso por escrito de Levis.

-- Önemli:
-- Hiçbir moda / haritaya eklenemez veya mevcut yayınlanan halinden değiştirilemez.
-- Bu betikte Levis'in yazılı izni olmadan değişiklik yapılamaz.

-- Ważne:
-- Nie może być dodawany do żadnych modów / map ani modyfikowany w swojej obecnej formie.
-- Żadne zmiany nie mogą być dokonywane w tym skrypcie bez pisemnej zgody Levisa.

-- Importante:
-- Non deve essere aggiunto a nessuna mod / mappa né modificato rispetto alla versione attuale.
-- Nessuna modifica può essere apportata a questo script senza il permesso scritto di Levis.

-- Importante:
-- Não deve ser adicionado a nenhum mod / mapa nem modificado em sua versão atual.
-- Nenhuma modificação pode ser feita neste script sem permissão por escrito de Levis.

-- Vigtigt:
-- Må ikke tilføjes til nogen mods / kort eller ændres fra den nuværende udgivelsesform.
-- Ingen ændringer må foretages i dette script uden skriftlig tilladelse fra Levis.

-- Viktig:
-- Skal ikke legges til i noen mods / kart eller endres fra sin nåværende utgivelsesform.
-- Ingen endringer kan gjøres i dette skriptet uten skriftlig tillatelse fra Levis.

-- Viktigt:
-- Får inte läggas till i några mods / kartor eller ändras från sin nuvarande version.
-- Inga ändringar får göras i detta skript utan skriftligt tillstånd från Levis.

-- 重要:
-- このスクリプトは、いかなるModやマップにも追加したり、現在のリリース形態から変更したりすることはできません。
-- Levis の書面による許可なしに、このスクリプトを変更することはできません。

-- Důležité:
-- Nesmí být přidáno do žádných modů / map ani upraveno z aktuální verze.
-- Žádné úpravy tohoto skriptu nejsou povoleny bez písemného souhlasu Levis.
]]

if Vehicle.getConsumerFillUnitIndex == nil then function Vehicle:getConsumerFillUnitIndex(fillType) local spec = self.spec_fillUnit if spec and spec.fillUnits then for i, unit in ipairs(spec.fillUnits) do if unit.supportedFillTypes and unit.supportedFillTypes[fillType] then return i end end end return nil end end local function isValidNode(node) return node and node ~= 0 end local function fixDefExactFillRootNode(vehicle) if DEFUsageMenu and DEFUsageMenu.settings and not DEFUsageMenu.settings.ENABLED then return end local spec = vehicle.spec_fillUnit if not (spec and spec.fillUnits) then return end local dieselNode = nil local dieselFillUnit = nil for _, unit in ipairs(spec.fillUnits) do if unit.supportedFillTypes and unit.supportedFillTypes[FillType.DIESEL] then if isValidNode(unit.exactFillRootNode) then dieselNode = unit.exactFillRootNode dieselFillUnit = unit break end end end if not isValidNode(dieselNode) then return end local parent = getParent(dieselNode) if not isValidNode(parent) then parent = vehicle.rootNode end for index, unit in ipairs(spec.fillUnits) do local isDEF = false if unit.attributes and unit.attributes.fillTypes then isDEF = string.lower(unit.attributes.fillTypes) == "def" elseif unit.fillType and unit.fillType == FillType.DEF then isDEF = true end if isDEF then if not isValidNode(unit.exactFillRootNode) then local newNode = clone(dieselNode, false, true) if not isValidNode(newNode) then print("ERROR duplicating node for DEF fill unit at index " .. tostring(index)) else link(parent, newNode) setVisibility(newNode, true) if setName then setName(newNode, "exactFillRootNode") end if g_currentMission and g_currentMission.addNodeObject then g_currentMission:addNodeObject(newNode, vehicle) end unit.exactFillRootNode = newNode spec.exactFillRootNodeToFillUnit[newNode] = unit spec.exactFillRootNodeToExtraDistance[newNode] = 0 end end end end end if g_currentModName ~= "FS25_Lev_DefPack" then return end if FillUnit.onPostLoad_original == nil then FillUnit.onPostLoad_original = FillUnit.onPostLoad function FillUnit:onPostLoad(savegame) FillUnit.onPostLoad_original(self, savegame) fixDefExactFillRootNode(self) end end 