Rseding91 wrote: Fri Jan 24, 2020 6:05 am
There can be any number of overlapping construction networks which can work on a given ghost: construction networks can move (players) and construction networks don't connect like logistic networks do.
That means any particular ghost could be in any number of construction areas. That means it would have to know what areas it's in, and the areas would have to know what ghosts are in them. Any time a roboport lost power it would have to go over each ghost and remove them from itself and itself from it.
Every time a player moved, lost power, or gained power, disabled or enabled their personal roboports they would have to scan the entire area they're in and add/remove ghosts as they move.
Right. But I think you are thinking too deep into implementation details, because what you said, Rseding, opened me the eyes that it is not needed that this new feature works absolutely perfect in any case.
Let's lean a bit back and let me explain.
For what is this feature really needed? It's not needed for those that just want to make an mining outpost. Those players, that need this feature are counting in doozens, hundred or thousand of needed items. Otherwise it doesn't make so much sense, because the effort to create such a supply system is really high. AFAIK. We are speaking here of LTN or other delivery systems, because with vanilla Factorio this is really difficult. (AFAIK)
And for automated self-construction (which is somehow the crown jewels of Factorio) this is essential, that you know the amount of items that needs to be placed in that construction network.
Because otherwise you cannot build things fast enough, because you don't know, how many items needs to be transported to that network. And for future things we don't know yet.
As you see,
for that cases you don't need the exact amount of items. You will deliver not some, but many items. So things can go wrong, some biters come and eat a whole chest with items in it for example. Or the player just takes some items from that network. So you will order always a bit more. It makes not so much sense to deliver exactly that currently needed amount. Think of a supermarket that orders just the tomatoes it surely needs yet. You need to estimate and order always a bit more than you have estimated.
Only in very, very special and rare cases and autistics need that it is really the correct number. But it is much easier to look - after everything has been built - that the unused items could be sent back.
You can compare that also with massive parallel computing on thousands of cores, because in that case you reserve also some cores for those nodes, that have a malfunction during that calculation. Or that you harddisks have extra sectors for those sectors, that broke. Or a newsdealer shop, which orders also more, that can be selled and he can unsold magazins back.
So - what's the new thing is with this suggestion is:
Factorio doesn't need to be super exact for this feature!
I really havn't thought this completly through (and there are of course many special cases), but I think from the technical implementation it would be enough to update the list of to be constructed items chunk by chunk. Factorio goes through a loop of by construction areas covered chunks or chunks that has been marked as that they will be delivered soon. No need to take power failures of roboports into account (through that loop of course). It could be updated some dozen ticks later. It doesn't matter, that the construction items are delivered some ticks later, because it takes some time that the chunk is scanned for new items. There is no need that items are in two, three or more construction networks overlapping (as said before you will always deliver a bit more). It doesn't need to take into account, that an item is delivered to that chunk and about to be constructed. And so on. What it needs, is that it counts the number of to be constructed items within some seconds.
All of that because you've build a load of stuff outside of network that can't be worked on. Just don't do that: build roboports and build things in the roboport area. Building outside the roboport area does not help anything: the jobs can literally never be worked on until you've provided roboport coverage so just build the thing(s) when you do that.
Don't blame me for building outside of
not yet constructed construction range when it is not possible to do that in an effective way.

Well I know that it would make sense to build first the roboports and power. But THAT is a totally different subject! I wrote some post about construction filters (working a bit like deconstruction planner), that would enable such things easily (
viewtopic.php?p=469552#p469552 )