So I don't know if anyone's done anything similar to this but after doing a reasonable search I didn't find anything. The nice thing about Assembly Loops is that setting up a factory with them is in theory easy as you just shove all the items any factory would ever need down the same belt and then just put up factories to make the random knickknacks you need. Items like rail signals and mining drills that take a long time to build personally but you don't need to produce in massive volumes. However this doesn't end up being very efficient if you just jam items down the belt without any knowledge of what the factories actually need! You could wire up every belt in the entire system, or come up with a circuit logistic network to do this, but such processes make the factory design more complex when really all you want to do is just plop down an assembler, some inserters, and a chest and call it a day. Wouldn't it be great if you could just have a centralized control unit at the feed point of the belt that optimize the feed rates and then not have to worry about having anything intelligent in the factory section? Well I did exactly that.
The main trick is that I use the starting pistol as a marker, and have it constantly feed through the assembly loop. This gives a regular signal that can be used to define a cycle on the belt. For each cycle I read the items fed into the belt, then subtract the items that make it back out the other end. This gives the number of items consumed by the factories in that cycle, without needing to do anything special with the factories. Then all the feed system needs to do is to output the number of items consumed on the previous cycle, plus a minimum output to ensure that extra items are there to detect additional demand. The only other trick is the feeding system which allows the items to be fed at a smooth constant rate.
I made a quick video showing the design in action with an explanation of the various components on my channel on twitch (same username). I'd post the link but the forum isn't allowing it.
Also I should credit XKnight I believe for coming up with the super awesome 2-combinator memory cell that I used which was waaaay more efficient that what I had come up with. One problem that I did have though is that it doesn't seem to initialize off the single-tick clock signal that I use so that's why you'll see the extra constant combinator for initializing them, just turn it on and then back off if you use the blueprint.
Right now the design is just a proof of concept so I'm more or less just getting this idea out there for you guys to play with and possibly optimize. Let me know what you guys think!
And here's your blueprint string so you can actually play with it yourselves:
Code: Select all
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
a3ZV8cvid1as/g9r601UDaMAAA==