I like this idea!

I can't get the screen with the river to work correctly, though. When I push the last bridge piece into the water and then try to walk across it, that last piece gets moved on top of the previous bridge segment and I can't cross:

I haven't checked your code, but it looks like maybe only certain parts of the bridge pieces are collideable? Maybe you could change this so that the entire segment is collideable so they're easier to push, and then once it hits the water the segment changes state to become a static, non-blocking object. If you want a code example to show what I mean, let me know.