That would actually be one of my dreams for using the Circuit Network... to create multi-purpose assembly lines. Using the circuit network to send all the necessary signals to program the assemblers to different recipes as well as inserter filters would really be something I look forward to.DOSorDIE wrote:When we can connect the Assembling Machine to the Circuit network to control what they should build would be my dream ...
Then i can make a full automatic fabric that build what it need without that from each type 1 Assembling Machine are needed.
And progamable smart Inserter (Filter) whould be also nice.
Set the smart Inserter to "Signal" then it filter what came as signal.
But the new features also be great ... when we can have it to play with it
Thank you dev team for the great work you make!
Currently the only "assembler type" which allow for such a functionality are furnaces because they adapt their recipe automatically depending on the input resource. That said I am an expert on creating multi-purpose furnaces so I know that there is an additional problem of reusing the same furnace to smelt a different resource. The problem I am talking about is:
Inserter Stacksize Bonus.
The inabillity to adjust wethether an inserter should grab 1, 2, 3, 4 or 5 items from a chest is eventually what turns multi-purpose assemblers into a nightmare. Because if you don't insert the exact amount of resources expected by the recipe it might lead to a deadlock where the assembler can't craft the item or is stuck with "rest material" for all eternity, unable to change the recipe to something else.
This problem can be best seen when trying to build a multi-purpose furnace smelting all 4 available resources (Copper Ore->Copper Plates, Iron Ore->Iron Plates, Iron Plates->Steel Bars, Stone->Stone Bricks). The Steel bars as well as the Stone Bricks require more than 1 source material. Stone Bricks for example expect exactly 2 stone to craft 1 brick. If the inserter remains as stubborn as it is and inserts 5 stone instead of 2 or 4 then you will be left with 1 stone in the furnace and then the furnace is unable to switch to another recipe and it doesn't accept another resource other than stone anymore without manual intervention.
1) So if programable assemblers/furnaces/inserters ever become a thing then inserters would have to be changed in such a way that they are intelligent enough only to grab resources so that they don't leave residuals in the assemblers. Otherwise it would prevent the assembler from being reprogrammed as the stuck material can't be processed into something.
2) Another approach would be that assemblers/furnaces connected to the circuit network actually output how many resources they already have inside them so an inserter may stop inputing further resources causing uneven amounts. But even that would require to be able to override the inserter stack size bonus.
3) Or there could be a way to remove residual material from the assembler by a secondary output inserter. If I would be able to extract uneven amounts of stone from the furnace, like when an inserter accidently put 1,3 or 5 stone into the furnace then the problem would be gone as well because I could remove the residual with the secondary output inserter and put it back into the resource cycle to be processed somewhere else, rendering the assembler/furnace unstuck and thereby ready to be reprogrammed to a different recipe.
4) Another solution I came up with is that assemblers could have something like a resource buffer, like a small chest with stacks for example 10 different items that is built inside them. Depending on the current recipe it would draw from the correct items and leave the others alone. It would allow for a context switch without having to remove or worry about any residuals left inside that buffer. Call them smart assemblers/furnaces if you want to.
That ugly side effect of the stubborn Inserter Stacksize Bonus is a problem I have been stressing for about a year now. So I had a lot of time of thinking about possible solutions and I guess the easiest one would be to go for number 4) as it offers a lot of potential.
It may not be a prominent problem now but if programable assemblers ever come to existence it will be the biggest problem because with the dozens of recipes out there all having different amounts of resource requirements the problem would become really serious.