Add mods: technic, moreores, paintings, Nyancat (Pbj_pup). Small fix: sandwiches
This commit is contained in:
parent
15e8e696a2
commit
fb09deddc1
1404 changed files with 156555 additions and 211 deletions
53
mods/pipeworks/pressure_logic/flowable_node_registry.lua
Normal file
53
mods/pipeworks/pressure_logic/flowable_node_registry.lua
Normal file
|
@ -0,0 +1,53 @@
|
|||
-- registry of flowable node behaviours in new flow logic
|
||||
-- written 2017 by thetaepsilon
|
||||
|
||||
-- the actual registration functions which edit these tables can be found in flowable_node_registry_install.lua
|
||||
-- this is because the ABM code needs to inspect these tables,
|
||||
-- but the registration code needs to reference said ABM code.
|
||||
-- so those functions were split out to resolve a circular dependency.
|
||||
|
||||
|
||||
|
||||
pipeworks.flowables = {}
|
||||
pipeworks.flowables.list = {}
|
||||
pipeworks.flowables.list.all = {}
|
||||
-- pipeworks.flowables.list.nodenames = {}
|
||||
|
||||
-- simple flowables - balance pressure in any direction
|
||||
pipeworks.flowables.list.simple = {}
|
||||
pipeworks.flowables.list.simple_nodenames = {}
|
||||
|
||||
-- directional flowables - can only flow on certain sides
|
||||
-- format per entry is a table with the following fields:
|
||||
-- neighbourfn: function(node),
|
||||
-- called to determine which nodes to consider as neighbours.
|
||||
-- can be used to e.g. inspect the node's param values for facedir etc.
|
||||
-- returns: array of vector offsets to look for possible neighbours in
|
||||
-- directionfn: function(node, vector):
|
||||
-- can this node flow in this direction?
|
||||
-- called in the context of another node to check the matching entry returned by neighbourfn.
|
||||
-- for every offset vector returned by neighbourfn,
|
||||
-- the node at that absolute position is checked.
|
||||
-- if that node is also a directional flowable,
|
||||
-- then that node's vector is passed to that node's directionfn
|
||||
-- (inverted, so that directionfn sees a vector pointing out from it back to the origin node).
|
||||
-- if directionfn agrees that the neighbour node can currently flow in that direction,
|
||||
-- the neighbour is to participate in pressure balancing.
|
||||
pipeworks.flowables.list.directional = {}
|
||||
|
||||
-- simple intakes - try to absorb any adjacent water nodes
|
||||
pipeworks.flowables.inputs = {}
|
||||
pipeworks.flowables.inputs.list = {}
|
||||
pipeworks.flowables.inputs.nodenames = {}
|
||||
|
||||
-- outputs - takes pressure from pipes and update world to do something with it
|
||||
pipeworks.flowables.outputs = {}
|
||||
pipeworks.flowables.outputs.list = {}
|
||||
-- not currently any nodenames arraylist for this one as it's not currently needed.
|
||||
|
||||
-- nodes with registered node transitions
|
||||
-- nodes will be switched depending on pressure level
|
||||
pipeworks.flowables.transitions = {}
|
||||
pipeworks.flowables.transitions.list = {} -- master list
|
||||
pipeworks.flowables.transitions.simple = {} -- nodes that change based purely on pressure
|
||||
pipeworks.flowables.transitions.mesecons = {} -- table of mesecons rules to apply on transition
|
Loading…
Add table
Add a link
Reference in a new issue