Create pipes continue to drain from drawer that's not actually connected
mcm opened this issue ยท 21 comments
Game Version, Launcher Version, Mod Version
MC 1.20.1
Forge 47.2.0
Fluid Drawers Legacy 4.1.4-hotfix
Problem Description
Sorry for reporting another so soon, thanks again for the quick fix on the last one! When setup as such:
Everything works as expected. However, after breaking the drawer trim like so:
The pipes will continue to pull from the fluid drawer, even though its no longer connected. That is, if i right click the drawer with a lava bucket, it shows 1B and then drains into the tank on the right, which goes up by 1 bucket.
I'm also having an issue where fluids are getting pumped into a drawer network but seem to be disappearing, still trying to figure out what's happening and how to recreate it though. Not sure if its related to this or not.
Thank you again for all of the work on this, you're amazing!
Just in case it's helpful in the future - Create lets you craft potions mechanically, and those fluids can get then get pumped around like water and lava. I'm using the drawers as part of a big factory that involves brewing potions, so that's why and how those are in there.
thank you. the file has been uploaded to curseforge yet
FluidDrawersLegacy-1.20.1-forge-4.1.6-beta.jar
This version is marked as release when uploaded and will be changed back to beta later.
Testing with 4.1.6 i still have issues where fluid is getting pumped into a controller and seems to be disappearing... it only happens when i have a drawer placed that's working and then move it, it seems... but once i pick up the drawer, the fluid keeps getting pumped into the controller and going nowhere.
There's also an issue where the fluid isn't getting pumped into the drawer even when its connected to the network. This seems like it might be dependent on how far the drawer is from the controller, though. It's close enough that controller slaves still see other drawers on the network. I do have the range turned up in the Storage Drawers config if that matters.
I see though that you're working on 4.1.7 so I'll test that once it's available.
Also I have no idea if this is related or not, so just mentioning it here in case it is... I have Jade installed, and when I look at the drawers I see the correct fluid (in this case, Awkward Potion and Potion of Strength) and correct quantity on each drawer, but when I look at the controller slave I see "Uncraftable Potion" and its the combined amount of the two potions.
In these two versions, I have done some refactoring work on the bottom layer to solve some stubborn problems.
Just tested 4.1.7 and it seems like everything I've had an issue with is working great, except the Jade popup... that still shows "Uncraftable Potion" when looking at the controller slave. Even the thing I forgot to mention - I wasn't able to pull specific fluids from the network using smart pipes - is working!
ok, the issue is solved. The reason is that I don't know some of Jade's custom settings, so I got stuck.
Awkward Potion and Potion of Strength....I'm not sure how you get that in there. .
thanks for your testing findings. and what you said is indeed a problem.
Let's discuss the first one. The mechanism of the Storage Drawer is to rebuild the drawer network every five seconds (5s, not exactly sure). The fluid drawer will also be connected to this network, and therefore can be used as an additional capability to allow the drawer controller or slave to output fluid. So if this only lasts a few seconds, it's normal.
If it takes too long, for example, it still works after one minute, then may need to re-examine this mechanism, because one possible situation is that the pump is constantly requesting every game moment, which will prevent the fluid drawer network from reconstruction.
I think I should probably delete my previous tirade, lol. After careful inspection of the code, I confirmed the problem. This is also a hidden vulnerability, although it may be harmless (relocating the Slave will solve the problem). The reason for the problem is that the current version of Slave still holds the drawer controller information, and I must also check whether the Slave is in the record of the drawer controller. Well, to be honest I wasn't expecting this design pattern.
I uploaded a beta version, you can see it on Curseforge.
File Link
Thanks again for the quick fix! I tested this real quick in a creative world and it seems to have fixed the disconnected drawer issue. I'll get on my server tonight and make sure its working there, and keep trying to recreate the issue I'm having with fluids disappearing
ohno, I found a big problem. I should have figured out why the fluid was disappearing, it looks like I'll have to pull back the latest release.
One of the Cyclic Mod and Create Mod uses the wrong fluid request method.
Cyclic keeps sending simulated actions, while Create sends simulated action first and then excuted action. Considering that the download volume of Cyclic is not low, I feel that this problem is a bit of a headache.
I thought maybe I should call the developers of Create.
I set FluidAction (divided into EXECUTE, SIMULATE) to directly return a null value in the case of EXECUTE. As a result, guess what, the pump can still pump out liquid.
Then I went to study the source code and found that the code written by Code is very magical.
When extracting fluid, if there are multiple tanks, then if the first tank extracts fluid and the second tank extracts it as empty, it will be directly overwritten. Then enter the following if to determine if it is true, and draw it again directly, but the output is only the amount once.
After discussions with some modders, a fluid interface solution was finally redesigned to adapt to Create's code, which will abstract the tank concept (in the past, a fluid drawer network was established based on physical structures). Although there will be very little traffic loss in early tests, in the current version, even if it is induced according to the past plan, it still performs normally. Of course this still needs further verification.