Page 1 of 1

[kovarex] [0.17.56] Inconsistent (not allowed) rail signal placement

Posted: Sun Jul 14, 2019 2:38 am
by tzwaan
The player is unable to place a signal on the diagonal track between the two curves, but when one of the curves is removed, the signal can be placed down, after which the curve can be put back in place with the signal still being in a working state. Updating the blocks adjacent to the signal by adding extra signals will make this signal invalid again, but otherwise the signal keeps working correctly.

Expected behavior: Either the signal should be able to be put there, or the signal should stop working the moment the curve is put back.

I'd personally expect the signal to be allowed to be placed there, since there's clearly space for it, and it is able to be placed when either of the curves is removed, which means it's not too close to either of them to normally be placed.

Re: [kovarex] [0.17.56] Inconsistent (not allowed) rail signal placement

Posted: Mon Jul 15, 2019 1:07 pm
by kovarex
Good find, thanks for it, fixed for the next version.

The bug was, that the new logic of checking for smaller boxes for segment collision wasn't properly applied in one specific place.

Re: [kovarex] [0.17.56] Inconsistent (not allowed) rail signal placement

Posted: Mon Jul 15, 2019 4:39 pm
by tzwaan
I assume the fix is that you are allowed to place it there?

Re: [kovarex] [0.17.56] Inconsistent (not allowed) rail signal placement

Posted: Mon Jul 15, 2019 8:09 pm
by kovarex
tzwaan wrote:
Mon Jul 15, 2019 4:39 pm
I assume the fix is that you are allowed to place it there?
Yes, the rail the signal connects to don't collide (when using the rail segment collision boxes) with the other rails, so the placement is completely valid. You can test it out, as 0.17.57 is out.

Re: [kovarex] [0.17.56] Inconsistent (not allowed) rail signal placement

Posted: Tue Jul 16, 2019 2:20 am
by tzwaan
Yeah, I noticed. I already put it into practice, as seen here: https://www.reddit.com/r/factorio/comme ... ispsa_are/

Which was also how I found this bug in the first place.