summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthetaepsilon-gamedev <thetaepsilon-gamedev@noreply.users.github.com>2017-09-30 23:22:04 +0100
committerthetaepsilon-gamedev <thetaepsilon-gamedev@noreply.users.github.com>2017-09-30 23:22:04 +0100
commitd69941a0ae763d6681ede2185ad88e25b11fead5 (patch)
treeedea9e413c5c9b0e1a8fff74a630605c9b426351
parentafcec82ae336cba3e874f6afd1b4e46e04245f7d (diff)
downloadpipeworks-d69941a0ae763d6681ede2185ad88e25b11fead5.tar
pipeworks-d69941a0ae763d6681ede2185ad88e25b11fead5.tar.gz
pipeworks-d69941a0ae763d6681ede2185ad88e25b11fead5.tar.bz2
pipeworks-d69941a0ae763d6681ede2185ad88e25b11fead5.tar.xz
pipeworks-d69941a0ae763d6681ede2185ad88e25b11fead5.zip
temporarily move ABM registration out of register_flow_logic.lua to allow refactoring it into flowable registry
-rw-r--r--flowable_nodes_add_pipes.lua8
-rw-r--r--init.lua2
-rw-r--r--register_flow_logic.lua39
3 files changed, 17 insertions, 32 deletions
diff --git a/flowable_nodes_add_pipes.lua b/flowable_nodes_add_pipes.lua
index e681619..6fe8b7e 100644
--- a/flowable_nodes_add_pipes.lua
+++ b/flowable_nodes_add_pipes.lua
@@ -16,6 +16,7 @@ local pipes_full_nodenames = pipeworks.pipes_full_nodenames
local pipes_empty_nodenames = pipeworks.pipes_empty_nodenames
local register = pipeworks.flowables.register
+local abmregister = pipeworks.flowlogic.abmregister
@@ -29,9 +30,11 @@ local spigot_on = "pipeworks:spigot_pouring"
if pipeworks.enable_pipes then
for _, pipe in ipairs(pipes_full_nodenames) do
register.simple(pipe)
+ abmregister.balance(pipe)
end
for _, pipe in ipairs(pipes_empty_nodenames) do
register.simple(pipe)
+ abmregister.balance(pipe)
end
if pipeworks.enable_pipe_devices then
@@ -39,7 +42,12 @@ if pipeworks.enable_pipes then
register.simple(pump_on)
register.simple(spigot_on)
register.simple(spigot_off)
+ abmregister.balance(pump_off)
+ abmregister.balance(pump_on)
+ abmregister.balance(spigot_on)
+ abmregister.balance(spigot_off)
register.intake_simple(pump_on, thresholds.pump_pressure)
+ abmregister.input(pump_on, thresholds.pump_pressure)
end
end
diff --git a/init.lua b/init.lua
index a64be4e..d70e4f4 100644
--- a/init.lua
+++ b/init.lua
@@ -124,8 +124,8 @@ if pipeworks.enable_pipe_devices then dofile(pipeworks.modpath.."/devices.lua")
-- individual enable flags also checked in flowable_nodes_add_pipes.lua
if pipeworks.enable_new_flow_logic then
dofile(pipeworks.modpath.."/new_flow_logic.lua")
- dofile(pipeworks.modpath.."/flowable_nodes_add_pipes.lua")
dofile(pipeworks.modpath.."/register_flow_logic.lua")
+ dofile(pipeworks.modpath.."/flowable_nodes_add_pipes.lua")
end
if pipeworks.enable_redefines then
diff --git a/register_flow_logic.lua b/register_flow_logic.lua
index f3e8fbd..e7bed6a 100644
--- a/register_flow_logic.lua
+++ b/register_flow_logic.lua
@@ -8,21 +8,8 @@ pipeworks.flowlogic.abmregister = register
--- note that checking for feature toggles (because otherwise certain pipes aren't define)
--- is now done by flowable_nodes_add_pipes.lua
---[[
-if pipeworks.enable_pipes then
- minetest.register_abm({
- nodenames = pipes_all_nodenames,
- interval = 1,
- chance = 1,
- action = function(pos, node, active_object_count, active_object_count_wider)
- pipeworks.balance_pressure(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)
minetest.register_abm({
nodenames = { nodename },
@@ -34,11 +21,10 @@ local register_abm_balance = function(nodename)
})
end
register.balance = register_abm_balance
-for nodename, _ in pairs(pipeworks.flowables.list.simple) do
- register_abm_balance(nodename)
-end
-local register_abm_input = function(nodename, properties)
+-- register a node for the pump ABM.
+-- maxpressure is the maximum pressure that this pump can drive.
+local register_abm_input = function(nodename, maxpressure)
minetest.register_abm({
nodenames = { nodename },
interval = 1,
@@ -50,16 +36,8 @@ local register_abm_input = function(nodename, properties)
end
register.input = register_abm_input
-if pipeworks.enable_pipe_devices then
- -- absorb water into pumps if it'll fit
- for nodename, properties in pairs(pipeworks.flowables.inputs.list) do
- register_abm_input(nodename, properties)
- end
-
- -- output water from spigots
- -- add both "on/off" spigots so one can be used to indicate a certain level of fluid.
- -- temp. disabled as the node names were moved to flowable_node_add_pipes.lua
- --[[
+-- old spigot ABM code, not yet migrated
+--[[
minetest.register_abm({
nodenames = { spigot_on, spigot_off },
interval = 1,
@@ -68,5 +46,4 @@ if pipeworks.enable_pipe_devices then
pipeworks.run_spigot_output(pos, node)
end
})
- ]]
-end
+]]