summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--new_flow_logic/abms.lua7
1 files changed, 6 insertions, 1 deletions
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