[Bug] Ingredients don't always move when they should.

Here’s an example of a production line that should have a process time of 1, but every once in a while it hiccups and misses a drug:


I think I narrowed down the bug to between these two ticks:

That drug should move, because it is jamming up the system, but for some reason it doesn’t. Here’s my interpretation of why it doesn’t:

Drugs in Big Pharma move only when they are either being pulled by an input of a machine or pushed by an output to a machine. The reason why this drug doesn’t is because:

  1. It is not pulled by the analyzer, since the analyzer chose to pull a drug from the other direction of the t-junction.
  2. It is not pushed by the output of the autoclave, since the crossroads is currently moving a drug in the other direction.

There are two possible fixes that would solve this, and IMO they should both be implemented to make sure no other problem situations happen:

  1. The t-junction should pull from both directions when possible. It can’t if both directions have a drug right next to the junction, but if one has a gap like this, it should IMO.
  2. The crossroads should push drugs on the other side of itself even if the drug it pushed off of itself that turn went the other direction (it should push both ways).
    If both of those are implemented, the drug in this case would be both pushed and pulled, but neither of those are the case currently.