Tfarcenim / DankStorageFabric

Creative Commons Zero v1.0 Universal
11 stars 9 forks source link

Dank Dock + Ezpass pipes not filling dank properly #7

Closed Diamond-anvil closed 2 years ago

Diamond-anvil commented 3 years ago

Playing All of Fabric 3 v2.0.5 when using the dank dock + dank as bulk storage on a mob farm. The dank is filled based on stack sizes of 64 not the dank's slot storage capacity. As items come into the dock they are distributed to the next available slot in the dank until the stack size reaches 64 at which point the next item is placed in the next available empty dank slot. To mitigate this issue I have to resort the dank to distribute the items into there proper dank slots. When all empty/available slots are filled to stack size 64 the dock stops accepting items.

Tfarcenim commented 3 years ago

Does it work with hoppers?

Diamond-anvil commented 3 years ago

No, I get the same result when feeding the dock via hoppers. The first slot in the dank fills to 64 items then moves on to the next available slot.

Tfarcenim commented 3 years ago

Hmm, can I see the debug/latest.log? I suspect an interfering mixin.

Diamond-anvil commented 3 years ago

Hot off the presses.

latest.log debug.log

Tfarcenim commented 3 years ago

Damn still can't see anything, no way to debug this without removing mods.

minedak commented 3 years ago

Wanted to make a similar issue, but Diamond-anvil beat me to it. Maybe the findings of some minor experimentations might be useful to add, though.

I've started a relatively clean (modwise) new world with only a single hopper pointing into a dock with a dank3 in it, and loads of mc:stone in the hopper. As long as I add some light-weight mods, things keep working as they should. Once I add either of the following mods, dank slots will only be filled to 64 (after which a new slot is used for the next 64, and so on):

I've tried all three of them separately, and made sure that after disabling them normal functionality was restored (didn't disable dependencies like patchouli and kotlin, but they didn't seem to affect dank-filling to beyond 64). So it doesn't appear to be a single mod breaking things, but maybe some library shared by all of the above mods?

Tfarcenim commented 3 years ago

Interesting, so one of those mods or their dependents does something to the hopper as well. It would be wise to link them this issue.

flier268 commented 3 years ago

Because this mod use officialMojangMappings but yarn?

Tfarcenim commented 3 years ago

nope, mappings have nothing to do with what names were used with it.

flier268 commented 3 years ago

Some lib override the class, like this mode This is Astromine's lib

flier268 commented 3 years ago

not support AE2

MissPotato commented 3 years ago

Sorting the dank dock works fine, maybe as a band-aid fix add an invisible slot that when filled auto-sorts the dank? It obviously doesn't fix the issue, but it makes the Dock insertions usable.

Gerdathlete commented 3 years ago

This is an issue with the Fabric Dank Storage mod, not the pipes/input method

I'm having this issue regardless of what mod inserts items into the docked Dank. AE has the issue, Modern industrialization pipes have the issue, minecraft hoppers have the issue, and more. For some reason the inventory is treated like a normal chest so items only stack to 64 when inputted via pipes/hoppers, and the dank will no longer accept items once all of its slots contain 64 items. Additionally, when sorting the dank, the stacks do not combine, so it does not provide a temporary solution.

Tfarcenim commented 3 years ago

No, this is what happens when there's no item api in Fabric like there is in Forge which is an issue with Fabric itself. Mainline Dank Storage doesn't have this issue for that reason.

For the record, hoppers do work when installed with only vanilla because they're patched to do so. But other mods patch the hopper again which breaks it.

AlexIIL commented 3 years ago

It looks like this is a LibBlockAttributes interaction issue: (https://github.com/AlexIIL/LibBlockAttributes/issues/39).

Essentially the 64 stack limit comes from ItemStack.getMaxCount(), and not LBA itself, however LBA currently uses that limit when inserting items into inventories. (Although for the vanilla hopper case that should be easier to fix: LBA just needs to know to not use LBA's insertion methods for Dank's blocks - I'm not sure exactly how to find this out though).

That wouldn't help for LBA-dependant blocks though, since they will adhere to the maximum stack count anyway. A quick fix would be to expose an LBA FixedItemInv with a custom insertStack method, either as an only-loaded-if-lba-is-present class, or just hard dep LBA (which I assume you'd rather not do).

AlexIIL commented 3 years ago

All mods that use LBA (plus hoppers) should be fixed if you (manually) update LibBlockAttributes to 0.8.5. That will fix AE2, Modern Industrialization, Astromine, and Industrial Revolution. I'm not sure about ezpass though.

Tfarcenim commented 2 years ago

3.3 uses the new item api