From f94c93bb59fa151ee90932f53afb82ac6f3aae15 Mon Sep 17 00:00:00 2001 From: thetaepsilon-gamedev Date: Sat, 7 Oct 2017 22:35:08 +0100 Subject: new flow logic: abms.lua: implement non-finite mode cleanupfn invocation in run_output() --- new_flow_logic/abms.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'new_flow_logic') diff --git a/new_flow_logic/abms.lua b/new_flow_logic/abms.lua index babd14e..9197d17 100644 --- a/new_flow_logic/abms.lua +++ b/new_flow_logic/abms.lua @@ -224,11 +224,16 @@ flowlogic.run_output = function(pos, node, currentpressure, oldpressure, outputd local upper = outputdef.upper local lower = outputdef.lower local result = currentpressure - if currentpressure > lower then + local threshold = nil + if finitemode then threshold = lower else threshold = upper end + if currentpressure > threshold then local takenpressure = outputdef.outputfn(pos, node, currentpressure, finitemode) local newpressure = currentpressure - takenpressure if newpressure < 0 then newpressure = 0 end result = newpressure end + if (not finitemode) and (currentpressure < lower) and (oldpressure > lower) then + outputdef.cleanupfn(pos, node, currentpressure) + end return result end -- cgit v1.2.3