class_name ProxyController
extends Controller

@export var interpolation_speed := 20.0

var player: Player
var movement: MovementComponent
var server_position: Vector3

func _init(new_player: Player):
	player = new_player
	name = "Controller"
	process_physics_priority = 1

func _ready():
	movement = player.movement
	server_position = player.position

func _physics_process(delta: float):
	if absf(server_position.x - movement.physics_position.x) < 0.001 && absf(server_position.z - movement.physics_position.z) < 0.001:
		return
	
	var time := interpolation_speed * delta
	movement.physics_position.x = Math.dampf(movement.physics_position.x, server_position.x, time)
	movement.physics_position.z = Math.dampf(movement.physics_position.z, server_position.z, time)