Page 1 of 1

Inserters should support the "Anything" signal for stack size

Posted: Sat Nov 11, 2023 1:56 pm
by Soul-Burn
TL;DR
Do not limit inserters to just use specific signals, and instead allow "some" signal to be used as stack size

What ?
Inserter stack size is currently limited to a specific input signal for their stack size. This omission is inconsistent with their circuit condition.
They should be able to accept an "anything" signal so the player doesn't have to manually set it every time, and allow for simultaneous stack and filter setups.
Why ?
In some cases where the player wants to set filters, they also want to set the stack size accordingly.
Right now, the solution is to add an arithmetic combinator that translates the signal to the stack's fixed stack size signal. If inserters allowed an "Anything" signal, this combinator would not be needed, as the single signal could set both the filter and the stack size.
This is relevant mostly for filter stack inserters for various supply train setups.

Re: Inserters should support the "Anything" signal for stack size

Posted: Sat Nov 11, 2023 6:30 pm
by computeraddict
I'm going to strongly disagree on this one. Using 'anything' for stack size is too ambiguous. The reason 'anything' works for enable/disable is that it's a boolean check: it checks each signal and does one big OR on the results. Stack size cares about the value of the signal and wouldn't work for 'anything' without additional hidden processing. Does it mean greatest? Least? Sum? Random? If it's random is it truly random or is it decided by information the player can't see? Which signals filter inserters decide to use when overloaded is bad enough; I feel like we don't need more places that unpredictable magical logic can take place.

Now adding a 'biggest' or a 'least' would be nice... but we're getting that with the selector combinator announced yesterday.

Re: Inserters should support the "Anything" signal for stack size

Posted: Sat Nov 11, 2023 6:35 pm
by Illiander42
Having stack size be able to be set by the signal currently setting the filter would be nice.

But that wouldn't want to be called "any." And it would have to match the "what is the filter set to" logic.

Re: Inserters should support the "Anything" signal for stack size

Posted: Sun Nov 12, 2023 6:42 am
by Soul-Burn
It means any arbitrary one. Just like the "Anything" output on a decider chooses an arbitrary signal.

You could even have an "Everything" to sum up to the signals, the same as how the condition works.

Re: Inserters should support the "Anything" signal for stack size

Posted: Sun Nov 12, 2023 9:34 pm
by FuryoftheStars
Soul-Burn wrote:
Sun Nov 12, 2023 6:42 am
It means any arbitrary one. Just like the "Anything" output on a decider chooses an arbitrary signal.

You could even have an "Everything" to sum up to the signals, the same as how the condition works.
"Anything" picks the signal to output on a decider based on an internal index. It's not "arbitrary", because otherwise it wouldn't be deterministic and you'd get different game states in MP.

And "Everything" doesn't "sum" the signals. This happens with any like signals regardless of the conditions used on the combinator (even from different colored wires). On a decider's output, all it does is allow for the passing through of all input signals unchanged (or set to 1) to the output.

Unless I've completely misunderstood something here.

Re: Inserters should support the "Anything" signal for stack size

Posted: Mon Nov 13, 2023 5:54 pm
by Soul-Burn
Arbitrary means it's not something specific i.e. it's not max, min, or anything useful for users. Yes it's an internal index, that's OK.

I've been wrong about the "Everything" one, the "sum" part is because it's a combinator so it's added in the output, irrelevant for our case.

About which signal is used, the internal implementation doesn't matter. Performance/computation is for Wube to figure out.
The important part is the user experience. From a UX standpoint, it makes sense that "anything" will choose some signal, it doesn't matter which - just like "anything" on an output signal chooses one arbitrarily.

Re: Inserters should support the "Anything" signal for stack size

Posted: Mon Nov 13, 2023 6:37 pm
by FuryoftheStars
Soul-Burn wrote:
Mon Nov 13, 2023 5:54 pm
Arbitrary means it's not something specific i.e. it's not max, min, or anything useful for users. Yes it's an internal index, that's OK.
Except it is something specific: it's an internal index. Specifically, even, I believe it's the same index as what's used to sort the display order of the signals when you're in the signal selection screen. Whether that's useful to the user or not I do not believe is relevant for calling something arbitrary.

Re: Inserters should support the "Anything" signal for stack size

Posted: Mon Nov 13, 2023 7:55 pm
by mmmPI
FuryoftheStars wrote:
Mon Nov 13, 2023 6:37 pm
Soul-Burn wrote:
Mon Nov 13, 2023 5:54 pm
Arbitrary means it's not something specific i.e. it's not max, min, or anything useful for users. Yes it's an internal index, that's OK.
Except it is something specific: it's an internal index. Specifically, even, I believe it's the same index as what's used to sort the display order of the signals when you're in the signal selection screen. Whether that's useful to the user or not I do not believe is relevant for calling something arbitrary.
No-english native here, but my take is that something can be arbitrary and specific no ? . It is arbitrary when you have to take a decision that could have been another one without being more or less logical or more or less good, or more or less natural. It has to be decided, it's more important than how it is decided. It's arbitrary.

It can be specific or not. In present case i think it's both arbitrary and specific !


I think it can be useful for the user, to know what was decided "arbitrarily" in a precise way if you will, the alphabet signal is ordered, same for the numbers, signal A will have priority over signal B which has priority over signal C. Numbers have priority over Letters, and colors are last. The rules seem that they are ordered the same way as they are displayed in the inventory/GUI to select them as mentionned by Fury.

So "anything" as signal for stack size would be "usable" once the rule is learned. But i find still weird if you want to send as filter "iron ore" and "copper ore" and you use "iron ore" for stack size, but if you send as filter "iron ore" and "stone" then you need to use "stone" to transmit stack size. You can have several filter but only 1 stack size. It's difficult to use, but not sure it has any drawback being added.

Re: Inserters should support the "Anything" signal for stack size

Posted: Mon Nov 13, 2023 8:10 pm
by FuryoftheStars
mmmPI wrote:
Mon Nov 13, 2023 7:55 pm
FuryoftheStars wrote:
Mon Nov 13, 2023 6:37 pm
Soul-Burn wrote:
Mon Nov 13, 2023 5:54 pm
Arbitrary means it's not something specific i.e. it's not max, min, or anything useful for users. Yes it's an internal index, that's OK.
Except it is something specific: it's an internal index. Specifically, even, I believe it's the same index as what's used to sort the display order of the signals when you're in the signal selection screen. Whether that's useful to the user or not I do not believe is relevant for calling something arbitrary.
No-english native here, but my take is that something can be arbitrary and specific no ? . It is arbitrary when you have to take a decision that could have been another one without being more or less logical or more or less good, or more or less natural. It has to be decided, it's more important than how it is decided. It's arbitrary.

It can be specific or not. In present case i think it's both arbitrary and specific !


I think it can be useful for the user, to know what was decided "arbitrarily" in a precise way if you will, the alphabet signal is ordered, same for the numbers, signal A will have priority over signal B which has priority over signal C. Numbers have priority over Letters, and colors are last. The rules seem that they are ordered the same way as they are displayed in the inventory/GUI to select them as mentionned by Fury.

So "anything" as signal for stack size would be "usable" once the rule is learned. But i find still weird if you want to send as filter "iron ore" and "copper ore" and you use "iron ore" for stack size, but if you send as filter "iron ore" and "stone" then you need to use "stone" to transmit stack size. You can have several filter but only 1 stack size. It's difficult to use, but not sure it has any drawback being added.
The decision on what the "Anything" signal is to output can be considered as arbitrary, but what it's outputting is not, which is my take on the meaning of this line:
Just like the "Anything" output on a decider chooses an arbitrary signal
The "Anything" signal does not arbitrarily choose a signal to output. If it did, then that would mean with a given set of inputs, it could choose a different one each time.

Re: Inserters should support the "Anything" signal for stack size

Posted: Mon Nov 13, 2023 8:32 pm
by mmmPI
FuryoftheStars wrote:
Mon Nov 13, 2023 8:10 pm
The decision on what the "Anything" signal is to output can be considered as arbitrary, but what it's outputting is not, which is my take on the meaning of this line:
Just like the "Anything" output on a decider chooses an arbitrary signal
The "Anything" signal does not arbitrarily choose a signal to output. If it did, then that would mean with a given set of inputs, it could choose a different one each time.
oh i see the nuance now, yes one can predict the signal because the "arbitrary" decision has been taken once, then it's only reacting in a specific manner to that arbitrary rule.


Is it usable for gameplay purpose ? i'm still convinced it can be, it's not easy due to the need to understand this rule and play around it, but i see no harm.

Re: Inserters should support the "Anything" signal for stack size

Posted: Mon Nov 13, 2023 8:34 pm
by computeraddict
Tbqh I'm not a fan of 'anything' on the output of deciders either. It's kinda hacky and unintuitive, and the new selector combinator should replace it.

Re: Inserters should support the "Anything" signal for stack size

Posted: Mon Nov 13, 2023 8:53 pm
by Soul-Burn
It doesn't matter how it is implemented, the only thing important is that it chooses one of the signals, in some way that doesn't really matter to me. My use case is sending just one signal anyway.

That said, it indeed would be nice if that signal was the same signal chosen as filter. Again, won't matter which signal it is, but it would be nice to be the same one.