forked from mtcontrib/pipeworks
		
	pressure logic/flowable node registry: move pump directionality code to dedicated fixed vertical helper
This commit is contained in:
		@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user