Requester Chest / Circuit Network Interactions
Posted: Thu Feb 23, 2017 9:25 pm
Suppose I am connecting two logistics zones with a requester/inserter/provider chain. If I want a certain (or possibly calculated) number of an item to be in the provider, the best way (because it supports multiple item types) is to multiply the contents of the provider by -1 and adding that to the request amount.
Problem: Even if you include the inserter contents (hold mode), there is a one tick delay in which the item is removed but the subtraction isn't updated yet. A single extra request will be made each time the target amount is reached.
Proposal: A different "set request" mode where a one-tick-pulse adds a logistics request, regardless of the number of items in the requester chest. It would not be affected by item removal by the inserter.
Problem: When requests are picked up, but not yet delivered, they "disappear" from the logistic network storage statistics. This makes it very hard to implement certain kinds of balancing without oscillation.
Proposal: An option to credit to-be-delivered (and to-be-picked-up) items when reading the statistics. Although it makes more sense to do this on the requester chest, you can't both set the request and read the contents at the same time, and I don't have a good proposal to work around that.
Problem: Suppose I have a variable number of these chains (eg. imagine the direction being controlled by a circuit network), and I want to split the requests across all the enabled chests. I now need to divide the request amount by the number of enabled chests for that specific item type. This is hard with the available circuit elements.
Proposal: An ALU circuit network node. It would have two inputs (that is, 2x red and 2x green inputs total) and one output, and could compute MIN, MAX, PRODUCT, QUOTIENT. Basically an element-wise vector operation node.
Problem: Even if you include the inserter contents (hold mode), there is a one tick delay in which the item is removed but the subtraction isn't updated yet. A single extra request will be made each time the target amount is reached.
Proposal: A different "set request" mode where a one-tick-pulse adds a logistics request, regardless of the number of items in the requester chest. It would not be affected by item removal by the inserter.
Problem: When requests are picked up, but not yet delivered, they "disappear" from the logistic network storage statistics. This makes it very hard to implement certain kinds of balancing without oscillation.
Proposal: An option to credit to-be-delivered (and to-be-picked-up) items when reading the statistics. Although it makes more sense to do this on the requester chest, you can't both set the request and read the contents at the same time, and I don't have a good proposal to work around that.
Problem: Suppose I have a variable number of these chains (eg. imagine the direction being controlled by a circuit network), and I want to split the requests across all the enabled chests. I now need to divide the request amount by the number of enabled chests for that specific item type. This is hard with the available circuit elements.
Proposal: An ALU circuit network node. It would have two inputs (that is, 2x red and 2x green inputs total) and one output, and could compute MIN, MAX, PRODUCT, QUOTIENT. Basically an element-wise vector operation node.