Create

Create

86M Downloads

Fluid piping causes fluid loss

Dr-WeiAL opened this issue ยท 5 comments

commented

Describe the Bug

Using a fluid pipe to introduce fluid into a Casting Basin or Casting Table in Tinkers' Construct will cause a portion of the fluid to be lost

Tested it, at least three Casting Basins are required for the problem to occur

The screenshot below shows the fluid being introduced into the Casting Basin and then back into the tank

Reproduction Steps

1.Use Fluid Pipes to Introduce Fluids into Casting Basin(at least three)
2.Fluid loss has occurred at this point

Expected Result

no fluid loss

Screenshots and Videos

image
image
image

Crash Report or Log

No response

Operating System

windows10

Mod Version

0.4.0f

Minecraft Version

1.18.1

Forge Version

39.1.2

Other Mods

TinkersConstruct

Additional Context

I tried using fluid pipes from other mods and none of them have this problem, so I'm pretty sure it's create's fluid pipes problem
At the same time I also tested the 1.16.5 version of create, it also has this problem

commented

This issue has been marked as stale because it has been inactive for 3 weeks. It will be closed if it remains inactive for another 3 weeks.

commented

I think the problem is not solved

commented

Can confirm this happening on 1.18.2 0.4.1 with only create present.
image
Fluids are hard to debug but i'll keep this documented.

Repro instructions:

  1. build above setup
  2. input 4 buckets in the tank to be distributed to the three basins.
  3. fluid will be lost
  4. more fluid is lost when pump direction is switched to reverse and then to refill the basins.
commented

I had this problem a long time ago when I used Create: Steam Powered and it also lost some steam, but I didn't notice it at the time

commented

This seems to be a problem with pumping into fluid lines with already filled containers. Here is a simplified setup, filling the top basin with 1000mb of water and the bottom (output basin) with 750mb of water, if you then put 1 bucket of water into the left basin (input basin) you lose exactly 6mb with a max speed pump. Filling the output basin with 500mb results in a loss of 12mb, and 250mb with loss of 18mb. This is consistent for all vanilla and Create fluids. This also does not seem to be dependant on distance nor direction of pipe. The issue also does not occur if the amount being filled is exactly what is missing, like if there is 750mb in the output basin and 250 in the input basin. It only occurs if there is more in the input than can fit in the output (this is pretty obvious but I figured I would mention it).

This is inconsistent dependant on flow speed as a different motor speed leads to a different amount of fluid loss. I tested 256 and 32 rpm which had the same result of 6mb (for a 750mb filled basin), but 29 rpm resulted in a loss of only 2mb.

I read into the code a bit. At max speed it seems that it transfers 64mb at a time, but filling a missing 250mb leaves the last transfer at 58mb (64*3 + 58 = 250), 6mb less than 64mb. Regardless it still removes this 64mb from the input even though not all of it can fit into the output. I cannot figure out why there is a difference in behavior between only a single output and multiple outputs though, I am not familiar with the code enough. I suspect its something to do with the iterators, but again, no clue.

These tests were done in the 0.5.0c and build from the latest source on github, the issue exists in both.

0 - construction overview