Page 1 of 1

Add optional fluid filter to pumps

Posted: Wed Jun 17, 2020 2:41 am
by alercah
TL;DR
Add an option for pumps to filter to a specific fluid type.
What ?
When you click on a pump, the offers you a box to set a filter in the same way that a filter inserter works, except that instead of choosing an item you choose a fluid.

This has the effect of force-changing the filter on the pump's fluidbox to match the fluid in question, clearing any fluid currently in the pump. I also suggest that the pump GUI should get a button to flush the fluid system like pipes and tanks got, fundamentally because there is no benefit to forcing the player to click the next tile over to do a flush if they loaded the wrong fluid and need to set the filter, and also because in rare cases where there are no pipes or tanks in the network, the player should not be forced to change the filter and back in order to clear the pump.

I see no reason that the base game would need a temperature selector to set the temperature range on the filter, but some mods might want it. Perhaps it could be a disabled-by-default option on the Pump prototype so that mods can turn it on.

STRETCH GOALS: Pumps are currently usable for the functionality of the Flow Control non-return valve, except for reading to the circuit network. Make them replace the other functionality as well. To do this, add the following functionality to pumps:
  1. Ability to read the amount of fluid either a) pumped each teach or b) currently in the pump to the circuit network.
  2. Add a configurable minimum input percentage: if the input fluidbox is less full than this percentage, the pump does not operate. This could be set manually or read from the circuit network.
  3. Add a configurable maximum output percentage: if the output fluidbox is more full than this percentage, the pump does not operate. This could be set manually or read from the circuit network.
  4. Possibly allow reading input and output fluid percentages to the circuit network, though this feels relatively low-value to me.
  5. Allow setting the filter from the circuit network? Probably more trouble than it's worth.
Alternatively, add those settings to an "advanced pump" unlocked later in the tech tree.
Why ?
See my long post here: viewtopic.php?p=498914#p498914

In short, 0.18.32 broke multi-fluid train systems significantly, making them far more complicated but offering little gameplay value in return. There are strong reasons for the changes that were made with 0.18.32, but they have come at a high cost. This suggestion is a small change but has a lot of bang for its buck. In one go, it can not only fix multi-fluid setups but make them work better than they did pre-0.18.32. You would be able to make systems where the same pipes are used to pump different fluids in alternation, like real-life pipelines, and could well be a viable option for medium-distance fluid transfer.

It reminds me of the changes to splitters that were made discussed in FFF #225, in order to buff up belts. While fluids don't really need a buff in the way that belts did, this would be a significant usability improvement in the same vein, and I think might feel nice to make up for the anticipated fluid handling improvements in 1.0. It is in this vein that I suggested the STRETCH GOALS.

Re: Add optional fluid filter to pumps

Posted: Wed Jun 17, 2020 2:43 am
by alercah

Re: Add optional fluid filter to pumps

Posted: Wed Jun 17, 2020 5:17 am
by posila
Mixing fluids withing the same pipe system is still not supported and probably won't do what you want it to do once new pipe simulation comes. Point of doing the change to fluid mixing prevention was to make it so the game doesn't crash when pipe systems with different fluids somehow happen to connect, and to simplify the underlying code to something managable so that further changes to fluid system are possible to do.

Re: Add optional fluid filter to pumps

Posted: Wed Jun 17, 2020 5:58 am
by alercah
That might cut down some of this suggestion's use as a way to build new things, but this still remains as my suggestion to address the 0.18.32 regression with multi-fluid stations.

Also, if multi-fluid systems are not supposed to work with 0.18.32, I think more precautions should be taken against people trying to do that (like having a fluid system that gets multiple fluids in jam up in some way until manually flushing, even if the system can isolate them to different sections.) But that's just me, maybe. Or alternatively have a pump operate as a dividing line between fluid systems so that this could work.