path: root/todo
diff options
authorthetaepsilon-gamedev <>2017-10-17 14:53:32 +0100
committerthetaepsilon-gamedev <>2017-10-17 14:53:32 +0100
commita7c171940e2a8ac5333095837a6ede80644453a6 (patch)
treedaa659e9b9098a238b98f88f24257a00971411a9 /todo
parentaacd5ec829e531c808881021d5fe36aeedcfc2fd (diff)
todo: add item for supporting other fluid types
Diffstat (limited to 'todo')
1 files changed, 16 insertions, 0 deletions
diff --git a/todo/new_flow_logic.txt b/todo/new_flow_logic.txt
index 20609ab..41f7498 100644
--- a/todo/new_flow_logic.txt
+++ b/todo/new_flow_logic.txt
@@ -20,3 +20,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.