Automation Interface Doesn't Extract Output
NielsPilgaard opened this issue ยท 4 comments
Hey, one of my users just reported an issue with the Automation Interface; here it is:
Original issue: EnigmaticaModpacks/Enigmatica2Expert#336
Issue Description
I use the automation interface from extended crafting to automate the different crafting table. I have an issue for output the item from the table.
The output item goes to the good slot in the crafting table, but the interface never pull it back. But when I open the crafting table the craft item go directly to the interface like its supposed to do.
I make a lot of tests, but I can't find a way to automatically pull out item from the different crafting table to the interface.
Mod version
1.12.2-1.5.0
Same issue, inserts items into tables but doesnt extract them. Works fine on the Ender crafter though.
I looked into this and figured out the cause: when the automation interface finishes crafting a recipe in the table below it, it calls: table.setResult(*find new recipe for items in the table now*);
which ends up being: table.setResult(ItemStack.EMPTY);
That leaves the crafting table with no result.
Then, when the automation interface gets new items it puts them into the attached table using: matrix.setInventorySlotContents(slot, stack);
and in each of the crafting tables they react by calling: this.matrix.set(slot, stack);
this.matrix
is a list of ItemStack and just sets the stack at the given slot to the given stack.
It fails to call onCraftMatrixChanged on the parent Container that owns the tile and manages setting 'result' to the new what-does-this-matrix-craft.
When you open the crafting table something calls the "find out what the items in the table make and set result" and then the table has a result again and the automation interface does its thing. No idea why opening the GUI triggers that (I don't think it should - it should always be in reaction to the inventory contents changing).
I've had the same problem, with at least the first 3 tiers of crafting table
To reproduce, place a basic crafting table, with an automation interface on top. Set the recipe to the advanced crafting table, and save it to the interface:
Insert the required items into the interface input slot. Then nothing happens, no crafting result in the interface.
Then open the UI of the crafting table and the recipe will be in place for a tick, before it outputs the result to the interface as expected.