diff --git a/assets/core/ships/ship_script.gd b/assets/core/ships/ship_script.gd index 8908500..bea2ab9 100644 --- a/assets/core/ships/ship_script.gd +++ b/assets/core/ships/ship_script.gd @@ -86,8 +86,7 @@ func handle_input(_delta: float): func interpolate_position_and_rotation(delta: float): - # Non-piloting players should smoothly interpolate between positions and rotations - global_position = lerp(global_position, target_position, acceleration * delta) + global_position = lerp(global_position,target_position, acceleration * delta) var current_rotation = global_transform.basis.get_rotation_quaternion() var interpolated_rotation = current_rotation.slerp(target_rotation, acceleration * delta) global_transform.basis = Basis(interpolated_rotation) @@ -123,13 +122,13 @@ func _on_player_exited(body): func send_network_update(): if NetworkManager.is_host: if ship_is_piloted and piloting_player.steam_id == NetworkManager.steam_id or !ship_is_piloted: - if global_position != previous_position or global_transform.basis.get_rotation_quaternion() != previous_rotation: + if global_position.distance_to(previous_position) > 0.1 or global_transform.basis.get_rotation_quaternion().dot(previous_rotation) < 0.99: NetworkManager.sync_property_to_all_except_host(network_uuid, "global_position", global_position) NetworkManager.sync_property_to_all_except_host(network_uuid, "global_rotation", global_transform.basis.get_rotation_quaternion()) previous_position = global_position previous_rotation = global_transform.basis.get_rotation_quaternion() elif ship_is_piloted and piloting_player.steam_id == NetworkManager.steam_id: - if global_position != previous_position or global_transform.basis.get_rotation_quaternion() != previous_rotation: + if global_position.distance_to(previous_position) > 0.1 or global_transform.basis.get_rotation_quaternion().dot(previous_rotation) < 0.99: NetworkManager.sync_property_to_all(network_uuid, "global_position", global_position) NetworkManager.sync_property_to_all(network_uuid, "global_rotation", global_transform.basis.get_rotation_quaternion()) previous_position = global_position @@ -140,8 +139,8 @@ func receive_global_position_update(value: Vector3): target_position = value -func receive_global_rotation_update(value: Vector3): - target_rotation = Quaternion().from_euler(value) +func receive_global_rotation_update(value: Quaternion): + target_rotation = value func _on_property_update(node_id: String, property_name: String, value: Variant) -> void: