forked from mtcontrib/pipeworks
pressure logic/flowable node registry: move pump directionality code to dedicated fixed vertical helper
This commit is contained in:
parent
7b141fb0ea
commit
7f7dfb79d5
|
@ -165,13 +165,7 @@ for s in ipairs(states) do
|
|||
})
|
||||
|
||||
-- FIXME: this currently assumes that pumps can only rotate around the fixed axis pointing Y+.
|
||||
-- TODO: these directionality functions should be behind a helper so the fountainhead can use something similar.
|
||||
local upwards = {x=0,y=1,z=0}
|
||||
local neighbourfn = function(node) return { upwards } end
|
||||
local directionfn = function(node, direction)
|
||||
return vector.equals(direction, upwards)
|
||||
end
|
||||
new_flow_logic_register.directional(pumpname, neighbourfn, directionfn)
|
||||
new_flow_logic_register.directional_vertical_fixed(pumpname, true)
|
||||
local pump_drive = 4
|
||||
if states[s] ~= "off" then
|
||||
new_flow_logic_register.intake_simple(pumpname, pump_drive)
|
||||
|
|
|
@ -52,6 +52,20 @@ register.directional = function(nodename, neighbourfn, directionfn)
|
|||
regwarning("directional", nodename)
|
||||
end
|
||||
|
||||
-- register a node as a directional flowable that can only flow through either the top or bottom side.
|
||||
-- used for fountainheads (bottom side) and pumps (top side).
|
||||
-- this is in world terms, not facedir relative!
|
||||
register.directional_vertical_fixed = function(nodename, topside)
|
||||
local y
|
||||
if topside then y = 1 else y = -1 end
|
||||
local side = { x=0, y=y, z=0 }
|
||||
local neighbourfn = function(node) return { side } end
|
||||
local directionfn = function(node, direction)
|
||||
return vector.equals(direction, side)
|
||||
end
|
||||
register.directional(nodename, neighbourfn, directionfn)
|
||||
end
|
||||
|
||||
|
||||
|
||||
local checkbase = function(nodename)
|
||||
|
|
Loading…
Reference in New Issue
Block a user