Add Non Newtonian Fluid as 3rd Custom Fluid Type or procedures to create it

Status
Resolved
Issue description

Before someone goes closing this, PLEASE READ, especially the BOLD parts! i have tried to get this suggestion though many times and had it closed every single time.

Add a Non Newtonian Fluid as 3rd Custom Fluid Type or Create the necessary procedures to create it

I have tried to create quicksand like fluids with different sinking speeds by trying to change the tick speed and using the setincobweb function and it can't be done because the cobweb sinking speed is hard coded. I set the tick speed of a custom fluid and block to 1 and in another test set it to 1000000 with the set in cobweb for 1 tick function used with collision and the setincobweb for 1 tick function sinking speed remained the same in all tests. I also tried it using combinations of all the procedures currently in mcreator and also tried the slowness potion effect with no results.

what i found out from the creator of the quicksand mod on how he controlled sinking speed in his mod is that in his own words he said "It's a web physic + vertical velocity adjustment. In other words QS push entity with near same velocity as global MC's gravity have, for make slow effect of sinking."

if i am correct on what he said he used the setincobweb function and used some sort of function to change the vertical velocity to change sinking speed and created some kind of entity that would push the player down into the liquid non stop so they couldn't escape if they sank too deep.

Now Here is my feature request with details on how to create proper quicksand like fluids since it would be way too hard with procedures and a lot of the procedures needed don't exist yet

Add a Non Newtonian / Quicksand like Fluid as 3rd Custom Fluid Type

here are the features it should have

use a function to determine and get the vertical velocity adjustment from liquid density and viscosity - through these two, a built in mathematical function should be created to determine the vertical velocity adjustment that gets slower with higher density and viscosity values, here is my idea for the function - (density / viscosity = vertical velocity adjustment)

a checkbox to set if the liquid can be escaped from - if the player, entity sinks too deep, they get stuck and a QS push entity pushes them under the QS.

a input for a under liquid animated overlay texture - this would come up on the entire screen blocking sight under the liquid when any entity was completely submerged in the custom fluid

a checkbox to set if the fluid acts like a solid until disturbed / jumped on - this would make the custom fluid use built in functions to mimic proper block collision on the surface so a player or entity could walk across the surface and if a entity or player jumped on it, it would cause the area's around them to bob up and down by 1/16th or 1/8th of a block depending upon thickness of the fluid and how much it has been jumped on disturbing it.

Depending upon the density and viscosity of the fluid, they may only have to walk on the surface of it a bit or jump on it only once before they started sinking or they would have to really jump around on it to trigger the procedure that would change it to liquid and they started sinking. Here is a video showing how this works in real lifehttps://www.youtube.com/watch?v=omBFjFGwRhs
 

a option to increase or decrease the sinking chance for the fluid acts solid until disturbed - overrides defaults determined by the viscosity and density and increases or decreases the chances of a entity sinking if the fluid is disturbed by walking or jumping on it. this would work good if you want to create a fluid that was like clay in a quarry that dried about a foot or so on the surface and was liquid underneath. 

a option to enter a viscosity adjustment for the fluid - this would use a exponential function that would start out with the minimum value (the default viscosity value of the fluid) that would adjust the vertical velocity by increasing the value of the viscosity and VV until it reached the maximum VV increment as the entity or player struggled against the fluid which would make them only sink faster since quicksand becomes thinner if you struggle and stir it up. used to simulate real life quicksand where you sink deeper and faster the more your struggle and disturb it.

Here is a chart that shows how non Newtonian fluids behave when hit hard by something or stepped on quickly by thickening and when stirred up enough to cause sinking if stepped on without moving. Here is also another video showing how you can walk on oobleck if you move fast enough due to shear thickening from putting stress on it and sink if you don't because it is a perfect dilatant non Newtonian fluid - https://www.youtube.com/watch?v=RIUEZ3AhrVE

chart

a texture input for a player skin mud overlay texture - somehow the quicksand mod pulled this off and had a mud texture show up on the players skin if they sank in quicksand. it would be cleaned off if they entered water in the QS mod.

i may suggest more things with this in replies depending upon what happens.

Issue comments

This is a very nice and in-depth explanation of the feature request.

Unfortunately, we, developers of MCreator develop MCreator in free time and this feature is out of scope we can afford to work on.

We use default options of the Fluid system in the Forge and can't really extend much upon this. The fluid system is problematic even for Forge developers (for example fluid system was the last thing to be ported in 1.14.4 and is not complete yet).

Thank you for your understanding!