perf(kæde): priser slås kun op for kandidatmarker, fanen genbruger resultater under 30 s og kæden måles af profileren
This commit is contained in:
@@ -1,22 +1,15 @@
|
||||
-- Smart Pickup — fanen Kæder
|
||||
-- Produktionskæderne som træ: rod (produktion spilleren har tændt) -> varer -> råvarer, med kilde, behov pr.
|
||||
-- måned og flowstatus; afgrødeforslag kan godkendes/afvises og en rod sættes på pause. Rækkerne bygges af
|
||||
-- ADChainView (testet); her kun kloning, farve og klik. Evaluering højst hvert CHAIN_EVALUATE_MS (visning, handler ikke).
|
||||
-- ADChainView (testet); her kun kloning, farve og klik. Et resultat yngre end CHAIN_MAX_AGE_MS (fra kædens eget
|
||||
-- tick eller en tidligere visning) genbruges; ellers evalueres (visning, handler ikke). Klik evaluerer altid.
|
||||
|
||||
SmartPickupFrame.CHAIN_EVALUATE_MS = 5000
|
||||
|
||||
-- Spillets ur i ms; uden g_time evalueres ved hver opbygning (der kun sker hvert CHAIN_REBUILD_TICKS s).
|
||||
local function nowMs()
|
||||
return type(g_time) == "number" and g_time or nil
|
||||
end
|
||||
SmartPickupFrame.CHAIN_MAX_AGE_MS = 30000
|
||||
|
||||
function SmartPickupFrame:chainLast(adEnv, force)
|
||||
local now = nowMs()
|
||||
local due = force or ADChain.last == nil or now == nil or self.chainEvaluatedAt == nil
|
||||
or now - self.chainEvaluatedAt >= SmartPickupFrame.CHAIN_EVALUATE_MS
|
||||
if due then
|
||||
local age = ADChain.lastAge ~= nil and ADChain.lastAge() or math.huge
|
||||
if force or ADChain.last == nil or age >= SmartPickupFrame.CHAIN_MAX_AGE_MS then
|
||||
ADChain.evaluate(adEnv)
|
||||
self.chainEvaluatedAt = now
|
||||
end
|
||||
return ADChain.last
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user