Finally figured it out.. Is is being done using Lerp
float speed = (0.5f * ticks);
float timeToGetThere = 1.0f / playerPos.distance(gotoPos) * speed;
playerPos = lerp(playerPos, gotoPos, timeToGetThere);
player.clearTranslation();
player.translate(playerPos);
Lerp function:
private SimpleVector lerp(SimpleVector start, SimpleVector end, double time){
float x = (float) (start.x + (end.x - start.x) * time);
float y = (float) (start.y + (end.y - start.y) * time);
float z = (float) (start.z + (end.z - start.z) * time);
return new SimpleVector(x, y, z);
}
What I still need though is to get the height based on terrain... at playerPos.x, playerPos.z