Adds distance controls to rotating camera
Refactors train animation logic to train object
Adds piston animation
Implements cameras and various leftover changes