Minecart rails break when moved with a block under certain conditions
Reopened
44
The Bug
Pushing and pulling a minecart rail simultaneously with the block it's on will cause the rail to break once the extension/retraction has completed. This holds true for normal rails, powered rails, and detector rails.
Note:
A ghost rail can also be created in this setup when the rail breaks (see MC-75716).
The directional randomness in the described setup has been fixed with the 24w33 redstone experiment. The lever closer to the piston is now consistently is the one which causes the rail to break. The rail breaking is the only remaining bug here with the experiment enabled.
If you put the rail and the block underneath it on an ABBA circuit, it works (push block first and then rail to extend, pull rail first then block to retract). I agree that it shouldn't be that way, and you should be able to push them both at the same time, but that is a currently working fix (used that for my toggleable destination train station).
Affects beta 14x03b. When retracting the rails, all are broken. When pushing the rails, all are broken, but the visual of the rail typically remains (you get the rail back but it looks like it is there; when you place a minecart on it, both the rail and the minecart disappear).
It's different now (18w48a), but definitely not fixed: Pushing a rail and the block it's on sideways together (or a diagonal rail and the block it's leaned on) drops it, but the rail is still there visually (ghost block).
Please show picture of what you're doing where it drops the rail, as I cannot reproduce.
I've tried all orientations and positioning I could think of that would follow the rule "rail and the block it is attached to". The only way my rails drops is when I push the block below it but not the rail itself.
I think the problem is more complicated or incomplete from above observations.
I tested the same configuration in four different mirrored orientations (more exist even!), and the problem doesn't happen consistently. Observe the piston orientations and each lever. Red blocks lead to dropped rails, green ones don't.
I've rotated and mirrored the exact same structure in all directions now, and the results of whether the rail breaks and leaves a ghost block (red) or behaves normally (green) is consistent and seems directional. I can't figure out exactly how or why, but this is what it does:
This could be fixed by postponing the rail's check for a block beneath it till the next tick (ie in the code check for unsupported rails BEFORE performing piston pushes, this would delay rail check to the next tick)
The rail breaking and leaving behind a 'ghost rail' still exists, but the directional randomness of the issue is fixed with the 24w33a redstone experiment:
[media]
The lever 'closer' to the pistons will always be the one to result in a ghost rail being created/the rail breaking. I've added the 'experimental_redstone_fixed' label indicating that the randomness is fixed, however the behavior of MC-75716 still exists.
If you put the rail and the block underneath it on an ABBA circuit, it works (push block first and then rail to extend, pull rail first then block to retract). I agree that it shouldn't be that way, and you should be able to push them both at the same time, but that is a currently working fix (used that for my toggleable destination train station).