From 5e503762e5c734eb65a804f6905606b2fbee90fa Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Fri, 15 May 2026 10:26:30 +0200 Subject: [PATCH] - in NestProcess agiunto sorting della JobPool --- NestProcess.lua | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/NestProcess.lua b/NestProcess.lua index 03b82c6..611780e 100644 --- a/NestProcess.lua +++ b/NestProcess.lua @@ -147,6 +147,25 @@ function PartTemplates:AddPart( id) end end +-- ordinamento JobPool per lunghezza decrescente dei pezzi +function JobPool:Sort() + local function SortByLengthDescending( Part1, Part2) + local dLength1 = PartTemplates[Part1.id].dLength + local dLength2 = PartTemplates[Part2.id].dLength + + if dLength1 > dLength2 + 10 * GEO.EPS_SMALL then + return true + elseif dLength2 > dLength1 + 10 * GEO.EPS_SMALL then + return false + end + + -- tie breaker + return Part1.id < Part2.id + end + + table.sort( self, SortByLengthDescending) +end + -- creazione combinata (si cicla una sola volta) di entrambe le tabelle local function BuildPartTemplatesAndJobPool() for id, nCount in pairs( PART) do @@ -175,6 +194,9 @@ RawInventory:BuildStock() -- costruzione lista pezzi template con proprietà geometriche e lista pezzi fisici da nestare BuildPartTemplatesAndJobPool() +-- ordinamento pezzi per lunghezza decrescente +JobPool:Sort() + -- loop principale: scorre le barre, sia già attive che a stock, e le riempie nel modo migliore possibile -- per ogni giro sceglie la soluzione con punteggio più alto while true do