Move camera implementation to camera.lua