From 34cfee8a2faaa9366b1a9ae5035eedee3620aa56 Mon Sep 17 00:00:00 2001 From: thetaepsilon-gamedev Date: Sat, 7 Oct 2017 16:12:36 +0100 Subject: [PATCH] new flow logic: start adding replacement ABM logic --- new_flow_logic/abm_register.lua | 19 +++++++++++++++++++ .../flowable_node_registry_install.lua | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/new_flow_logic/abm_register.lua b/new_flow_logic/abm_register.lua index c1b2d7d..d8bb6cc 100644 --- a/new_flow_logic/abm_register.lua +++ b/new_flow_logic/abm_register.lua @@ -12,6 +12,25 @@ local flowlogic = pipeworks.flowlogic -- DISCUSS: should it be possible later on to raise the the rate of ABMs, or lower the chance? -- Currently all the intervals and chances are hardcoded below. + + +-- register node list for the main logic function. +-- see flowlogic.run() in abms.lua. +--[[ +local register_flowlogic_abm = function(nodename) + minetest.register_abm({ + nodenames = { nodename }, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + flowlogic.run(pos, node) + end + }) +end +]] + + + -- register a node name for the pressure balancing ABM. -- currently this only exists as a per-node function to allow nodes to be registered outside pipeworks. local register_abm_balance = function(nodename) diff --git a/new_flow_logic/flowable_node_registry_install.lua b/new_flow_logic/flowable_node_registry_install.lua index 07001ef..5ebae61 100644 --- a/new_flow_logic/flowable_node_registry_install.lua +++ b/new_flow_logic/flowable_node_registry_install.lua @@ -79,6 +79,10 @@ register.output = function(nodename, upper, lower, outputfn) if pipeworks.toggles.pressure_logic then abmregister.output(nodename, lower, outputfn) end + -- output ABM now part of main flow logic ABM to preserve ordering. + -- note that because outputs have to be a flowable first + -- (and the installation of the flow logic ABM is conditional), + -- registered output nodes for new_flow_logic is also still conditional on the enable flag. regwarning("output node", nodename) end