Crafter can't detect finished recipes in external storage
ThatBlockyPenguin opened this issue ยท 10 comments
Issue description:
See title.
What happens:
When a crafter completes a "processing" recipe and the machine it was processed in outputs into "external storage" the system can't see the resultant item unless cancelled in the crafting monitor.
What you expected to happen:
The processing would complete as normal
Steps to reproduce:
- Set up a crafter to autocraft into a machine (in my case into a thermal redstone furnace)
- Have the machine export into some RS external storage (in my case a vanilla barrel)
- See the error
Version (make sure you are on the latest version before reporting):
- Minecraft: 1.16.5
- Forge: 36.0.45
- Refined Storage: 1.9.12
Does this issue occur on a server?
Yes
Extra info:
I'm using the Direwolf20 1.16 modpack
I think I remember why this doesn't work. How do we differentiate between items that were inserted into the grid and go into the external storage from there and items that directly go into the external storage.
Im having the same issue, except my output goes directly back into Refined Storage with an importer and it still isnt marking the recipe as complete leaving it sitting in the crafting monitor until i cancel it.
from the way the system is described it looks like the item is passed into the barrel the RS see as storage without going into the RS network either via another pipe network or the machine directly exporting into the barrel if it is then that is why the item needs to pass into either an importer or interface so the system knows it's the one that is crafted. if they tried to make it so you could pipe directly into storage you could end up with a crafting lock. If RS was set up to detect storage imagine you have 64 glass but need 128 so you tell RS to craft another 64 it seeds the sand to smelt but since it has 64 glass in storage it will class the craft as complete even thou the sand is still in smelter
RS already keeps track of all items in an external storage, and only adjust that when the number of stored items change. We just have to send this change to the autocrafting system.
The bigger issue is that the autocrafting system very inefficiently checks if the items are actually needed. Things like storage drawers that are connected to the system would cause even more lag with big autocrafting requests.
Intentional. Checking every item in external storages would be performance have and also have a good chance of breaking autocrafting.
The major issue is that we cannot be certain if the item is extractable, which would cause the craft to finish but make the follow up craft get stuck.
That said. It should be a rather uncommon?
I thought the external storage caches already notify autocrafting if an item got inserted.
To my knowledge that was never a thing. It currently does not. Not that it would be difficult to do.
Might be necessary to change the way autocrafting tracks the items it needs as the current way is not that great. I know I wrote a better version at some point... but I guess I never made it a PR.
The major issue is that we cannot be certain if the item is extractable, which would cause the craft to finish but make the follow up craft get stuck.
That said. It should be a rather uncommon?
Not that I know how RS works when it comes to this, but if I remember correctly, there's a method to check if a slot is extractable from. Could this help?