Remove negative values from network content
Posted: Thu Nov 21, 2024 4:29 pm
Imagine this scenario in 2.0 now that assemblers can be configured by circuits:
- A requester chest asks for 3 of a craftable item.
- Roboport's logistic requests emit a signal for 3 of that item.
- A general assembler receives this signal and starts crafting the item.
- First item comes out into a passive provider chest and a bot heads over to pick it up.
- At this point, the storage for that item becomes -3; the request for 3 items is now fully satisfied and gets removed; General assemblers crafting this item would normally stop.
- The bot reaches the chest and picks up the single item.
- Now, the storage for that item becomes 1; the request for that item reappears as 2; A general assembler receives this signal and starts crafting the items and repeats the process...
For sure there's some workarounds to make this work without pausing general assemblers (for one, just don't ever reset, while capping signals so it doesn't accidentally run forever) but it would be great if the intuitive approach worked.
I don't know how negative storage item counts benefits us so this suggestion is to remove this feature entirely. If a bot goes to pick up x items, then x items should be counted in storage, not (x - y) where y is how much the bot could theoretically pick up. If (x - y) is meant to signal items missing, then subtract it from the requester signal not the provider signal.
This is a bit of a rant for what I thought was a bug but turned out to be a "feature". Thanks for listening to my suggestion ^^'
(Originally posted as bug reports 120471 and 1530)
- A requester chest asks for 3 of a craftable item.
- Roboport's logistic requests emit a signal for 3 of that item.
- A general assembler receives this signal and starts crafting the item.
- First item comes out into a passive provider chest and a bot heads over to pick it up.
- At this point, the storage for that item becomes -3; the request for 3 items is now fully satisfied and gets removed; General assemblers crafting this item would normally stop.
- The bot reaches the chest and picks up the single item.
- Now, the storage for that item becomes 1; the request for that item reappears as 2; A general assembler receives this signal and starts crafting the items and repeats the process...
For sure there's some workarounds to make this work without pausing general assemblers (for one, just don't ever reset, while capping signals so it doesn't accidentally run forever) but it would be great if the intuitive approach worked.
I don't know how negative storage item counts benefits us so this suggestion is to remove this feature entirely. If a bot goes to pick up x items, then x items should be counted in storage, not (x - y) where y is how much the bot could theoretically pick up. If (x - y) is meant to signal items missing, then subtract it from the requester signal not the provider signal.
This is a bit of a rant for what I thought was a bug but turned out to be a "feature". Thanks for listening to my suggestion ^^'
(Originally posted as bug reports 120471 and 1530)