well, looks like i'm gonna have to anwser me by myself since i dicovered the way to do that
exactly the way i had in mind, this is how the code works:
var center = Vector2()
var damping = 12.0
func _physics_process(delta):
if is_under_player_control:
apply_camera(delta)
func apply_camera(delta):
var mpos = get_global_mouse_position()
var ppos = global_position
center = Vector2((ppos.x + mpos.x) / 2, (ppos.y + mpos.y) / 2)
$Camera2D.global_position = lerp($Camera2D.global_position, center, delta * damping)
what this code does is that it gets the center between the player and the cursor and then half's the value of each vector, after that this code will make the camera position lerp between the global position of the actual camera and the new position (center) adding some damping for smoothing the movement.