private float moveBoardEntity(IBoardEntity boardEntity, Position position, bool remove = true, bool immediate = false, float fallingSpeed = fallingSpeed) { if (board.ContainsKey(position)) { return(-1f); } if (remove) { board.Remove(boardEntity.position); } board.Add(position, boardEntity); boardEntity.setPosition(position); if (immediate) { boardEntity.lerpToTimed(positionToVector(boardEntity.position), 0); return(0); } return(boardEntity.lerpTo(positionToVector(boardEntity.position), fallingSpeed)); }