You cannot depend on rail rotators to be where a logic system expects them to be. This is due to the fact that when they collide, they return to their initial state; meaning they become desynchronized by a measure of one rotation. You can't detect what position the rail is in to correct this issue and this includes area triggers as they don't detect docked entities.
My solution is an alternative to normal rail rotators: Absolute Rail Rotators
When a docked entity passes over this rail block, it rotates until it assumes a specified position relative to the arrow on the block as opposed to incrementing a number of degrees.
You would determine the amount of rotation by multiplying the number of active activation modules the rail is connected to by the inverse of the total number of linked activation modules. For example if you wanted a docked entity to make a 2/5ths rotation from the arrow direction, you'd connect the rail to 5 activation modules and turn 2 on.
This block would have a clockwise and a counter-clockwise variant.
Feedback is welcome.
My solution is an alternative to normal rail rotators: Absolute Rail Rotators
When a docked entity passes over this rail block, it rotates until it assumes a specified position relative to the arrow on the block as opposed to incrementing a number of degrees.
You would determine the amount of rotation by multiplying the number of active activation modules the rail is connected to by the inverse of the total number of linked activation modules. For example if you wanted a docked entity to make a 2/5ths rotation from the arrow direction, you'd connect the rail to 5 activation modules and turn 2 on.
This block would have a clockwise and a counter-clockwise variant.
Feedback is welcome.
Last edited: