Page 1 of 1

[Rseding91][0.17] Signal order of items

Posted: Tue Mar 12, 2019 5:26 pm
by Optera
Combinator builds relying on logical progression of items broke with 0.17.
Simple example:
A stack filter inserter filling a furnace set to filter mode is sent iron ore and iron plate.
It would first pick up ore to make plates needed to make steel.

Back in 0.16 signal order made sense.
2019-03-12-18-09-10-2942538.png
2019-03-12-18-09-10-2942538.png (149.34 KiB) Viewed 3260 times
With 0.17 the signals are in no discernible order anymore.
2019-03-12-18-06-11-3100285.png
2019-03-12-18-06-11-3100285.png (49.27 KiB) Viewed 3260 times
Not only did this break a lot of combinator contraptions it also makes it next to impossible to explain cycling item signals to new players.

Re: [0.17] Signal order of items

Posted: Wed Mar 13, 2019 12:25 pm
by Twinsen
The order was never really defined.
In 0.17 it seems to respect the order defined by item "order" field. Not sure where the order in 0.16 came from, probably from the order defined in the lua file.

What would you except the order to be?

Re: [0.17] Signal order of items

Posted: Wed Mar 13, 2019 12:28 pm
by Bilka
Twinsen wrote:
Wed Mar 13, 2019 12:25 pm
In 0.17 it seems to respect the order defined by item "order" field.
The above screenshot shows that it does not do that. By item order, all the ores are before the plates, but in the above screenshots the plates are somewhere in-between.

I expect it to follow the order field.

Re: [0.17] Signal order of items

Posted: Wed Mar 13, 2019 12:47 pm
by Twinsen
Bilka wrote:
Wed Mar 13, 2019 12:28 pm
Twinsen wrote:
Wed Mar 13, 2019 12:25 pm
In 0.17 it seems to respect the order defined by item "order" field.
The above screenshot shows that it does not do that. By item order, all the ores are before the plates, but in the above screenshots the plates are somewhere in-between.

I expect it to follow the order field.
name = "coal",
order = "b[coal]",

name = "iron-plate",
order = "b[iron-plate]",

name = "copper-plate",
order = "c[copper-plate]",

name = "iron-ore",
order = "e[iron-ore]",

name = "copper-ore",
order = "f[copper-ore]",

Re: [0.17] Signal order of items

Posted: Wed Mar 13, 2019 12:50 pm
by Bilka
Item order for me also includes the order defined by subgroups, sorry for not being clear. So anything in subgroup A (the ores) should be before anything in subgroup B (the plates), just how it works everywhere else. And then again before that apply the item groups. (Anything in group A is always before anything in group B)

Basically inventory order:

Image

Re: [0.17] Signal order of items

Posted: Wed Mar 13, 2019 12:52 pm
by Twinsen
Without going into technical details, making the circuit network sort by group order and then subgroup order and then item order will probably make the circuit network significantly slower.

(it's using ID sorting instead of prototype sorting)

Re: [0.17] Signal order of items

Posted: Wed Mar 13, 2019 4:52 pm
by Optera
I don't know about ID sorting.
Back in 0.16 the circuit network seems to have sorted modded items in between base items according to item group, subgroup, order string.

Re: [0.17] Signal order of items

Posted: Wed Mar 13, 2019 11:02 pm
by quyxkh
I'd just yesterday started cooking up a data-final-fixes to undo some of the worst consequences of the change,

Code: Select all

for k,v in next,data.raw do if k:find'subgroup' then
    for k,v in next,v do if k:find'virtual' then v.order='z'..v.order end end
    end end
it seems to me whatever single key is being used to sequence the pick lists the order's not going to change after the data phase, why not assign id's to satisfy human convenience as well then? The only reason to have the groups and subgroups is to mark visual boundaries on the UI anyway, having items from the different groups suddenly start appearing scattered across the whole list was ... disorienting, I think people have a right to expect some sensible order if it can be achieved..

Re: [Rseding91][0.17] Signal order of items

Posted: Thu Mar 14, 2019 4:08 pm
by Twinsen
Fixed in Version: 0.17.12.
Thanks.