
Crafting Modules not extracting crafted items
Yurdol opened this issue ยท 15 comments
Playing on FTB infinity evolved and have a whole bunch of machines and auto-crafting tables setup for auto-crafting. During complex crafting jobs (multiple steps often using the same machines) I've noticed that the crafting module in a chassis pipe will sometimes fail to extract the crafting output letting the whole process hang as it is blocking any other items from being processed.
It seems to be an issue when a new crafting job from a different crafting module in the chassis pipes inserts items before the previous job extracts it's output. This can happen in machines where the input item disappears from the input slot while it is being processed.
On other machines where there are multiple output slots and the new job is able to proceed without waiting for the previous job to finish i will see both items being extracted once the second job has been completed.
sadly, the crafting Cleanup is not yet finally Implemented from what i recall.
I know the issue, happened to me alot. there are defeneitly Ways arround it but i dont know wich they are again because its kind of a long time since i last played.
Yea.. I can think of ways around it but none of them are as nice and clean as simply having the crafting module directly attached to the machines. Pretty sure it has to do with the way crafting jobs are executed... maybe if i have time i can poke through the code and see if i can figure out where the issue might be.
Really shouldn't need to run a crafting cleanup after if my crafting recipes are setup correctly.
Indeed I have noticed this as well. I'm playing on FTB Infinity Evolved as well, and I've these issues as well. Crafting 20k Sandstone just completely clogs the system sometimes, the Crafting Table never finishes, and the job never completes.
@davboecki, got alot of times wherethis happened, especially with Crafting Modules MK3 stacked in a Chassi. Most likely to happen with IC2, EnderIO and TE machines when crafting different things in the same machine
It seems like the First task, when it SHOULD extract the extra Items that normaly get sortet back, It doesnt and the next module sticks its Items in for processing to Early
Happens alot to me when Automating Wires and Plates for IC2
Extras Always get handled last on a per pipe basis. So when there is still an order at work even if it is for another item. That's why those setups lock up and why I always said the Crafting module currently only works for ONE module inside a chassis pipe. And that's not taking care of recipes with more than one input.
Changing that is on the todo list but it is not done yet and it is also not the most easy task to do it in an efficient way. And handling more than one input on a machine is going to be even more difficult it will probably result in some sort of locking mechanism that one chassis pipe is only allowed to handle one recipe at a time so. So you can't chain them in one pipe.
@davboecki i could try give the Chassis a synchronisation, not just for Crafting Modules but for all modules. That gives alot of benefits but might get problematic with Quciksorts, who'd grab the mutex for ever and produce and lock the other modules up.
I have a single Crafting Pipe (not chasis) per Logistics Crafting Table and I have this issue.
@davboecki So any recipe with multiple outputs can lock up, so in order for it to work flawlessly currently i'd have to move any recipes of that type to it's own machine and an independent crafting module.
I can imagine adding a lock out mechanism isn't the easiest to implement... would it be slightly easier to add a check to see that all inputs are available in the system prior to sending them to the crafting machine? And really i mean having the actual materials ready, if they need to be crafted it can request they are crafted but it should wait until those products are in the system prior to requesting they be sent to the crafting machine at hand. It won't 100% solve all issues for mixing up recipes but it would certainly help out. Adding a second check to see if there is space for all the materials before sending to the machine should also improve the success rate.
@Yurdol Id rather check if the output slot is empty, if not register the Extras and THEN insert the Items! Especially with Mk3 Modules
@Bitterholz Except from what davboecki said it sounds like for whatever reason the order of operations for the pipe logic has extras being executed last.
Perhaps it's easier to change the order of operations? Although if that were the case i can't imagine why they would have it executing last.
Anyway whichever check works the best for the programmers i'm all for. For the time being i can probably work around the problem now that i understand roughly what it's doing behind the scenes.
@davboecki did you fix this ? fa06994
That's fixed by that commit, yes.
fa06994