diff options
author | root <root@linuxworks.belug.de> | 2017-10-19 14:21:27 +0200 |
---|---|---|
committer | root <root@linuxworks.belug.de> | 2017-10-19 14:21:27 +0200 |
commit | 277154cf2daf870044c6f5bac90f338552fb75df (patch) | |
tree | 9cc6bb59a684df55155d69fc1b1ec2c8c181e22c /todo | |
parent | 848741a294363431a2a6e9c32ddf693951951fec (diff) | |
parent | 9df0ec7edb55ba443acc68df9ed63fdd53c66bfa (diff) |
Merge branch 'master' of https://github.com/minetest-mods/pipeworks
Diffstat (limited to 'todo')
-rw-r--r-- | todo/pressure_logic.txt (renamed from todo/new_flow_logic.txt) | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/todo/new_flow_logic.txt b/todo/pressure_logic.txt index b6787e9..41ce2f8 100644 --- a/todo/new_flow_logic.txt +++ b/todo/pressure_logic.txt @@ -1,7 +1,9 @@ --- Directionality code -Currently, only "simple" flowable nodes exist, and they will always equalise pressure with all six neighbours. -A more sophisticated behaviour for this would be flowable node registration with some kind of custom callback, such that water can only flow into or out of these nodes in certain directions. -This would enable devices such as the airtight panels, sensor tubes and valves to have correct flow behaviour. +-- Directionality code (in progress) +The flowable node class for directional nodes now exists and is hooked up in the code for determining valid neighbours in the flowable node ABM routines. +Pumps have been converted to this as part of the testing. +However, currently only the "raw" registration for this is available, and the pump definition registers it's own callback routines. +Helpers need to be added to flowable_node_registry_install.lua to abstract away the expression of which nodes can flow which ways - valves, flow sensors, spigots and entry panels, for instance, all currently rotate the same way using an upwards facedir, so a helper for these nodes would prevent code duplication. + -- (may not be possible) stop removing water nodes that were not placed by outputs when off In non-finite mode, spigots and fountainheads will vanish water sources in their output positions, even if those output nodes did not place them there. @@ -20,3 +22,19 @@ VanessaE would like this to function as an output with the following properties: * While on, tries to randomly place a water source in an adjacent node every ABM interval, preferring to place it downwards first. * Even with multiple water source nodes placed, only drains 1 unit pressure per ABM interval in non-finite mode. Finite mode will cause it to drain 1 unit per water source node placed and simply stop placing sources when below threshold pressure, like spigots and fountainheads already do. * When turning off in non-finite mode, for all neighbour nodes, replace the water sources with flowing water as discussed above, but *only* if those neighbouring sources do not have any water source neighbours of their own in turn - this will prevent the block from creating a "hole" in a uniform pool of water sources. + + + +-- Support for other fluids in pipes (Feature request/wish list) +Various sources from IRC and github issues have indicated that the ability to carry amounts of substance other than water through pipes would see uses appear for it if it were implemented (there does not appear to be anything trying to do so right now). +Extending the pressure mechanism to handle new fluids would be simple enough, it would just have to deal with more variables. +However, this feature raises the question of how to handle mixtures of fluids in pipes. + +Two possible solutions appear evident: ++ Don't mix at all. For each flowable registered, either a variant would be created for each supported liquid, or each node would declare which fluid it carries explicitly. Flowable nodes for different fluids would not interact with each other at all. + ++ Equalise "pressure" of multiple fluid variables in a similar manner to how the single water pressure value is currently balanced out, however this raises the issue of how to deal with mixtures - for instance, how is a spigot to function with a mixed liquid? does it simply refuse to function if it doesn't know how to deal with a certain mixture (as it can only output whole nodes)? likewise for certain mixtures in pipes, should it be allowed for lava and water for instance to mix like they don't interact at all? + +This mechanism also hints at a weakness of the pressure logic mechanism as it currently stands - namely that liquids are handled like gases and assumed to be compressible. + + |