forked from:  Movement on Terrain

