jaquadro / StorageDrawers

A mod adding compartmental storage for Minecraft Forge
MIT License
195 stars 153 forks source link

Water/lava bucket drawers do not remain locked when emptied by controller/slave. #99

Open NolanSyKinsley opened 9 years ago

NolanSyKinsley commented 9 years ago

I am not sure this is storagedrawers as I am using refined relocation as well and they are sorting storage drawers, but this is the base mod so I am reporting it here.

When you lock a drawer with lava or water buckets and they are extracted through a slave/controller the drawer does not retain the label for them as it should. Extracting manually is fine.

jaquadro commented 9 years ago

Can't reproduce. Tested with 1x2 sorting drawer, controller, thermal dynamics itemduct, and chest. The labels are retained for water and lava buckets.

NolanSyKinsley commented 9 years ago

Ok, this is odd. I did some checking and it is happening when I have a blood magic balad of alchemy running and it pulls the buckets out of a wireless block extender from refined relocation. I can use a pipe on the wireless block extender to pull the buckets and the label stays, but when the ritual runs and pulls the buckets it removes the label for some reason.

This is the code for the ballad of alchemy if you want to see it: https://github.com/WayofTime/BloodMagic/blob/master/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java

jaquadro commented 9 years ago

Given the exact same RR extracting setup, is it ONLY the buckets that don't retain label?

The best candidate location of the bug is in the RR integration in the drawers, but I'm not familiar enough with all the RR pieces to put that setup together.

NolanSyKinsley commented 9 years ago

After a bit I found it is not limited to water/lava buckets, it is in fact whatever the alchemy ritual pulls from the controller/slave. Water/lava buckets were the only thing in my system that was running low that I noticed at the time.

I think this is not an issue with RR, and is in fact an issue with how the ballad of alchemy is extracting the itmes from the inventory.

jaquadro commented 9 years ago

External consumers like the ballad of alchemy should have no control over the behavior of the label. It's the RR integration code, which is part of Storage Drawers, that does the special handling of big inventories and is probably not respecting the lock.

A screenshot of your setup would be useful.

NolanSyKinsley commented 9 years ago

Confirmed, RR has nothing to do with this issue. I went into single player creative and set up a ballad of alchemy and a simple storage drawers setup with just some 2x2 drawers, a controller, some trim and a slave. When the ballad of alchemy draws items directly from the slave, it will remove the labels from locked drawers.

This is the setup:

jaquadro commented 9 years ago

Looks like your image didn't come through

NolanSyKinsley commented 9 years ago

Sorry, had to figure out I needed an ! for markdown. In the image I had redstone to the left of the glowstone and locked the drawers, but left a limited redstone supply. When crafting the simple catalyst when it ran out of redstone it removed the label.

jaquadro commented 9 years ago

Okay, I got the thing assembled. I don't know how to make it craft, but I at least got it to draw items from storage -- enough for testing!

It's not clearing the labels for me (your top center drawer is also unlocked, if that matters). It's doing something much worse though: it's duplicating any item that it tries to draw from an empty locked slot. The items will be pulled from thin air as quickly as I can grab them out of the chemistry set.

I tried setting up a JABBA barrel in the second input block space locked to another item, and was able to dupe with that as well. This suggests it's a bug in Blood Magic, where it doesn't know how to deal with "deep storage" systems like JABBA or Storage Drawers. Specifically, it might be confused by an item with a zero-size stack getting returned from these slots.

NolanSyKinsley commented 9 years ago

oh, you place what you want crafted in the altar, and the output goes to the chest on the opposite side of the alchemical chemistry set, you can put a slave there if you want it to output to the drawers, but I just placed a chest there for testing. I used simple catalyst as the test crafting item for simplicity.

The top center drawer was unlocked because when I was in creative and took a screenshot it broke that drawer so I replaced it quickly for the above screenshot.

I had linked it first with a wireless block extender in the above setup, then replaced it wiht a regular connection. I will tear it down and rebuild it from scratch to make sure.

NolanSyKinsley commented 9 years ago

Oh dear, I appeared to have spoken too early. Starting from scratch and never linking it with a wireless block extender I cannot reproduce the symptom, it is indeed the wireless block extender doing it, and you are correct, it is gaining an item when it removes the label as if it were an actual item.

jaquadro commented 9 years ago

Then it's probably in the integration code (though RR is another mod I haven't learned how to use).

But there's two distinct issues at hand. Blood Magic might give you one free item when the label is cleared, but if you do the same setup without RR, you'll get unlimited free items without even needing to reset anything.

jaquadro commented 9 years ago

Ah, hm, okay. This may be an RR issue after all, or at least I may need some advise from @Dynious. When the drawer is properly upgraded as a sorting drawer, everything behaves correctly through the wireless link. The label is kept in place.

What's not expected is that the linker will successfully activate on a non-sorting drawer, and link with the wireless extender. Then it will lose its locking label when drained. It looks like I can also link non-sorting chests too.

Dynious commented 9 years ago

Yes, the Block Extenders are not part of the Sorting system, but a different aspect of the mod. Everything can be linked. The only thing Block Extenders do is relay the extract/insert fluid/item/energy calls to the linked block. The thing draining from the WBE will be the thing causing the Storage Drawer to lose its label. Try attaching it directly to the linked block and see what happens. If it doesn't behave the same, it can be RRs fault.

jaquadro commented 9 years ago

I went back and repeated the experiment several times and I couldn't get the label to clear under any configuration, which includes attaching drawers directly to the master rune. It cleared that one time through the wireless transmitter, but I can't reproduce it again.

@NolanSyKinsley perhaps you can provide a configuration that reliably demonstrates this through repeated attempts?