Page 1 of 1

[0.16.49] More than one loader per tile is not save-stable

Posted: Thu Jul 12, 2018 7:12 am
by eradicator
I can already hear the "just don't do this"...but bear with me. Please. I'm posting this soley because of possible determinism concerns.

In a neighbouring thread we discussed the possibility of a loader-based N-splitter to complement the 2-splitter in base.

I did various experiments and thought i ended up with a working 1x1 3-splitter, but i just couldn't get it to stabilitze when not built manually. So yet another hour later i've determined that more than one splitter per tile works only if constructed in a very particular order, and only while the game is running. As soon as you load the game it breaks! And loading should never affect the game-state as far as i understand.

I've attached a video in case anyone thinks this is a photoshop joke. (A gif would be too large)
er-one-tile-per-loader-bugreport.jpg
er-one-tile-per-loader-bugreport.jpg (202.64 KiB) Viewed 1228 times
Demo mod (contains minified loader and reduces chest collision_box):
er-one-tile-per-loader-bugreport_0.0.1.zip
(4.55 KiB) Downloaded 47 times
Demo savegame (it's not save stable, so this is the broken one...):
bugreport_one-tile-per-loader.zip
(934.5 KiB) Downloaded 46 times
Demo video (zipped because forum doesn't like .mkv):
er-one-tile-per-loader-bugreport-video.zip
(7.45 MiB) Downloaded 48 times
How to reproduce:
  1. Load the attached save+mod.
  2. Remove the inputting loader (west side), place it back down (blue side towards belt), rotate it to "input" mode.
  3. Remove and replace the inputting belt segment.
  4. Now it's a bit fiddly...
  5. Remove one of the other loaders (north/south work best) and place it back down. Then replace the belt segment that loader is connected to. If it worked continue. If it didn't try another loader+belt pair first.
  6. Do so for the other two loader+belt pairs.
It's important to rebuild the belt right after the loader. Rebuilding all loaders and after that all belts doesn't work.

Re: [0.16.49] More than one loader per tile is not save-stable

Posted: Mon Mar 18, 2019 2:48 pm
by kovarex
Hello, well the game is built in a way, that transport belt-like entities should never share tiles. This example breaks it. I could write some non-trivial code to make sure, that it is enforced, and the mod is not loadable if you wish.

Re: [0.16.49] More than one loader per tile is not save-stable

Posted: Sat May 04, 2019 12:09 pm
by eradicator
So roughly what were you intending to check? Naively i'd assume this could "simply" be checked during runtime on entity placement (too expensive perhaps?). And i don't wish to cause startup errors just because my entities *can* be used in a wrong way (which i obvisouly don't do now that i know this happens).

Re: [0.16.49] More than one loader per tile is not save-stable

Posted: Mon May 06, 2019 1:25 pm
by kovarex
I would have to check, that the transport belt related entities have collision boxes and grid settings setup in a way, that it is not possible to have more than 1 transport belt related entity on the same tile, as it breaks the games and creates desyncs.

Re: [0.16.49] More than one loader per tile is not save-stable

Posted: Mon May 06, 2019 7:33 pm
by eradicator
That would definetly break a few nice things for me that rely on grid-free loaders, like having an assembler with "built-in" loaders that share a tile with the machine. So i kindly ask that you just close this report and we can forget about it :).