move pipe node registration for new flow logic closer to their definition in pipes.lua

This commit is contained in:
thetaepsilon-gamedev 2017-10-01 16:54:24 +01:00
parent f3cd1b61d7
commit 0fb0eab723
3 changed files with 37 additions and 12 deletions

View File

@ -24,8 +24,8 @@ end
local regwarning = function(kind, nodename) local regwarning = function(kind, nodename)
local tail = "" local tail = ""
if pipeworks.enable_new_flow_logic then tail = " but new_flow_logic not enabled" end if not pipeworks.enable_new_flow_logic then tail = " but new_flow_logic not enabled" end
pipeworks.logger("[pipeworks] "..kind.." flow logic registry requested for "..nodename..tail) pipeworks.logger(kind.." flow logic registry requested for "..nodename..tail)
end end
-- Register a node as a simple flowable. -- Register a node as a simple flowable.

View File

@ -30,12 +30,14 @@ local spigot_off = "pipeworks:spigot"
local spigot_on = "pipeworks:spigot_pouring" local spigot_on = "pipeworks:spigot_pouring"
if pipeworks.enable_pipes then if pipeworks.enable_pipes then
--[[
for _, pipe in ipairs(pipes_full_nodenames) do for _, pipe in ipairs(pipes_full_nodenames) do
register.simple(pipe) register.simple(pipe)
end end
for _, pipe in ipairs(pipes_empty_nodenames) do for _, pipe in ipairs(pipes_empty_nodenames) do
register.simple(pipe) register.simple(pipe)
end end
]]
if pipeworks.enable_pipe_devices then if pipeworks.enable_pipe_devices then
register.simple(pump_off) register.simple(pump_off)

View File

@ -5,6 +5,8 @@ local REGISTER_COMPATIBILITY = true
local pipes_empty_nodenames = {} local pipes_empty_nodenames = {}
local pipes_full_nodenames = {} local pipes_full_nodenames = {}
local new_flow_logic_register = pipeworks.flowables.register
local vti = {4, 3, 2, 1, 6, 5} local vti = {4, 3, 2, 1, 6, 5}
local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}} local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}}
for index, connects in ipairs(cconnects) do for index, connects in ipairs(cconnects) do
@ -116,8 +118,12 @@ for index, connects in ipairs(cconnects) do
on_rotate = false on_rotate = false
}) })
table.insert(pipes_empty_nodenames, "pipeworks:pipe_"..index.."_empty") local emptypipe = "pipeworks:pipe_"..index.."_empty"
table.insert(pipes_full_nodenames, "pipeworks:pipe_"..index.."_loaded") local fullpipe = "pipeworks:pipe_"..index.."_loaded"
table.insert(pipes_empty_nodenames, emptypipe)
table.insert(pipes_full_nodenames, fullpipe)
new_flow_logic_register.simple(emptypipe)
new_flow_logic_register.simple(fullpipe)
end end
@ -182,14 +188,31 @@ if REGISTER_COMPATIBILITY then
}) })
end end
table.insert(pipes_empty_nodenames,"pipeworks:valve_on_empty") -- appropriate registration for both old and new flow logic follows
table.insert(pipes_empty_nodenames,"pipeworks:valve_off_empty")
table.insert(pipes_empty_nodenames,"pipeworks:entry_panel_empty")
table.insert(pipes_empty_nodenames,"pipeworks:flow_sensor_empty")
table.insert(pipes_full_nodenames,"pipeworks:valve_on_loaded") -- FIXME/TODO: these aren't really "simple", they have directionality.
table.insert(pipes_full_nodenames,"pipeworks:entry_panel_loaded") local valve_on = "pipeworks:valve_on_empty"
table.insert(pipes_full_nodenames,"pipeworks:flow_sensor_loaded") local valve_off = "pipeworks:valve_off_empty"
local entry_panel_empty = "pipeworks:entry_panel_empty"
local flow_sensor_empty = "pipeworks:flow_sensor_empty"
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)
local valve_on_loaded = "pipeworks:valve_on_loaded"
local entry_panel_loaded = "pipeworks:entry_panel_loaded"
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)
pipeworks.pipes_full_nodenames = pipes_full_nodenames pipeworks.pipes_full_nodenames = pipes_full_nodenames
pipeworks.pipes_empty_nodenames = pipes_empty_nodenames pipeworks.pipes_empty_nodenames = pipes_empty_nodenames
@ -198,7 +221,7 @@ pipeworks.pipes_empty_nodenames = pipes_empty_nodenames
if not pipeworks.enable_new_flow_logic then if not pipeworks.enable_new_flow_logic then
-- sorry, no indents... it messes with the patchlogs too much
minetest.register_abm({ minetest.register_abm({