summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devices.lua13
-rw-r--r--pipes.lua3
2 files changed, 13 insertions, 3 deletions
diff --git a/devices.lua b/devices.lua
index 670ed6c..8b1725b 100644
--- a/devices.lua
+++ b/devices.lua
@@ -164,6 +164,7 @@ for s in ipairs(states) do
-- FIXME - does this preserve metadata? need to look at this
on_rotate = screwdriver.rotate_simple
})
+ -- FIXME: currently a simple flow device, but needs directionality checking
new_flow_logic_register.simple(pumpname)
if states[s] ~= "off" then
new_flow_logic_register.intake_simple(pumpname, 2)
@@ -208,6 +209,12 @@ for s in ipairs(states) do
end,
on_rotate = pipeworks.fix_after_rotation
})
+ -- only register flow logic for the "on" ABM.
+ -- this means that the off state automatically blocks flow by not participating in the balancing operation.
+ if states[s] ~= "off" then
+ -- FIXME: this still a simple device, directionality not honoured
+ new_flow_logic_register.simple(nodename_valve_empty)
+ end
end
local nodename_valve_loaded = "pipeworks:valve_on_loaded"
@@ -249,6 +256,12 @@ minetest.register_node(nodename_valve_loaded, {
end,
on_rotate = pipeworks.fix_after_rotation
})
+-- register this the same as the on-but-empty variant, so existing nodes of this type work also.
+-- note that as new_flow_logic code does not distinguish empty/full in node states,
+-- right-clicking a "loaded" valve (becoming an off valve) then turning it on again will yield a on-but-empty valve,
+-- but the flow logic will still function.
+-- thus under new_flow_logic this serves as a kind of migration.
+new_flow_logic_register.simple(nodename_valve_loaded)
-- grating
diff --git a/pipes.lua b/pipes.lua
index d907160..751d460 100644
--- a/pipes.lua
+++ b/pipes.lua
@@ -200,8 +200,6 @@ table.insert(pipes_empty_nodenames, valve_on)
table.insert(pipes_empty_nodenames, valve_off)
table.insert(pipes_empty_nodenames, entry_panel_empty)
table.insert(pipes_empty_nodenames, flow_sensor_empty)
-new_flow_logic_register.simple(valve_on)
--- don't register valve_off, automatically makes it block flow in the new logic
new_flow_logic_register.simple(entry_panel_empty)
new_flow_logic_register.simple(flow_sensor_empty)
@@ -211,7 +209,6 @@ local flow_sensor_loaded = "pipeworks:flow_sensor_loaded"
table.insert(pipes_full_nodenames, valve_on_loaded)
table.insert(pipes_full_nodenames, entry_panel_loaded)
table.insert(pipes_full_nodenames, flow_sensor_loaded)
-new_flow_logic_register.simple(valve_on_loaded)
new_flow_logic_register.simple(entry_panel_loaded)
new_flow_logic_register.simple(flow_sensor_loaded)