### Godot version

4.1 RC3

### System information

Windows 11 AMD Ryzen 5950x

### Issue description

Actually should be pretty simple, as of commit: https://github.com/godotengine/godot/commit/1c93606e470f0cad5f14af104ccb89a95a89931c

SurfaceTool's add_triangle_fan() maps its parameters like so:
`add_triangle_fan(p_vertices, p_uv2s, p_colors, p_uv2s, p_normals, Variant(p_tangents));`

As you can see its using **p_uv2s** as the 2nd _and_ 4th parameters, and isn't using **p_uvs** at all which ought to be the 2nd parameter. The 2nd parameter at the moment does nothing at all.

As a result I had to change my code from:
`surface_tool.add_triangle_fan(vertices, [uvs[0], uvs[1], uvs[2], uvs[1], uvs[3], uvs[2]])`
To:
`surface_tool.add_triangle_fan(vertices, [], [], [uvs[0], uvs[1], uvs[2], uvs[1], uvs[3], uvs[2]])`

### Steps to reproduce

Use add_triangle_fan and place your UVs as the 2nd parameter, your mesh will be black. When you change your uvs to the 4th parameter, it correctly maps.

### Minimal reproduction project

Should be trivial to reproduce (and to see why it's broken in this commit)
ERR_FAIL_COND(blendshape_mesh_arrays.size() != RS::ARRAY_MAX);
	Array source_mesh_arrays = p_existing->surface_get_arrays(p_surface);
	ERR_FAIL_COND(source_mesh_arrays.size() != RS::ARRAY_MAX);
	
	source_mesh_arrays[RS::ARRAY_VERTEX] = blendshape_mesh_arrays[RS::ARRAY_VERTEX];
	source_mesh_arrays[RS::ARRAY_NORMAL] = blendshape_mesh_arrays[RS::ARRAY_NORMAL];
	source_mesh_arrays[RS::ARRAY_TANGENT] = blendshape_mesh_arrays[RS::ARRAY_TANGENT];
	_create_list_from_arrays(source_mesh_arrays, &vertex_array, &index_array, format);
	material = p_existing->surface_get_material(p_surface);
	format = p_existing->surface_get_format(p_surface);
	for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) {
		if (format & custom_mask[j]) {
			last_custom_format[j] = (CustomFormat)((format >> custom_shift[j]) & RS::ARRAY_FORMAT_CUSTOM_MASK);
		}
	}
}
void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const Transform3D &p_xform) {
	ERR_FAIL_NULL_MSG(p_existing, "First argument in SurfaceTool::append_from() must be a valid object of type Mesh");
	if (vertex_array.size() == 0) {
		primitive = p_existing->surface_get_primitive_type(p_surface);
		format = 0;
	}
	uint32_t nformat = 0;
	LocalVector<Vertex> nvertices;
	LocalVector<int> nindices;
	_create_list(p_existing, p_surface, &nvertices, &nindices, nformat);
	format |= nformat;
	for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) {
		if (format & custom_mask[j]) {
			CustomFormat new_format = (CustomFormat)((format >> custom_shift[j]) & RS::ARRAY_FORMAT_CUSTOM_MASK);