refinedmods / refinedstorage

An elegant solution to your hoarding problem.
https://refinedmods.com/refined-storage
MIT License
362 stars 177 forks source link

Fluid external storage filter doesn't work #2310

Closed thepsychochicken closed 4 years ago

thepsychochicken commented 5 years ago

Issue description: Whenever fluids are in external storage, the filter doesn't work in exporters/fluidinterfaces.

What happens: The first external storage set to fluid will be used instead of filter, so if water comes up before lava, it doesn't matter whether the filter in the exporter is set to lava, it will only export water

What you expected to happen: The filter working

Steps to reproduce:

Setup system not using fluid storage blocks/disks, but with different fluid types along any axis

Version (make sure you are on the latest version before reporting):

Does this issue occur on a server? [yes/no] yes, and in client

If a (crash)log is relevant for this issue, link it here: none

image image

Darkere commented 5 years ago

Can't get this to happen what am I missing? image

thepsychochicken commented 5 years ago

You're missing that water is also connected with external storage

thepsychochicken commented 5 years ago

I later figured out that the filtered item has to exist in the system, and that it prefers to use external storage fluids over cell storage, but doesn't care that it's not the filtered item that it outputs (With external storage)

Darkere commented 5 years ago

Outputs water just like normal as you would expect for me. Regardless of whether it is in disk storage or connected with external storage.

Can you post a minimal setup? Cannot seem to reproduce that in any way I try.

thepsychochicken commented 5 years ago

image Exporter set to water

Sakata-MC commented 4 years ago

I'm having a similar issue with RS 1.6.15 and forge 14.23.5.2844 My setup is set up for autocrafting buckets for recipes plus being able to move liquids around when needed. image image image I get milk from water. If I remove the milk from system, I get lava from clicking on water. So its not just export buses... something seems to be b0rked with internal mapping of liquids. I can say that so far my testing seems to indicate the issue is with water. I'm limited in time as I'm working too, but fiddled with stuff while I was eating lunch. [update while fiddling some more] I changed the priority of water external storage to +10. Now, no matter what I try to pull from grid... I get water. So maybe not water-related, but priority?

image Set oil to priority +30 image I don't think I wanna drink that water 🤢 image Lava does the same now. So... priority-based issue. Seems to treat all liquids as whatever is the highest priority. Kinda explains why I was having such a hell of a time getting a ticon smeltery automated now. I'm not crazy or setting things wrong... I'd thought I wasn't grasping something and gave up.

Sakata-MC commented 4 years ago

If all fluids are the same priority, it seems that it picks a source in some order, but I can't figure it out. If I set all to same, then try to pull water, I get lava, lava I get... lava, oil I get water, everything else I seem to get milk. Also the filter... just doesn't work at all. :( if I import more 'any liquid' it goes and starts filling up the empty tanks that have specific filters for diesel and gas. I'm using external storages for this part of the system.

Darkere commented 4 years ago

My conclusion to this one was that some other mod is messing with liquids. I had attempted the exact setup he demonstrated just beforehand without running into any issues.

Same with your issues the filtering and priority functions work just fine and as expected in the tests I just did.

Sakata-MC commented 4 years ago

Since it seems to be interfering with internal stuff to RS, could it be the Reborn Storage mod? I think that is the only mod that I have that is interfacing with RS that might be messing with its internal logic.

Darkere commented 4 years ago

Reborn storage doesn't interact with fluids at all. The mod that causes this is most likely not related to RS in any way.

Sakata-MC commented 4 years ago

I'm not asking to be a PITA or to be combative, but to see if there is some logical way to determine what the root cause is, and get it resolved. So please excuse me if I ask things; the only cure for ignorance is to ask. I may be misunderstanding how java/forge works, and the interdependence of mods, but if the other mods aren't hooking into RS, how would they cause a change to RS's internal storage system? If you put "oil" in the interface, that might be fluid registry of forge, but it does display and update correctly. The Priority setting, which is internal to RS, seems to be the culprit from the testing I've done, and I don't know what reason another mod would have to poke around at RS code unless it works with RS's internals, such as reborn core. Would it be how fluids are registered? If so, shouldn't other mods also be affected, like ID, xnet, EIO or AE2? Mod load order? Maybe something is registered, RS loads, and then some mod mucks with liquids? Don't think that'd be it because RS would then store/display/return the incorrect liquids, which doesn't seem to be the case, so long as you only use one liquid with the system.

Maybe a thought, but could EIO conduit be stripping data? I do use those a lot. Thinking of ways to test for different scenarios so i can poke the right bear.

Darkere commented 4 years ago

The priority and filter situation indicates to me that RS is unable to differentiate between 2 different fluids. I'm not familiar enough with how fluids are stored in 1.12 to guess at what might be going wrong and whether or not other mods would be affected.

However Reborn storage hasn't seen any major code changes since last year and I also had that mod in my testing.

I doubt its related to enderIO conduits as the test case demonstrated by thepsychochicken doesn't use those. The classic way to determine the mod at fault would be to create backups and start removing mods until the problem goes away.

Sakata-MC commented 4 years ago

So interesting find... seems that somehow, eio conduits were doing it in my instance. I went on a conduit murdering rampage after testing and testing some more. seems that something is going wrong when i use conduits instead of cables. Setup looks flippin atrocious with the cthulu-invoking pile of crap I had to make to get the conduits out and route cables, but I no longer have the wrong fluids being put anywhere. I'm not sure if the cables just have to be present anywhere, or just in parts of the network that go to fluids (I make no claims to know how routing is done in magic block mods). Last time I did anything remotely like reading networking code was with LP back in like 1.6.4. And even then I had to have a lot of crap explained, and I didn't write actual code, but pseudo-code that a really good coder Aartbluestoke made into java (and a lot of ASM)