perf+fix: rutetjek gemmes 30 s (hak hvert 5. s); kilde der gav lidt hviler 3 min (æg-vognen til samme hønsehus 3x) (v1.27.3.0)
In-game 26/9: hak ca. hvert 5. s efter 1.27.2 = holdende vognes genplanlægning (ADOutbound/ADLoadSwap hvert 5 s) med AD-stifinding + reserve-BFS gennem 13.550 waypoints pr. kandidat. Rutesvar caches pr. mål og 10 m- område i 30 s (max 2000 poster); langsomme rutetjek logges. Æg: 'ingen mere last' markerer nu kilden som hvilende 3 min, så runden roterer mellem hønsehusene.
This commit is contained in:
@@ -107,5 +107,35 @@ do
|
||||
unreachable[903], unreachable[904] = nil, nil
|
||||
end
|
||||
|
||||
-- RC: rutesvar gemmes 30 s pr. mål og 10 m-område (holdende vogne spurgte hvert 5. s -> hak hvert 5. s)
|
||||
do
|
||||
local pathCalls = 0
|
||||
local realGetPathTo = adEnv.ADGraphManager.getPathTo
|
||||
adEnv.ADGraphManager.getPathTo = function(self, vehicle, id) pathCalls = pathCalls + 1; return realGetPathTo(self, vehicle, id) end
|
||||
local clock = 0
|
||||
netGetTime = function() return clock end
|
||||
local positions = {[500] = {100, 100}}
|
||||
getWorldTranslation = function(node) local p = positions[node]; return p[1], 0, p[2] end
|
||||
local parked = {rootNode = 500, getClosestWayPoint = function() return 901, 1 end}
|
||||
ADWaitPool.hasRouteTo(adEnv, parked, 10)
|
||||
ADWaitPool.hasRouteTo(adEnv, parked, 10)
|
||||
check("RC samme svar genbruges", pathCalls, 1)
|
||||
positions[500] = {104, 103}
|
||||
ADWaitPool.hasRouteTo(adEnv, parked, 10)
|
||||
check("RC samme 10 m-område genbruges", pathCalls, 1)
|
||||
positions[500] = {160, 100}
|
||||
ADWaitPool.hasRouteTo(adEnv, parked, 10)
|
||||
check("RC nyt sted -> nyt svar", pathCalls, 2)
|
||||
clock = 31000
|
||||
ADWaitPool.hasRouteTo(adEnv, parked, 10)
|
||||
check("RC efter 30 s -> nyt svar", pathCalls, 3)
|
||||
local first = ADWaitPool.hasRouteTo(adEnv, parked, 11)
|
||||
check("RC andet mål -> nyt svar", pathCalls, 4)
|
||||
check("RC samme svar igen", ADWaitPool.hasRouteTo(adEnv, parked, 11), first)
|
||||
check("RC uden nyt kald", pathCalls, 4)
|
||||
adEnv.ADGraphManager.getPathTo = realGetPathTo
|
||||
netGetTime = nil
|
||||
end
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user