Refined Storage

Refined Storage

77M Downloads

Feature request: Separate insert/extract priorities on storage devices / interfaces.

DarkHelmet433 opened this issue ยท 13 comments

commented

Feature request: separate insert/extract priorities

When I'm in the middle of base expansion and re-configuring storage networks (eg: adding/removing quantum storage devices, yabba barrels, storage drawers or whatever I usually end up with items spread over multiple locations.

eg: Suppose I add a quantum storage unit for sand at priority 50 while there's still stand in storage drives at priority 0.

If I add more sand it'll go to the quantum storage unit. If I use some, it'll come out of the quantum storage first and leave the leftover items on the drives effectively forever.

What I would like to be able to do is be able to specify that new items would be stored in external storage first, but used after other sources, like the drives. Over time the drive contents will migrate to the desired location.

This would also solve the other transient problems I encounter where items are stored in an incorrect lower priority location and require manual intervention to clear. Separate storage insert/extract priorities would resolve this over time as well. (Side note: I can't reproduce this transient problem)

I am aware that I can solve this in an expensive fashion by attaching two external storage interfaces to each device with different priorities, with one in insert-only mode and the other in extract-only mode. This has proven error prone and rather frustrating to manage in the past.

It would be a lot more convenient to be able to change the priority of other devices instead, or as well, eg: disk drive array. However, storage cells and disk drives can't have multiple attachments to have separate priorities that I'm aware of. My feature request is an across-the-board ability to have separate insert/extract priority for all storage interfaces.

If UI clutter is an issue, perhaps add an upgrade card slot to enable the feature?

commented
commented

I would say that inverted priorities for insert and extract would make sense.

commented

Something like that would solve my problem too. Perhaps this could fit as a control button next to the "Access Type" mode on the left of the gui?

Would it make sense to put this mode select on the controller? The controller already has a Redstone Mode button and plenty of room. I suspect it'd be less room for disasters if this was a global controller-wide setting.

Perhaps:
"Storage priority" -> "Insert highest/Extract highest" or "Insert highest/Extract lowest"

commented

No configuration options for that type of stuff. not sure if i like the inverted priorities either, i feel like the current system is more intuitive.

commented

It does make more sense to able to empty, lower priority first. As you don't want items there anyways.

commented

That's my feeling. In my mind, priority on storage is how much you want things to be in that location. The current system isn't self correcting when things go wrong. I find items frequently ending up in the wrong (lower) priority location and the current system encourages them to stay there. Having to go and constantly tidy up transient problems is irritating and feels like a bug.

Having extract priority the other way around tends to resolve this through natural use. Having to put two external storage connectors on every single storage device to achieve this isn't exactly intuitive either.

In my mind, adding a priority 50 dedicated storage for wool means I don't want wool stored elsewhere. RS should take wool out of the less preferred storage as they're naturally used.

commented

A quick glance at the code suggests to me that it's not as simple to implement as I assumed.

itemStorage.getStorages().sort(STORAGE_COMPARATOR);

etc. What I was asking for would presumably require something like consuming items from the list in reverse. Are you sure an extract mode button on the controller gui (next to the redstone mode) is out of the question?

commented

Are you sure an extract mode button on the controller gui (next to the redstone mode) is out of the question?

Yes

The sort call needs to change anyway so it only sorts when storage changes, not constantly.

commented

I'm not changing this, I like the current behavior more.

commented

It's a pity indeed. Having to resort to putting two external storage interfaces on every single device can't be good for performance, but if that's the only way to fix the bug then so be it.

RS is just too unreliable without this. Items that are meant to be in higher priority storage systems keep ending up in lower priority devices like disks and there's no way to self heal this. Either separate insert/extract priorities or the ability to invert the extract priority would make this a non issue.

commented

Huh, I might have figured out a workaround. Instead of attaching my disk drives to the RS network, I've attached two External Storage interfaces to the drives. One interface is set to Extract Only, with priority +200. The other interface on the same drive is set to Insert Only with priority -200. This appears to give me the behavior I want without having to add a second set of interfaces to about 150 quantum storage units.

To be clear, the behavior I wanted was: Extracting an item always comes from drives first, quantum storage / drawers / etc second. Inserting always goes to quantum storage / drawers / etc first (with drives as a fallback). It never occurred to me that External Storage would work on drives with the drives otherwise being disconnected.

commented

Ugh, nope. It looks like it works but there's an invisible connection anyway and items still end up being stored in the lower priority drives at random anyway. So much for that. I can't think of a way of fixing the incorrect item storage without playing the player.dat overflow roulette.

commented

Sad, this would be great option to have imo. As it is now when I want to do this kind of thing I set my external storage to insert only and put an export bus into my input chest and wait until it stops exporting stuff. I can't use the stuff in my drawers while that is ongoing though which is pretty inconvenient. I didn't think about adding a second external storage, thanks for the tip @DarkHelmet433