mekanism / Mekanism-Feature-Requests

All enhancements and feature requests for Mekanism (for current and future releases) should go here.
11 stars 4 forks source link

Configurable Dynamic Valves #538

Open BICKELSBOSS opened 1 year ago

BICKELSBOSS commented 1 year ago

Describe the feature you'd like

Currently the Dynamic Tank multi-block lacks the ability of dumping out fluids/gasses at an infinite rate. Many multi-block structures have the ability to consume and produce fluids/gasses at infinite rates, but due to the severe bottleneck a Dynamic tank poses when used as a buffer, players are often forced to build ''port to port'', or build the machines that produce a required fluid/gas next to the machine they intend to run. A great example is the electric pump.

As mechanisms become bigger, the quantity of required fluid/gasses increases. Players might notice that certain closed loop systems run into problems when the process rate becomes too high. A common example is the Fission-Boiler-Turbine setup. The equilibrium will shift to one of the multiblocks, and cause other blocks to run dry or overflow.

In real life, problems like these are solved by introducing buffers. They act as a (safety)margin that allows both continuous and batch processes to run more smoothly, and avoid one machine from stopping another. Currently the pipes and tubes connecting the machines and multiblocks more or less already act like a buffer, but compared to endgame process rates, the amount stored inside pipes and tubes becomes negligible.

The Dynamic tank could act as a buffer if it was able to keep up with the push and pull rates of the connected structure(s).

Another argument for an infinite push rate is within the philosophy of the dynamic tank; Its ment as a late game storage system for gasses and fluids, similar to how the QIO is ment as a late game item storage system. The dynamic tanks can hold enormous amounts of substances, but their poor output speed makes them unsuited as an endgame storage system, because they fail to feed the amount of machines within a endgame player's base.

Currently the Valves are completely static: They are not configurable and will draw fluids/gasses from any pipe or tube next to them. They will only eject fluids if the attached pipe or tube is set to ''Pull''. This therefore limits the Pull rates to 32.000 mB for fluids, and 256.000 mB for gasses, per port, assuming Ultimate tier pipes or tubes are used.

My proposal are valves that are configurable similar to how other multiblocks with configurable ports are configured: Using the configurator.

The Valves will have four different settings: Input, Output, Input/Output and None Improved Valves The color coding is the same as the one used in the side config of single block machines.

This change will make the usage of Dynamic tanks for endgame substance storage and closed loop buffers possible.

Describe alternatives you've considered

Due to the hard limit of the Dynamic Tank output rate per valve, one can increase its output rate by using more valves. This means that the max output rate of the Dynamic tank becomes higher as it becomes bigger.

An example of where the Dynamic Tank could be used as a buffer is in a Fission-Boiler-Turbine setup.

If Mekanism's configuration is left on its default values, the Thermoelectric Boiler will not have enough water capacity to cool of the Superheated sodium a medium sized fission reactor provides. It does however, have more than enough boiling capacity to cool the Superheated sodium. So if one desires to run a medium sized Fission Reactor on a single, max size Thermoelectric boiler, they will have to start the Reactor at a fraction of its power, and then fill the boiler with more water. Then gradually increase the power of the reactor, and maintain a steady water level untill the desired burn rate is achieved.

All this water that has to be added over time doesnt actually dissapear, it will ''sit'' inside the Industrial turbine as steam. If one were to shut off the reactor, all this steam will return to water, and feed back into the boiler. Unfortunately however the boiler will not have enough capacity in its water tank to accept all this returning water. This additional water will then simply dissapear.

This means that every time you shut off your reactor, you lose lots of water. This can be avoided by forcing the turbines to feed into a Dynamic Tank instead, and make the Dynamic Tank feed into the boiler's water tank. Due to the Dynamic's tank unmatched capabilities of storing a fluid/gas, one will never have to worry about losing water on a shutdown again.

If one manages to insert the Tank's water into the boiler quicker than it can boil it up, one also gives themselves the abilty to ''coldstart'' their system at full power.

Fullblast This Fission Reactor can be started at 1435 burn rate without the possibility of the Thermoelectric Boiler running dry, due to the massive water buffer on top of it.

ineffect This particular Boiler holds 50 Million mB of water, and the dynamic tank holds 2 Billion mB of water, 40 times as much as the boiler. Regardless, the dynamic tank lost a third/700 Million mB of water which is now inside the Turbines as steam. This also shows how crucial this buffer is for this system.

This is merely an example of where the Dynamic tank can be incorporated and how the limited output rate can be circumvented using a lot of pipes/tubes set to pull. But to reach output rates usable in machines like these (or multiple smaller machines) one has to put a lot of effort into fitting most if not all sides with tubes, which also have to be set to pull, manually, one at a time. This also forces players to use bigger sized tanks if they need a higher output rate, eventhough they dont need the additional storage capacity. Another issue is that the vast amount of pipes/tubes heavily impact game performance.

Having configurable Valves with infinite push, pull and pushpull rates would be a huge quality of life change, for those who want to store large amounts of a substance or create excessively big endgame systems like the one above.

Additional context

Eventhough the post is about the Dynamic Tank multiblock, its smaller brother, the Fluid Tank suffers from the exact same issue as the Dynamic tank currently does. It could be considered to change the Fluid tank to function similar to the Chemical tank.